SMT Solving in a Nutshell
Total Page:16
File Type:pdf, Size:1020Kb
SAT and SMT Solving in a Nutshell Erika Abrah´ am´ RWTH Aachen University, Germany LuFG Theory of Hybrid Systems February 27, 2020 Erika Abrah´ am´ - SAT and SMT solving 1 / 16 What is this talk about? Satisfiability problem The satisfiability problem is the problem of deciding whether a logical formula is satisfiable. We focus on the automated solution of the satisfiability problem for first-order logic over arithmetic theories, especially using SAT and SMT solving. Erika Abrah´ am´ - SAT and SMT solving 2 / 16 CAS SAT SMT (propositional logic) (SAT modulo theories) Enumeration Computer algebra DP (resolution) systems [Davis, Putnam’60] DPLL (propagation) [Davis,Putnam,Logemann,Loveland’62] Decision procedures NP-completeness [Cook’71] for combined theories CAD Conflict-directed [Shostak’79] [Nelson, Oppen’79] backjumping Partial CAD Virtual CDCL [GRASP’97] [zChaff’04] DPLL(T) substitution Watched literals Equalities and uninterpreted Clause learning/forgetting functions Variable ordering heuristics Bit-vectors Restarts Array theory Arithmetic Decision procedures for first-order logic over arithmetic theories in mathematical logic 1940 Computer architecture development 1960 1970 1980 2000 2010 Erika Abrah´ am´ - SAT and SMT solving 3 / 16 SAT SMT (propositional logic) (SAT modulo theories) Enumeration DP (resolution) [Davis, Putnam’60] DPLL (propagation) [Davis,Putnam,Logemann,Loveland’62] Decision procedures NP-completeness [Cook’71] for combined theories Conflict-directed [Shostak’79] [Nelson, Oppen’79] backjumping CDCL [GRASP’97] [zChaff’04] DPLL(T) Watched literals Equalities and uninterpreted Clause learning/forgetting functions Variable ordering heuristics Bit-vectors Restarts Array theory Arithmetic Decision procedures for first-order logic over arithmetic theories in mathematical logic 1940 Computer architecture development CAS Computer algebra 1960 systems 1970 CAD 1980 Partial CAD Virtual 2000 substitution 2010 Erika Abrah´ am´ - SAT and SMT solving 3 / 16 SMT (SAT modulo theories) Decision procedures for combined theories [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities and uninterpreted functions Bit-vectors Array theory Arithmetic Decision procedures for first-order logic over arithmetic theories in mathematical logic 1940 Computer architecture development CAS SAT (propositional logic) Enumeration Computer algebra 1960 DP (resolution) systems [Davis, Putnam’60] DPLL (propagation) [Davis,Putnam,Logemann,Loveland’62] 1970 NP-completeness [Cook’71] CAD Conflict-directed 1980 backjumping Partial CAD Virtual CDCL [GRASP’97] [zChaff’04] 2000 substitution Watched literals Clause learning/forgetting Variable ordering heuristics 2010 Restarts Erika Abrah´ am´ - SAT and SMT solving 3 / 16 Decision procedures for first-order logic over arithmetic theories in mathematical logic 1940 Computer architecture development CAS SAT SMT (propositional logic) (SAT modulo theories) Enumeration Computer algebra 1960 DP (resolution) systems [Davis, Putnam’60] DPLL (propagation) [Davis,Putnam,Logemann,Loveland’62] Decision procedures 1970 NP-completeness [Cook’71] for combined theories CAD Conflict-directed [Shostak’79] [Nelson, Oppen’79] 1980 backjumping Partial CAD Virtual CDCL [GRASP’97] [zChaff’04] DPLL(T) 2000 substitution Watched literals Equalities and uninterpreted Clause learning/forgetting functions Variable ordering heuristics Bit-vectors 2010 Restarts Array theory Arithmetic Erika Abrah´ am´ - SAT and SMT solving 3 / 16 Tool development CAS 1960 Schoonschip MATHLAB Reduce Altran 1970 Scratchpad/Axiom Erika Macsyma SMP Abrah´ 1980 muMATH am´ - SAT and SMT solving Maple Mathcad SAC GAP CoCoA MathHandbook Mathomatic Mathematica Derive FORM 1990 KASH/KANT PARI/GP Magma Fermat Erable Macaulay2 Singular SymbolicC++ Maxima 2000 Xcas/Giac Yacas SAGE SMath Studio Cadabra SymPy OpenAxiom MATLAB MuPAD 2010 Wolfram Alpha TI-Nspire CAS Mathics Symbolism FxSolver Calcinator SyMAT 2020 4 / 16 SAT SMT SATO WalkSAT BCSAT Chaff GRASP Siege zChaff Berkmin MiniSAT HySAT/iSAT Bacelogic Sat4j RSat HyperSat DPT ABsolver MathSAT CVC Yices Beaver Alt-Ergo Z3 Spear PicoSAT Boolector ArgoSat OpenCog veriT MiniSmt CryptoMiniSat Glucose UBCSAT Lingeling SWORD SatEEn OpenSMT Clasp UCLID SMCHR STP SMT-RAT atSTSolver SAT Fast SMTInterpol SONOLAR raSAT Tool development CAS 1960 Schoonschip MATHLAB SAT Reduce Altran 1970 Scratchpad/Axiom Erika Macsyma SMP Abrah´ 1980 muMATH am´ - SAT and SMT solving Maple Mathcad SAC GAP CoCoA MathHandbook Mathomatic Mathematica Derive FORM 1990 KASH/KANT PARI/GP Magma Fermat Erable Macaulay2 SATO WalkSAT Singular SymbolicC++ Maxima BCSAT Chaff GRASP 2000 Xcas/Giac Siege zChaff Berkmin MiniSAT Yacas SAGE SMath Studio Sat4j RSat HyperSat Cadabra SymPy OpenAxiom MATLAB MuPAD 2010 Wolfram Alpha TI-Nspire CAS ArgoSat Mathics Symbolism FxSolver CryptoMiniSat Glucose Calcinator SyMAT UBCSAT Lingeling atSTSolver SAT Fast 2020 4 / 16 SMT HySAT/iSAT Bacelogic DPT ABsolver MathSAT CVC Yices Beaver Alt-Ergo Z3 Spear PicoSAT Boolector OpenCog veriT MiniSmt SWORD SatEEn OpenSMT Clasp UCLID SMCHR STP SMT-RAT SMTInterpol SONOLAR raSAT Tool development CAS 1960 Schoonschip MATHLAB SAT Reduce Altran 1970 Scratchpad/Axiom “We have success stories of using zChaff to solve problems with more than one million variables and 10 million clauses. (Of course, it can’t solve every such problem!).” Erika Macsyma SMP Abrah´ 1980 muMATH am´ - SAT and SMT solving Maple Mathcad SAC GAP CoCoA MathHandbook Mathomatic Mathematica Derive FORM 1990 KASH/KANT PARI/GP Magma Fermat Erable Macaulay2 SATO WalkSAT Singular SymbolicC++ Maxima BCSAT Chaff GRASP 2000 Xcas/Giac Siege zChaff Berkmin MiniSAT Yacas SAGE SMath Studio Sat4j RSat HyperSat Cadabra SymPy OpenAxiom MATLAB MuPAD 2010 Wolfram Alpha TI-Nspire CAS ArgoSat Mathics Symbolism FxSolver CryptoMiniSat [zChaff web page] Glucose Calcinator SyMAT UBCSAT Lingeling atSTSolver SAT Fast 2020 4 / 16 SMT HySAT/iSAT Bacelogic DPT ABsolver MathSAT CVC Yices Beaver Alt-Ergo Z3 Spear PicoSAT Boolector OpenCog veriT MiniSmt SWORD SatEEn OpenSMT Clasp UCLID SMCHR STP SMT-RAT SMTInterpol SONOLAR raSAT Tool development CAS 1960 Schoonschip MATHLAB SAT Reduce Altran 1970 Scratchpad/Axiom “We have success stories of using zChaff to solve problems with more than one million variables and 10 million clauses. (Of course, it can’t solve every such problem!).” Erika Macsyma “ The efficiency of our programs allowed us to solve overSMP one hundred Abrah´ open quasigroup problems in design theory.” 1980 muMATH am´ - SAT and SMT solving Maple Mathcad SAC GAP CoCoA MathHandbook Mathomatic Mathematica Derive FORM 1990 KASH/KANT PARI/GP Magma Fermat Erable Macaulay2 SATO WalkSAT Singular SymbolicC++ Maxima BCSAT Chaff GRASP 2000 Xcas/Giac Siege zChaff Berkmin MiniSAT Yacas SAGE SMath Studio Sat4j RSat HyperSat Cadabra SymPy OpenAxiom MATLAB MuPAD 2010 Wolfram Alpha TI-Nspire CAS ArgoSat Mathics Symbolism FxSolver CryptoMiniSat [zChaff web page] Glucose Calcinator SyMAT UBCSAT Lingeling [SATO web page] atSTSolver SAT Fast 2020 4 / 16 SMT HySAT/iSAT Bacelogic DPT ABsolver MathSAT CVC Yices Beaver Alt-Ergo Z3 Spear PicoSAT Boolector OpenCog veriT MiniSmt SWORD SatEEn OpenSMT Clasp UCLID SMCHR STP SMT-RAT SMTInterpol SONOLAR raSAT Tool development CAS 1960 Schoonschip MATHLAB SAT Reduce Altran 1970 Scratchpad/Axiom Erika Macsyma SMP Abrah´ 1980 muMATH am´ - SAT and SMT solving Maple Mathcad SAC GAP CoCoA MathHandbook Mathomatic Mathematica Derive FORM 1990 KASH/KANT PARI/GP Magma Fermat Erable Macaulay2 SATO WalkSAT Singular SymbolicC++ Maxima BCSAT Chaff GRASP 2000 Xcas/Giac Siege zChaff Berkmin MiniSAT Yacas SAGE SMath Studio Sat4j RSat HyperSat Cadabra SymPy OpenAxiom MATLAB MuPAD 2010 Wolfram Alpha TI-Nspire CAS ArgoSat Mathics Symbolism FxSolver CryptoMiniSat Glucose Calcinator SyMAT UBCSAT Lingeling atSTSolver SAT Fast 2020 4 / 16 SMT HySAT/iSAT Bacelogic DPT ABsolver MathSAT CVC Yices Beaver Alt-Ergo Z3 Spear PicoSAT Boolector OpenCog veriT MiniSmt SWORD SatEEn OpenSMT Clasp UCLID SMCHR STP SMT-RAT SMTInterpol SONOLAR raSAT Tool development CAS 1960 Schoonschip MATHLAB SAT Reduce Altran SMT 1970 Scratchpad/Axiom Erika Macsyma SMP Abrah´ 1980 muMATH am´ - SAT and SMT solving Maple Mathcad SAC GAP CoCoA MathHandbook Mathomatic Mathematica Derive FORM 1990 KASH/KANT PARI/GP Magma Fermat Erable Macaulay2 SATO WalkSAT Singular SymbolicC++ Maxima BCSAT Chaff GRASP 2000 Xcas/Giac Siege zChaff Berkmin MiniSAT Yacas HySAT/iSAT Bacelogic SAGE SMath Studio Sat4j RSat HyperSat Cadabra SymPy OpenAxiom DPT ABsolver MathSAT CVC Yices Beaver Alt-Ergo Z3 MATLAB MuPAD Spear PicoSAT Boolector 2010 Wolfram Alpha TI-Nspire CAS ArgoSat Mathics Symbolism FxSolver OpenCog veriT MiniSmt CryptoMiniSat Glucose Calcinator SyMAT UBCSAT Lingeling SWORD SatEEn OpenSMT Clasp UCLID SMCHR STP SMT-RAT atSTSolver SAT Fast 2020 SMTInterpol SONOLAR raSAT 4 / 16 Community support: Standardised input language, lots of benchmarks available. Competitions since 2002. 2014 SAT Competition: 3 categories, 79 participants with 137 solvers. SAT Live! forum as community platform, dedicated conferences, journals, etc. Satisfiability checking for propositional logic Success story: SAT-solving Practical problems with millions of variables are solvable. Frequently used in different research areas for, e.g., analysis, synthesis and optimisation. Also massively used in industry for, e.g., digital circuit design and verification. Erika Abrah´ am´ - SAT and SMT solving 5 / 16 Satisfiability checking for propositional logic Success story: SAT-solving Practical problems with millions of variables are