Programming Languages and Systems

Volume 3780 of the series Lecture Notes in Computer Science pp 119-134

Loop Invariants on Demand

  • K. Rustan M. LeinoAffiliated withMicrosoft Research
  • , Francesco LogozzoAffiliated withLaboratoire d’Informatique de l’École Normale Supérieure

* Final gross prices may vary according to local VAT.

Get Access


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.