OASIS: ILPGuided Synthesis of Loop Invariants
Abstract
Finding appropriate inductive loop invariants for a program is a key challenge in verifying its functional properties. Although the problem is undecidable in general, several heuristics have been proposed to handle practical programs that tend to have simple controlflow structures. However, these heuristics only work well when the space of invariants is small. On the other hand, machinelearned techniques that use continuous optimization have a high sample complexity, i.e., the number of invariant guesses and the associated counterexamples, since the invariant is required to exactly satisfy a specification. We propose a novel technique that is able to solve complex verification problems involving programs with larger number of variables and nonlinear specifications. We formulate an invariant as a piecewise lowdegree polynomial, and reduce the problem of synthesizing it to a set of integer linear programming (ILP) problems. This enables the use of stateoftheart ILP techniques that combine enumerative search with continuous optimization; thus ensuring fast convergence for a large class of verification tasks while still ensuring low sample complexity. We instantiate our technique as the opensource oasis tool using an offtheshelf ILP solver, and evaluate it on more than 300 benchmark tasks collected from the annual SyGuS competition and recent prior work. Our experiments show that oasis outperforms the stateoftheart tools, including the winner of last year's SyGuS competition, and is able to solve 9 challenging tasks that existing tools fail on.
 Publication:

arXiv eprints
 Pub Date:
 November 2019
 arXiv:
 arXiv:1911.11728
 Bibcode:
 2019arXiv191111728B
 Keywords:

 Computer Science  Machine Learning;
 Computer Science  Programming Languages;
 Computer Science  Software Engineering;
 Statistics  Machine Learning