Tools and Algorithms for the Construction and Analysis of Systems

Volume 3440 of the series Lecture Notes in Computer Science pp 334-348

A Two-Tier Technique for Supporting Quantifiers in a Lazily Proof-Explicating Theorem Prover

  • K. Rustan M. LeinoAffiliated withMicrosoft Research
  • , Madan MusuvathiAffiliated withMicrosoft Research
  • , Xinming OuAffiliated withPrinceton University


Lazy proof explication is a theorem-proving architecture that allows a combination of Nelson-Oppen-style decision procedures to leverage a SAT solver’s ability to perform propositional reasoning efficiently. The SAT solver finds ways to satisfy a given formula propositionally, while the various decision procedures perform theory reasoning to block propositionally satisfied instances that are not consistent with the theories. Supporting quantifiers in this architecture poses a challenge as quantifier instantiations can dynamically introduce boolean structure in the formula, requiring a tighter interleaving between propositional and theory reasoning.

This paper proposes handling quantifiers by using two SAT solvers, thereby separating the propositional reasoning of the input formula from that of the instantiated formulas. This technique can then reduce the propositional search space, as the paper demonstrates. The technique can use off-the-shelf SAT solvers and requires only that the theories are checkpointable.