pipette
ESEspañol

A Deeper Look at Depth: Stable Generation Accounting for Quantifier Reasoning

Can Cebeci, Nikolaj Bj{\o}rner, George Candea, Cl\'ement Pit-Claudel

Preprint

In the authors' words

SMT solvers make automated verification convenient. At the same time, solvers suffer from instability, whereby seemingly inconsequential changes to the input may cause a previously quickly produced proof to fail or time out. This paper addresses a common cause of outcome instability (i.e., unsat/unknown fluctuations) in the context of program verification. We demonstrate that the generation (i.e., depth) accounting used to make quantifier instantiation practical and implemented in multiple state-of-the-art SMT solvers is non-confluent (i.e., prone to divergence), and that this leads to instability. We then address this deficiency and develop a new accounting method that is stable. The new method is justified using a sequence of refinements from an abstract, confluent solver model all the way to our implementation in Z3. Our empirical evaluation demonstrates that our implementation reduces outcome instability by 94% in the unstable core of the Mariposa benchmark without leading to performance regressions.

Main resultThe abstract does not state a limitation.

Appeared: Wednesday, September 23. arXiv. Preprint, not yet peer-reviewed.