English

LoopInvGen: A Loop Invariant Generator based on Precondition Inference

Programming Languages 2019-11-01 v4 Machine Learning

Abstract

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 originally proposed in our earlier work on PIE (https://doi.org/10.1145/2908080.2908099). 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.

Keywords

Cite

@article{arxiv.1707.02029,
  title  = {LoopInvGen: A Loop Invariant Generator based on Precondition Inference},
  author = {Saswat Padhi and Rahul Sharma and Todd Millstein},
  journal= {arXiv preprint arXiv:1707.02029},
  year   = {2019}
}

Comments

Tool Description ( for technical details, see our PLDI paper at https://doi.org/10.1145/2908080.2908099 ), SyGuS-COMP'19 Competition Contribution, 4 pages

R2 v1 2026-06-22T20:40:19.538Z