<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>weaselhat &#187; Temporal Logic and Verification</title>
	<atom:link href="http://www.weaselhat.com/category/formal/tlv/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.weaselhat.com</link>
	<description></description>
	<lastBuildDate>Wed, 01 Feb 2012 20:18:01 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Program synthesis talk</title>
		<link>http://www.weaselhat.com/2006/06/24/synthesis-talk/</link>
		<comments>http://www.weaselhat.com/2006/06/24/synthesis-talk/#comments</comments>
		<pubDate>Sat, 24 Jun 2006 10:20:47 +0000</pubDate>
		<dc:creator>Michael Greenberg</dc:creator>
				<category><![CDATA[Temporal Logic and Verification]]></category>

		<guid isPermaLink="false">http://www.weaselhat.com/2006/06/24/synthesis-talk/</guid>
		<description><![CDATA[On June 8th I gave a talk for <a href="http://www.cs.technion.ac.il/~orna/" rel="met colleague" title="The teacher...">Orna Grumberg</a>'s <a href="http://webcourse.cs.technion.ac.il/236803" title="The class...">seminar in formal verification</a> presenting Kupferman and Vardi's 1997 paper <a class="paper" href="http://citeseer.ist.psu.edu/kupferman97synthesis.html" title="The paper...">Synthesis with Incomplete Information</a>.  I've posted the <a href="/downloads/kv_synthesis_talk.pdf" title="The disaster!">slides</a>.]]></description>
			<content:encoded><![CDATA[<p>On June 8th I gave a talk for <a href="http://www.cs.technion.ac.il/~orna/" rel="met colleague" title="The teacher...">Orna Grumberg</a>&#8216;s <a href="http://webcourse.cs.technion.ac.il/236803" title="The class...">seminar in formal verification</a> presenting Kupferman and Vardi&#8217;s 1997 paper <a class="paper" href="http://citeseer.ist.psu.edu/kupferman97synthesis.html" title="The paper...">Synthesis with Incomplete Information</a>.  I&#8217;ve posted the <a href="/downloads/kv_synthesis_talk.pdf" title="The disaster!">slides</a>.</p>
<p><span id="more-11"></span></p>
<p>The paper is interesting.  On the one hand, it&#8217;s fairly light in terms of original contribution &#8212; it&#8217;s an extension of Pnueli and Rosner&#8217;s 1989 paper <a class="paper" href="http://portal.acm.org/citation.cfm?id=75293" title="The original paper...">On the Synthesis of a Reactive Module</a>.  On the other hand, the journal format makes the K&#038;V paper much clearer than P&#038;R.  I know this chiefly because I was supposed to present the latter, but got bogged down and switched.</p>
<p>The paper contributes two things.  First, they extend P&#038;R&#8217;s 2-EXPTIME algorithm for LTL synthesis to a similarly complex algorithm for CTL*.  Second, they add the concept of &#8220;incomplete information&#8221;.  During synthesis with incomplete information, input signals (propositions in the specification &psi;) are split into two sets: I, &#8220;input&#8221; &#8212; the known or &#8220;readable&#8221; signals, and E, &#8220;environment&#8221; &#8212; the unknown or &#8220;unreadable&#8221; signals.  They aim to generate a program that is correct in terms of &psi;, even though the program sees signals only in I and not in E.</p>
<p>For example, &psi; = G((m &and; &not;b) &rArr; Xr) &and; (&not;m &or; b) &rArr; X&not;r), where m represents a message, r a response, and b whether or not a message is &#8220;bogus&#8221;.  The system should respond only to nonbogus messages.  Given m, b &isin; I and r &isin; O (&#8220;output&#8221;), the specification is realizable. But if b &isin; E, &psi; is unrealizable.</p>
<p>Someone asked a very astute question during the talk: when is a specification with E &ne; &empty; realizable?  Only when all propositions in E form a tautology.  So why is E useful/meaningful at all?  I came up with two cases: iterative checks to determine what signals are necessary; and the synthesis of systems of modules with some shared signals.</p>
<p>No matter how interesting the paper is, my presentation was terrible.  Too formal, bad examples.  It didn&#8217;t help that I was speaking English to a Hebrew-speaking audience, but even Orna mentioned that my examples were bad.  The problems with my examples include: </p>
<ol>
<li>Hand-drawn on the board.  This meant that I spoke <em>into</em> the board half the time.</li>
<li>Minimal.  I drew the smallest trees possible, sticking to the binary domain and the self-product of the binary domain.  This of course ties into problem number 1.</li>
<li>Unmotivated.  The tree examples all came before any mention of the need for them.  The paper presents the tree preliminaries first, but perhaps a &#8220;woven&#8221; presentation would be better.</li>
<li>Too formal.  After about five minutes of explaining <tt>hide</tt>, someone said &#8220;Wait, so it&#8217;s just a projection?&#8221;  I was stuck in the notation, not giving a clear picture.</li>
</ol>
<p>We&#8217;ll see if I can improve, perhaps giving the talk again back at Brown.  Then again, the audience at Brown is much less versed in verification in general &#8212; increasing the need for good, clear examples.  I&#8217;ll certainly drop the emptiness check material in the slides (slides 32 to 39), as I ended up skipping it here in Israel.</p>
<p>My mediocre presentation skills aside, the paper is both very good and very frustrating.  It presents difficult material clearly, making the technique completely understandable.  But every step of the work &#8212; automata generation, processing, emptiness checks &#8212; is theoretical.  So far as I can tell, there isn&#8217;t a single implementation for a single step of their algorithm &#8212; after nearly a <em>decade</em>.  I couldn&#8217;t even find a tool to translate from CTL* to &mu;-calculus!  Without the CTL construction in section 4.4, it would have been much harder to present a nontrivial example.</p>
<p>But new in the synthesis world is a 2006 paper by Kupferman, Vardi, and Nir Peterman, <a class="paper" href="http://www.cs.huji.ac.il/~ornak/cav06.pdf" title="A new paper">Safraless Compositional Synthesis</a>.  It proposes an EXPTIME algorithm for LTL synthesis (as opposed to P&#038;R&#8217;s 2-EXPTIME algorithm); even better, the algorithm is incremental with regard to conjunction!  Best still, they claim that it&#8217;s amenable to symbolic implementation, since it doesn&#8217;t use Safra&#8217;s determinization technique (from the 1988 paper <a class="paper" href="http://ieeexplore.ieee.org/xpl/abs_free.jsp?arNumber=21948" title="Another paper!">On the Complexity of &omega;-Automata</a>).  I still need to give the 2006 paper a full reading; real implementability would be very exciting.  After I finish it and a few others, I&#8217;ll write up and post a bibliographic review.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.weaselhat.com/2006/06/24/synthesis-talk/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

