Inferring Loop Invariants using Postconditions
arXiv:0909.0884 · doi:10.1007/978-3-642-15025-8_15
Abstract
One of the obstacles in automatic program proving is to obtain suitable loop invariants. The invariant of a loop is a weakened form of its postcondition (the loop's goal, also known as its contract); the present work takes advantage of this observation by using the postcondition as the basis for invariant inference, using various heuristics such as "uncoupling" which prove useful in many important algorithms. Thanks to these heuristics, the technique is able to infer invariants for a large variety of loop examples. We present the theory behind the technique, its implementation (freely available for download and currently relying on Microsoft Research's Boogie tool), and the results obtained.
Slightly revised version
References in corpus (2)
Cited by in corpus (7)
- Loop invariants: analysis, classification, and examples
- Inferring Loop Invariants by Mutation, Dynamic Analysis, and Static Checking
- Verifying Eiffel Programs with Boogie
- Kleene Algebra Modulo Theories
- AutoFrame: Automatic Frame Inference for Object-Oriented Languages
- A Complete Approach to Loop Verification with Invariants and Summaries
- Generating Loop Invariants for Program Verification by Transformation