Verifier tactics
Preconditions
Files: [Slides] [Code examples]
We will use the second half of this class to work on some hands-on verification problems.
Postconditions
Files: [Slides with solutions] [Code examples with solutions]
What you should have learned after completing chapter 6:
- Identify possible bottlenecks in automated verifiers introduced through incomplete reasoning about quantifiers, e.g. matching loops.
- The basics of Heuristic quantifier instantiation using pattern-based e-matching.
- Pragmatic strategies for dealing with verification bottlenecks, such as manually providing ground terms, limited functions (bounding the unfolding depth of functions), supplying suitable triggering patterns, and introducing ghost code.
- Writing and proving lemmas as ghost methods.
- Using an automated verifier for proving simple algorithms correct.