LoopInvGen: A Loop Invariant Generator based on Precondition Inference

Saswat PadhiRahul SharmaTodd Millstein

Overview of LoopInvGen, our submission to the Inv track of the SyGuS Competition 2019
⟨ SyGuS-Comp Contribution ⟩


We describe the LoopInvGen tool for generating loop invariants that can provably guarantee correctness of a program with respect to a given specification. LoopInvGen is an efficient implementation of the inference technique proposed in our earlier work on the precondition inference engine (PIE).

In contrast to existing techniques, LoopInvGen is not restricted to a fixed set of features — atomic predicates that are composed together to build complex loop invariants. Instead, we start with no initial features, and use program synthesis techniques to grow the set on demand. This not only enables a less onerous and more expressive approach, but also appears to be significantly faster than the existing tools over the SyGuS-Comp 2018 benchmarks from the Inv track.

BibTeX Citation
  title         = {LoopInvGen: A Loop Invariant Generator based on Precondition Inference},
  author        = {Saswat Padhi and Rahul Sharma and Todd Millstein},
  journal       = {CoRR},
  volume        = {abs/1707.02029},
  year          = {2018},
  eprint        = {1707.02029},
  archivePrefix = {arXiv},
  primaryClass  = {cs.PL},
  url           = {http://arxiv.org/abs/1707.02029}