Automatic Program Verification Using Dafny Syntax

using and building an automatic program verifier n.w
1 / 8
Embed
Share

Learn about automatic program verification techniques using Dafny syntax. Explore methods, specifications, debugging, and more to enhance your understanding of program verification.

  • Program Verification
  • Dafny Syntax
  • Debugging
  • Automatic Verification
  • Software Engineering

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Using and Building an Automatic Program Verifier K. Rustan M. Leino Research in Software Engineering (RiSE) Microsoft Research, Redmond Lecture 3 LASER Summer School 2011 Elba, Italy 8 September 2011

  2. Review Methods specifications have pre- and postconditions Loops are specified with loop invariants Termination is specified used variant functions Debugging Verification debugger gives a way to inspect values in a trace of a counterexample Assert statements check that a condition is known to hold and can be used as lemmas Assume statements restrict attention to certain executions and are useful for verification debugging

  3. Links Dafny For Dafny syntax and constructs, see Dafny Quick Reference research.microsoft.com/dafny rise4fun.com/Dafny/tutorial/guide rise4fun rise4fun.com Verification Corner research.microsoft.com/verificationcorner

  4. Expanding on yesterdays lectures Lemma methods can be declared as ghost Loops and breaks

  5. Cubes program: Hint var c := 0; while (n < a.Length) invariant 0 <= n <= a.Length; invariant c == n*n*n; invariant forall i :: 0 <= i < n ==> { a[n] := c; c := (n+1)*(n+1)*(n+1); n := n + 1; }

  6. Lemma in action, ghost statements FindZero, revisited

  7. Exercise Mirror2 http://rise4fun.com/Dafny/sn1

  8. Links Dafny research.microsoft.com/dafny rise4fun.com/Dafny/tutorial/guide rise4fun rise4fun.com Verification Corner research.microsoft.com/verificationcorner

Related


More Related Content