Download presentation
Presentation is loading. Please wait.
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.