Loop Invariants on Demand

K. Rustan M. Leino and Francesco Logozzo

Abstract

This paper describes a sound technique that combines the precision of theorem proving with the loop-invariant inference of abstract interpretation. The loop-invariant computations are invoked on demand when the need for a stronger loop invariant arises, which allows a gradual increase in the level of precision used by the abstract interpreter. The technique generates loop invariants that are specific to a subset of a program's executions, achieving a dynamic and automatic form of value-based trace partitioning. Finally, the technique can be incorporated into a lemmas-on-demand theorem prover, where the loop-invariant inference happens after the generation of verification conditions.

Details

Publication typeInproceedings
Published inProceedings of the the 3rd Asian Symposium on Programming Languages and Systems (APLAS'05)
Volume3780
PublisherSpringer Verlag
> Publications > Loop Invariants on Demand