Sundance: A Simple SMT Solver for Program Verification
Amar Shah, Benjamin F. Jones, Can Cebeci, Jason Z. S. Hu, Lee A. Barnett, Rémi Delmas, Marijn Heule, Bryan Parno, Bruno Dutertre
Abstract
We present Sundance, an SMT solver for program verification written in about 13,600 lines of Rust. Sundance combines the Cadical SAT solver with congruence closure, linear arithmetic, algebraic datatypes, and pattern-based quantifier instantiation. Sundance produces eDRAT proofs for every unsat answer. On 21,531 queries from Verus, Dafny, and F*, Sundance is comparable to existing solvers, with 26--38 times fewer lines of code than Z3 and cvc5. We further show that its components can be swapped for Z3's arithmetic solver, MiniSat, and the Semper e-graph. We have open sourced Sundance.
Create a lesson
Related papers
Timed Games under Environmental Interference with Real-Time Objectives
Andrea Manini, Matteo Rossi, Pierluigi San Pietro
Executable Specifications in Transition Algebra
Daniel Găină, Adrián Riesco, Ionuţ Ţuţu
Essential Unitarity for Higher-Order Quantum Computation (Extended Abstract)
Samson Abramsky, Radha Jagadeesan
Global Trace Condition for Injective Transition Graphs
Stefano Berardi, Ugo de'Liguoro, Daniel Osorio-Valencia
Aero-VPA: Few-Step Flow-Matching Control over Non-Reconstructive JEPA Latents for Agile Flight on Edge Hardware
Yeonseok Lee
Polynomial VASS MDPs
Michal Ajdarow