Loop Verification with Invariants and Contracts
summary
Loop contracts pair an invariant with a relational summary and claim strictly more expressiveness than invariants alone while admitting a constructive translation to invariants so any verifier can implement them; examples include max by elimination, binary search and array copy where summaries simplify postconditions but can forget framing, so invariants still prevent runtime errors. Verification conditions are simple, tool experiments with Horn solvers are preliminary and inconclusive, and direct support is straightforward if the verifier allows spec-style pre/post statements.
AI-written summary · about
chapters (11)
- 0:00Start
- 0:04Loop Verification with Invariants and Contracts
- 3:07A Contract Consists of an Invariant
- 3:49Finding the Maximum by Elimination
- 6:02Recursive Algorithm
- 10:52Proof for the Iterative Version
- 14:23Summary Approach
- 15:56What Is the Correspondence between Invariants and Summaries
- 17:11Encode Summaries as Part of Invariant
- 20:23Syntactic Proof Rule
- 23:19Binary Search
