<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Comment Feed for Channel 9 - The Verification Corner: Loop Invariants</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants/RSS"></atom:link>
	<image>
		<url>http://ecn.channel9.msdn.com/o9/ch9/3/5/4/9/1/5/vcloopinvariants_512_ch9.png</url>
		<title>Channel 9 - The Verification Corner: Loop Invariants</title>
		<link></link>
	</image>
	<description> In this episode of The Verification Corner, Rustan Leino talks about Loop Invariants. &amp;nbsp;He gives a brief summary of the theoretical foundations and shows how a program can sometimes be systematically constructed from its specifications. &amp;nbsp;Rustan Leino&amp;nbsp;is a Principal Researcher in the Research in Software Engineering (RiSE) group at Microsoft Research. Try Spec# in your web browser at http://rise4fun.com/specsharp! Whiteboard slides&amp;nbsp;[.pdf]&amp;nbsp;[.pptx]&amp;nbsp; Spec# Demo project&amp;nbsp;[.zip]Find past and future episodes of the The Verification Corner! The Verification Corner is a show on Software Verification Techniques and Tools. The show is produced by the&amp;nbsp;Research in Software Engineering team (RiSE) coordinates Microsoft&#39;s research in Software Engineering in Redmond, USA. </description>
	<link></link>
	<language>en</language>
	<pubDate>Fri, 24 May 2013 07:29:23 GMT</pubDate>
	<lastBuildDate>Fri, 24 May 2013 07:29:23 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<item>
		<title>Re: The Verification Corner: Loop Invariants</title>
		<description>
			<![CDATA[
<p>Very interesting video, thx</p>
<p>posted by Flynn0r</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c633989249580000000</link>
		<pubDate>Tue, 12 Jan 2010 20:29:18 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c633989249580000000</guid>
		<dc:creator>Flynn0r</dc:creator>
	</item>
	<item>
		<title>Re: The Verification Corner: Loop Invariants</title>
		<description>
			<![CDATA[
<p>I agree, I'd like to see a lot more videos in this series. Also, that is a way cool digital whiteboard - I've always wanted a whiteboard I could print from. It does make me wonder what other &quot;toys&quot; MSR use&nbsp;as part of their working day.</p>
<p>posted by tomkirbygreen</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c633989508480000000</link>
		<pubDate>Wed, 13 Jan 2010 03:40:48 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c633989508480000000</guid>
		<dc:creator>tomkirbygreen</dc:creator>
	</item>
	<item>
		<title>Re: The Verification Corner: Loop Invariants</title>
		<description>
			<![CDATA[
<p>More videos are coming, The Verification Corner will cover all the aspects of software verification. At MSR, we usually rely on regular whiteboards like everyone else <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' /> In the movie, we've used an eBeam system to capture the pen to give a better video experience.</p>
<p>&nbsp;</p>
<p>posted by peli</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c633989535580000000</link>
		<pubDate>Wed, 13 Jan 2010 04:25:58 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c633989535580000000</guid>
		<dc:creator>peli</dc:creator>
	</item>
	<item>
		<title>Re: The Verification Corner: Loop Invariants</title>
		<description>
			<![CDATA[
<p>Very nice.</p>
<p>&nbsp;</p>
<p>I only wish there was an invariant of having the video released closer to the creation. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-5.gif' alt='Wink' />
</p>
<p>posted by N2Cheval</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c633989797710000000</link>
		<pubDate>Wed, 13 Jan 2010 11:42:51 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c633989797710000000</guid>
		<dc:creator>N2Cheval</dc:creator>
	</item>
	<item>
		<title>Re: The Verification Corner: Loop Invariants</title>
		<description>
			<![CDATA[
<p>&gt; video released closer to the creation</p>
<p>&nbsp;</p>
<p>Note sure I get it. Do you mean the video should be on the Spec# web site?</p>
<p>posted by peli</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c633989933890000000</link>
		<pubDate>Wed, 13 Jan 2010 15:29:49 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c633989933890000000</guid>
		<dc:creator>peli</dc:creator>
	</item>
	<item>
		<title>Re: The Verification Corner: Loop Invariants</title>
		<description>
			<![CDATA[
<p>Very good explanation of the subject! And the tools show to really help in the process.
</p>
<p>&nbsp;</p>
<p>Could the same thing be accomplished with CodeContracts? Or is Spec# further in its evolution? I was wondering because CodeContracts is what most people will be using (I guess) so it would make more sense to show the example in CodeContract instead of Spec#.</p>
<p>posted by Djeez</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c634000518790000000</link>
		<pubDate>Mon, 25 Jan 2010 21:31:19 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c634000518790000000</guid>
		<dc:creator>Djeez</dc:creator>
	</item>
	<item>
		<title>Re: The Verification Corner: Loop Invariants</title>
		<description>
			<![CDATA[
<p>Thanks!</p>
<p>&nbsp;</p>
<p>CodeContracts could in principle be used to do the same thing.&nbsp; However, we have more engineering to do for CodeContracts to support this particular example.&nbsp; While CodeContracts does support pre- and postconditions, it has no direct support for writing
 loop invariants, which&nbsp;play a central role&nbsp;in this episode of Verification Corner.&nbsp; As a more technical point,&nbsp;the static-checking tools for CodeContracts don't have the support for non-linear arithmetic (that is, multiplication of a variable with itself or
 with&nbsp;another variable) that is required to reason about the computation of cubes.</p>
<p>&nbsp;</p>
<p>For now, the best you can do in CodeContracts is to use an Assert just inside the loop body to express the loop invariant and then rely on run-time checking.&nbsp; Still, you may find that doing that improves your ability to reason about what's going on in the
 loop.</p>
<p>posted by leino</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c634001517280000000</link>
		<pubDate>Wed, 27 Jan 2010 01:15:28 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c634001517280000000</guid>
		<dc:creator>leino</dc:creator>
	</item>
	<item>
		<title>Re: The Verification Corner: Loop Invariants</title>
		<description>
			<![CDATA[
<p>I suppose you're referring to the mention of &quot;it is December&quot; in the video, while it was actually released here in January.&nbsp; But you can make wishes any time of year. <img src='http://ecn.channel9.msdn.com/o9/content/images/emoticons/emotion-1.gif' alt='Smiley' />
</p>
<p>posted by leino</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c634001519670000000</link>
		<pubDate>Wed, 27 Jan 2010 01:19:27 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c634001519670000000</guid>
		<dc:creator>leino</dc:creator>
	</item>
	<item>
		<title>Re: The Verification Corner: Loop Invariants</title>
		<description>
			<![CDATA[
<p>Hi all, I have a rather basic question. Why Hoare's triple is written as {P}S{Q}, instead of P{S}Q? Is there any special reason behind it?</p>
<p>posted by Hongyi</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c634020569460000000</link>
		<pubDate>Thu, 18 Feb 2010 02:29:06 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c634020569460000000</guid>
		<dc:creator>Hongyi</dc:creator>
	</item>
	<item>
		<title>Re: The Verification Corner: Loop Invariants</title>
		<description>
			<![CDATA[
<p>In Tony Hoare's classic 1969 paper, the triples&nbsp;were written P{S}Q.&nbsp; Sometime later (I'm not sure when), the common notation switched to {P}S{Q}.&nbsp; I think (but I'm not certain) that the reason for the switch was to make the assertions P and Q look as if
 they&nbsp;were comments, like in the syntax of the Pascal programming language.</p>
<p>posted by leino</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c634034256850000000</link>
		<pubDate>Fri, 05 Mar 2010 22:41:25 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c634034256850000000</guid>
		<dc:creator>leino</dc:creator>
	</item>
	<item>
		<title>Re: The Verification Corner: Loop Invariants</title>
		<description>
			<![CDATA[
<p>Can the system handle overflow (e.g. if the array of cubes is so large that the cubes of higher indices exceed the maximum integer value)?</p>
<p>posted by softwarekev</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c634085094610000000</link>
		<pubDate>Mon, 03 May 2010 18:51:01 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c634085094610000000</guid>
		<dc:creator>softwarekev</dc:creator>
	</item>
	<item>
		<title>Re: The Verification Corner: Loop Invariants</title>
		<description>
			<![CDATA[ <p>No, the Spec# verifier ignores issues of overflow.&nbsp; Checks for arithmetic overflow can be added to the verifier, at the cost of additional specification overhead for users.&nbsp; In some other languages we use for verification, like Dafny, the integers are unbounded, so there will never be any overflows.</p><p>posted by leino</p>]]>
		</description>
		<link>http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c634219241390000000</link>
		<pubDate>Wed, 06 Oct 2010 01:08:59 GMT</pubDate>
		<guid isPermaLink="true">http://channel9.msdn.com/Blogs/Peli/The-Verification-Corner-Loop-Invariants#c634219241390000000</guid>
		<dc:creator>leino</dc:creator>
	</item>
</channel>
</rss>