<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Formal verification stalling, take two</title>
	<atom:link href="http://www.ocoudert.com/blog/2010/02/21/formal-verification-stalling-take-two/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ocoudert.com/blog/2010/02/21/formal-verification-stalling-take-two/</link>
	<description>My take on tech --and other topics</description>
	<lastBuildDate>Mon, 16 Aug 2010 22:30:37 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>By: Chris Wilson</title>
		<link>http://www.ocoudert.com/blog/2010/02/21/formal-verification-stalling-take-two/comment-page-1/#comment-1218</link>
		<dc:creator>Chris Wilson</dc:creator>
		<pubDate>Wed, 14 Apr 2010 18:54:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.ocoudert.com/blog/?p=724#comment-1218</guid>
		<description>Hi Olivier,

I posted some more comments on this in my blog.
http://bugsareeasy.wordpress.com/2010/04/13/is-formal-verification-a-mature-technology/

--chris</description>
		<content:encoded><![CDATA[<p>Hi Olivier,</p>
<p>I posted some more comments on this in my blog.<br />
<a href="http://bugsareeasy.wordpress.com/2010/04/13/is-formal-verification-a-mature-technology/" rel="nofollow">http://bugsareeasy.wordpress.com/2010/04/13/is-formal-verification-a-mature-technology/</a></p>
<p>&#8211;chris</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Olivier Coudert</title>
		<link>http://www.ocoudert.com/blog/2010/02/21/formal-verification-stalling-take-two/comment-page-1/#comment-649</link>
		<dc:creator>Olivier Coudert</dc:creator>
		<pubDate>Tue, 23 Feb 2010 17:12:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.ocoudert.com/blog/?p=724#comment-649</guid>
		<description>Hi Armin,

If your state space is finite, the sequences will be periodic, and therefore your statement is correct. As long as we have an upper bound on the period, or on the longest sequence required for an induction proof, we can cast the liveness property into a safety property. 

There is a large body of work that has been done in reachability analysis, from &quot;multiple stepping&quot; (using an augmented next-state function to explore the reachable states in less iterations) to abstraction techniques. It works to some extend, even though the main problem is again debugging. Usually the period is extremely large, which makes these methods not very practical. This is why people rely more on (incomplete) hybrid methods to explore the state space an look for &quot;exception&quot; states where the FSM can be trapped in a loop that would invalidate the liveness property. Regardless of the method though, debugging still remains a problem --long input sequences are extremely difficult to use to figure out the flaw in a control system.</description>
		<content:encoded><![CDATA[<p>Hi Armin,</p>
<p>If your state space is finite, the sequences will be periodic, and therefore your statement is correct. As long as we have an upper bound on the period, or on the longest sequence required for an induction proof, we can cast the liveness property into a safety property. </p>
<p>There is a large body of work that has been done in reachability analysis, from &#8220;multiple stepping&#8221; (using an augmented next-state function to explore the reachable states in less iterations) to abstraction techniques. It works to some extend, even though the main problem is again debugging. Usually the period is extremely large, which makes these methods not very practical. This is why people rely more on (incomplete) hybrid methods to explore the state space an look for &#8220;exception&#8221; states where the FSM can be trapped in a loop that would invalidate the liveness property. Regardless of the method though, debugging still remains a problem &#8211;long input sequences are extremely difficult to use to figure out the flaw in a control system.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Armin</title>
		<link>http://www.ocoudert.com/blog/2010/02/21/formal-verification-stalling-take-two/comment-page-1/#comment-646</link>
		<dc:creator>Armin</dc:creator>
		<pubDate>Tue, 23 Feb 2010 03:13:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.ocoudert.com/blog/?p=724#comment-646</guid>
		<description>Olivier, 
Thanks for your articles. I&#039;m trying to make sense of point and counter point. I agree formal verification can coexist with dynamic simulation at this point to speed up simulation, to increase coverage and to help debugging as you have in article. Definitely they have their own share of verification and progress from many sources. Here is the state problem and solution, please add to develop discussion. 

Problem: To address liveness assertion which is infinite duration, all periodic cycles from starting states (all initialization phases) need to be analyzed. To analyze periodic cycles, the formal engine must analyze the length of longest cycle plus and initialization phase. And longest path can be infinite. 

Solution: One can bound the problem based on knowledge of design, but sometimes it’s not possible to convert liveness to safety assertion. To address this issue, bounding engines build state space incrementally and verify assertions so avoid state space explosion. Unfortunately bounded engines cannot solve liveness assertions because they also blow up. Dynamic Hybrid Engines use simulation to get to interesting state (control transition or when exception occur or where corner case is based on design knowledge) and then bounded model checker can find bugs which is not proof but bug hunting technique. To reduce state space again, one needs to have knowledge of design and tool needs to support engine optimization, nondeterminism (freeing and abstraction), pruning and partitioning. 

-- Armin</description>
		<content:encoded><![CDATA[<p>Olivier,<br />
Thanks for your articles. I&#8217;m trying to make sense of point and counter point. I agree formal verification can coexist with dynamic simulation at this point to speed up simulation, to increase coverage and to help debugging as you have in article. Definitely they have their own share of verification and progress from many sources. Here is the state problem and solution, please add to develop discussion. </p>
<p>Problem: To address liveness assertion which is infinite duration, all periodic cycles from starting states (all initialization phases) need to be analyzed. To analyze periodic cycles, the formal engine must analyze the length of longest cycle plus and initialization phase. And longest path can be infinite. </p>
<p>Solution: One can bound the problem based on knowledge of design, but sometimes it’s not possible to convert liveness to safety assertion. To address this issue, bounding engines build state space incrementally and verify assertions so avoid state space explosion. Unfortunately bounded engines cannot solve liveness assertions because they also blow up. Dynamic Hybrid Engines use simulation to get to interesting state (control transition or when exception occur or where corner case is based on design knowledge) and then bounded model checker can find bugs which is not proof but bug hunting technique. To reduce state space again, one needs to have knowledge of design and tool needs to support engine optimization, nondeterminism (freeing and abstraction), pruning and partitioning. </p>
<p>&#8211; Armin</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Has formal verification technology stalled?</title>
		<link>http://www.ocoudert.com/blog/2010/02/21/formal-verification-stalling-take-two/comment-page-1/#comment-642</link>
		<dc:creator>Has formal verification technology stalled?</dc:creator>
		<pubDate>Mon, 22 Feb 2010 20:04:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.ocoudert.com/blog/?p=724#comment-642</guid>
		<description>[...] Formal verification stalling, take two [...]</description>
		<content:encoded><![CDATA[<p>[...] Formal verification stalling, take two [...]</p>
]]></content:encoded>
	</item>
</channel>
</rss>
