Presentation is loading. Please wait.

Presentation is loading. Please wait.

Using and Building an Automatic Program Verifier K. Rustan M. Leino Research in Software Engineering (RiSE) Microsoft Research, Redmond Lecture 1 LASER.

Similar presentations


Presentation on theme: "Using and Building an Automatic Program Verifier K. Rustan M. Leino Research in Software Engineering (RiSE) Microsoft Research, Redmond Lecture 1 LASER."— Presentation transcript:

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

2 functional correctness limited checking automatic decision procedures (SMT solvers) interactive proof assistants no machine assistance human effort assurance level technology:

3 Object-based language generic classes, no subclassing object references, dynamic allocation sequential control Built-in specifications pre- and postconditions framing loop invariants, inline assertions termination Specification support Sets, sequences, inductive datatypes, … User-defined recursive functions Ghost variables

4 Basics (assert, ensures, BVD, assume, requires, call, testing specs, debugging specs) Swap (parameters, globals, fields)

5 Run time Compile time Design time  closer to the time of program construction

6 A loop invariant holds at the top of every iteration is the only thing the verifier remembers from one iteration to another (about the variables being modified)  It is as if the loop body were not available while (B) { S; } Loop invariant holds here

7 Loops Iterative Fibonacci, FindZero (linear search)

8 Binary search Specify, implement, and verify binary search Cubes http://rise4fun.com/Dafny/Qch Cubes, recursive http://rise4fun.com/Dafny/6xO


Download ppt "Using and Building an Automatic Program Verifier K. Rustan M. Leino Research in Software Engineering (RiSE) Microsoft Research, Redmond Lecture 1 LASER."

Similar presentations


Ads by Google