Litcius/Paper detail

Flexible Proof Production in an Industrial-Strength SMT Solver

Haniel Barbosa, Andrew Reynolds, Gereon Kremer, Hanna Lachnitt, Aina Niemetz, Andres Nötzli, Alex Ozdemir, Mathias Preiner, Arjun Viswanathan, Scott Viteri, Yoni Zohar, Cesare Tinelli, Clark Barrett

2022Lecture notes in computer science20 citationsDOIOpen Access PDF

Abstract

Abstract Proof production for SMT solvers is paramount to ensure their correctness independently from implementations, which are often prohibitively difficult to verify. Historically, however, SMT proof production has struggled with performance and coverage issues, resulting in the disabling of many crucial solving techniques and in coarse-grained (and thus hard to check) proofs. We present a flexible proof-production architecture designed to handle the complexity of versatile, industrial-strength SMT solvers and show how we leverage it to produce detailed proofs, including for components previously unsupported by any solver. The architecture allows proofs to be produced modularly, lazily, and with numerous safeguards for correctness. This architecture has been implemented in the state-of-the-art SMT solver cvc5. We evaluate its proofs for SMT-LIB benchmarks and show that the new architecture produces better coverage than previous approaches, has acceptable performance overhead, and supports detailed proofs for most solving components.

Topics & Concepts

Computer scienceMathematical proofCorrectnessSolverLeverage (statistics)Satisfiability modulo theoriesImplementationArchitectureProof of conceptProgramming languageOverhead (engineering)Theoretical computer scienceParallel computingOperating systemArtificial intelligenceMathematicsArtGeometryVisual artsLogic, programming, and type systemsFormal Methods in VerificationSoftware Testing and Debugging Techniques
Flexible Proof Production in an Industrial-Strength SMT Solver | Litcius