Satisfiability Checking: Theory and Applications
Erika Abrah´ am´
RWTH Aachen University, Germany
STAF/SEFM 2016 July 06, 2016
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 1 / 41 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 quantifier-free first-order logic over different theories using SAT modulo theories (SMT) solving, and on applications of such technologies.
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 2 / 41 Computer architecture development Computer algebra SAT solvers SMT solvers systems (propositional logic) (SAT modulo theories) Enumeration
First computer DP (resolution) algebra systems [Davis, Putnam’60] DPLL (propagation) Grobner¨ bases [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] DPLL(T) substitution Watched literals [zChaff’04] Equalities Clause learning/forgetting Uninterpreted functions Variable ordering heuristics Bit-vector arithmetic Restarts Array theory Arithmetic...
Decision procedures for first-order logic over arithmetic theories in mathematical logic
1940
1960
1970
1980
2000
2010
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 3 / 41 Computer algebra SAT solvers SMT solvers systems (propositional logic) (SAT modulo theories) Enumeration
First computer DP (resolution) algebra systems [Davis, Putnam’60] DPLL (propagation) Grobner¨ bases [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] DPLL(T) substitution Watched literals [zChaff’04] Equalities Clause learning/forgetting Uninterpreted functions Variable ordering heuristics Bit-vector arithmetic 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´ - Satisfiability Checking: Theory and Applications 3 / 41 SAT solvers SMT solvers (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] DPLL(T) Watched literals [zChaff’04] Equalities Clause learning/forgetting Uninterpreted functions Variable ordering heuristics Bit-vector arithmetic Restarts Array theory Arithmetic...
Decision procedures for first-order logic over arithmetic theories in mathematical logic
1940 Computer architecture development Computer algebra systems
1960 First computer algebra systems Grobner¨ bases 1970 CAD 1980
Partial CAD Virtual 2000 substitution
2010
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 3 / 41 SMT solvers (SAT modulo theories)
Decision procedures for combined theories [Shostak’79] [Nelson, Oppen’79]
DPLL(T) Equalities Uninterpreted functions Bit-vector arithmetic Array theory Arithmetic...
Decision procedures for first-order logic over arithmetic theories in mathematical logic
1940 Computer architecture development Computer algebra SAT solvers systems (propositional logic) Enumeration
1960 First computer DP (resolution) algebra systems [Davis, Putnam’60] DPLL (propagation) Grobner¨ bases [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´ - Satisfiability Checking: Theory and Applications 3 / 41 Decision procedures for first-order logic over arithmetic theories in mathematical logic
1940 Computer architecture development Computer algebra SAT solvers SMT solvers systems (propositional logic) (SAT modulo theories) Enumeration
1960 First computer DP (resolution) algebra systems [Davis, Putnam’60] DPLL (propagation) Grobner¨ bases [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] DPLL(T) [zChaff’04] 2000 substitution Watched literals Equalities Clause learning/forgetting Uninterpreted functions Variable ordering heuristics Bit-vector arithmetic Restarts Array theory 2010 Arithmetic...
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 3 / 41 WalkSATSimplifySATO GRASPSVCChaff MiniSATBCSAT BerkminICSUclid MathSATzChaffHyperSat SiegeBarcelogicYices RSat Sat4jCVCZ3Alt-ErgoHySAT/iSAT BoolectorBeaver DPTArgoSat ABsolver PicoSATMiniSmt GlucoseSpearSTP veriT Lingeling CryptoMiniSatOpenCog SMT-RATUBCSATFast SMCHR SAT SolverUCLID Clasp
“We have success stories of using zChaff to solve problemsOpenSMTSatEEn SWORDwith more SAT than one million variables and 10 million clauses.
(Of course, it can’t solve every such problem!).” [zChaff web page] raSAT SMTInterpol SMT SONOLAR “ The efficiency of our programs allowed us to solve over one hundred open quasigroup problems in design theory.” [SATO web page]
Tool development
CAS
SchoonschipMATHLAB Reduce AltranScratchpad/AxiomMacsymaSMP muMATHMaple MathcadCoCoA SAC Mathematica MathHandbookGAPKASH/KANT DeriveMagma MathomaticPARI/GP Singular FermatFORMMaxima ErableSymbolicC++Xcas/Giac YacasMacaulay2SAGE CadabraSMath MATLAB StudioSymPyWolfram MuPAD OpenAxiomMathics AlphaCalcinator TI-NspireSymbolism SyMATCASFxSolver
1960 1970 1980 1990 2000 2010 2020
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 4 / 41 SimplifySVC ICSUclid MathSAT BarcelogicYices CVCZ3Alt-ErgoHySAT/iSAT BoolectorBeaver DPT ABsolver PicoSATMiniSmt SpearSTP veriT OpenCog SMT-RATSMCHR UCLID Clasp
“We have success stories of using zChaff to solve problemsOpenSMTSatEEn SWORDwith more than one million variables and 10 million clauses.
(Of course, it can’t solve every such problem!).” [zChaff web page] raSAT SMTInterpol SMT SONOLAR “ The efficiency of our programs allowed us to solve over one hundred open quasigroup problems in design theory.” [SATO web page]
Tool development
CAS
SchoonschipMATHLAB Reduce AltranScratchpad/AxiomMacsymaSMP muMATHMaple MathcadCoCoA SAC Mathematica MathHandbookGAPKASH/KANT DeriveMagma MathomaticPARI/GP Singular FermatFORMMaxima ErableSymbolicC++Xcas/Giac YacasMacaulay2SAGE CadabraSMath MATLAB StudioSymPyWolfram MuPAD OpenAxiomMathics AlphaCalcinator TI-NspireSymbolism SyMATCASFxSolver
1960 1970 1980 1990 2000 2010 2020 WalkSATSATO GRASPChaff MiniSATBCSAT Berkmin zChaffHyperSat Siege RSat Sat4j ArgoSat GlucoseLingelingCryptoMiniSat UBCSATFast SAT Solver
SAT
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 4 / 41 SimplifySVC ICSUclid MathSAT BarcelogicYices CVCZ3Alt-ErgoHySAT/iSAT BoolectorBeaver DPT ABsolver PicoSATMiniSmt SpearSTP veriT OpenCog SMT-RATSMCHR UCLID Clasp
OpenSMTSatEEn SWORD
raSAT SMTInterpol SMT SONOLAR “ The efficiency of our programs allowed us to solve over one hundred open quasigroup problems in design theory.” [SATO web page]
Tool development
CAS
SchoonschipMATHLAB Reduce AltranScratchpad/AxiomMacsymaSMP muMATHMaple MathcadCoCoA SAC Mathematica MathHandbookGAPKASH/KANT DeriveMagma MathomaticPARI/GP Singular FermatFORMMaxima ErableSymbolicC++Xcas/Giac YacasMacaulay2SAGE CadabraSMath MATLAB StudioSymPyWolfram MuPAD OpenAxiomMathics AlphaCalcinator TI-NspireSymbolism SyMATCASFxSolver
1960 1970 1980 1990 2000 2010 2020 WalkSATSATO GRASPChaff MiniSATBCSAT Berkmin zChaffHyperSat Siege RSat Sat4j ArgoSat GlucoseLingelingCryptoMiniSat UBCSATFast SAT Solver
“We have success stories of using zChaff to solve problems with more SAT than one million variables and 10 million clauses. (Of course, it can’t solve every such problem!).” [zChaff web page]
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 4 / 41 SimplifySVC ICSUclid MathSAT BarcelogicYices CVCZ3Alt-ErgoHySAT/iSAT BoolectorBeaver DPT ABsolver PicoSATMiniSmt SpearSTP veriT OpenCog SMT-RATSMCHR UCLID Clasp
OpenSMTSatEEn SWORD
raSAT SMTInterpol SMT SONOLAR
Tool development
CAS
SchoonschipMATHLAB Reduce AltranScratchpad/AxiomMacsymaSMP muMATHMaple MathcadCoCoA SAC Mathematica MathHandbookGAPKASH/KANT DeriveMagma MathomaticPARI/GP Singular FermatFORMMaxima ErableSymbolicC++Xcas/Giac YacasMacaulay2SAGE CadabraSMath MATLAB StudioSymPyWolfram MuPAD OpenAxiomMathics AlphaCalcinator TI-NspireSymbolism SyMATCASFxSolver
1960 1970 1980 1990 2000 2010 2020 WalkSATSATO GRASPChaff MiniSATBCSAT Berkmin zChaffHyperSat Siege RSat Sat4j ArgoSat GlucoseLingelingCryptoMiniSat UBCSATFast SAT Solver
“We have success stories of using zChaff to solve problems with more SAT than one million variables and 10 million clauses. (Of course, it can’t solve every such problem!).” [zChaff web page]
“ The efficiency of our programs allowed us to solve over one hundred open quasigroup problems in design theory.” [SATO web page]
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 4 / 41 SimplifySVC ICSUclid MathSAT BarcelogicYices CVCZ3Alt-ErgoHySAT/iSAT BoolectorBeaver DPT ABsolver PicoSATMiniSmt SpearSTP veriT OpenCog SMT-RATSMCHR UCLID Clasp
“We have success stories of using zChaff to solve problemsOpenSMTSatEEn SWORDwith more than one million variables and 10 million clauses.
(Of course, it can’t solve every such problem!).” [zChaff web page] raSAT SMTInterpol SMT SONOLAR “ The efficiency of our programs allowed us to solve over one hundred open quasigroup problems in design theory.” [SATO web page]
Tool development
CAS
SchoonschipMATHLAB Reduce AltranScratchpad/AxiomMacsymaSMP muMATHMaple MathcadCoCoA SAC Mathematica MathHandbookGAPKASH/KANT DeriveMagma MathomaticPARI/GP Singular FermatFORMMaxima ErableSymbolicC++Xcas/Giac YacasMacaulay2SAGE CadabraSMath MATLAB StudioSymPyWolfram MuPAD OpenAxiomMathics AlphaCalcinator TI-NspireSymbolism SyMATCASFxSolver
1960 1970 1980 1990 2000 2010 2020 WalkSATSATO GRASPChaff MiniSATBCSAT Berkmin zChaffHyperSat Siege RSat Sat4j ArgoSat GlucoseLingelingCryptoMiniSat UBCSATFast SAT Solver
SAT
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 4 / 41 “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!).” [zChaff web page]
“ The efficiency of our programs allowed us to solve over one hundred open quasigroup problems in design theory.” [SATO web page]
Tool development
CAS
SchoonschipMATHLAB Reduce AltranScratchpad/AxiomMacsymaSMP muMATHMaple MathcadCoCoA SAC Mathematica MathHandbookGAPKASH/KANT DeriveMagma MathomaticPARI/GP Singular FermatFORMMaxima ErableSymbolicC++Xcas/Giac YacasMacaulay2SAGE CadabraSMath MATLAB StudioSymPyWolfram MuPAD OpenAxiomMathics AlphaCalcinator TI-NspireSymbolism SyMATCASFxSolver
1960 1970 1980 1990 2000 2010 2020 WalkSATSimplifySATO GRASPSVCChaff MiniSATBCSAT BerkminICSUclid MathSATzChaffHyperSat SiegeBarcelogicYices RSat Sat4jCVCZ3Alt-ErgoHySAT/iSAT BoolectorBeaver DPTArgoSat ABsolver PicoSATMiniSmt GlucoseSpearSTP veriT Lingeling CryptoMiniSatOpenCog SMT-RATUBCSATFast SMCHR SAT SolverUCLID Clasp
OpenSMTSatEEn SWORD SAT
raSAT SMTInterpol SMT SONOLAR
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 4 / 41 Community support: Standardised input language, lots of benchmarks available. Competitions since 2002. 2016 SAT Competition: 6 tracks, 29 solvers in the main track. 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´ - Satisfiability Checking: Theory and Applications 5 / 41 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. Community support: Standardised input language, lots of benchmarks available. Competitions since 2002. 2016 SAT Competition: 6 tracks, 29 solvers in the main track. SAT Live! forum as community platform, dedicated conferences, journals, etc.
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 5 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) a db ... c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e ) c ... c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c ) c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF)
c1 :( ¬a ∨ d ∨ e )
c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e )
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) a db c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e ) c c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c ) c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration
c1 :( ¬a ∨ d ∨ e ) ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) ...
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) a db c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e ) c c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c ) c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration
c1 :( ¬a ∨ d ∨ e ) ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) ...
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
Decision
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) db c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e ) c c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c ) c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration
c1 :( ¬a ∨ d ∨ e ) a ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) ...
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) db c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e ) c c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c ) c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration
c1 :( ¬a ∨ d ∨ e ) a ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) ...
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
Decision
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e ) c c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c ) c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) ...
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e ) c c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c ) c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) ...
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e ) c c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c ) c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) ...
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
Boolean constraint propagation
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e )
c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c ) c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) c ... c8 c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e )
c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c ) c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) c ... c8 c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
Decision
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e )
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c ) c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) c ... c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e )
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c ) c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) c ... c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
Boolean constraint propagation
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e )
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c ) c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) c ... c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e )
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) c ... c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c )
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e )
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
c9 :( ¬a ∨ ¬d )
DecisionConflictBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) c ... c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c )
Conflict
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 6 / 41 Derivation rule form:
antecendent1 ... antecendentn Rule name consequent
0 0 (l1 ∨ ... ∨ ln ∨ x)(l1 ∨ ... ∨ lm ∨¬ x) 0 0 Ruleres (l1 ∨ ... ∨ ln ∨ l1 ∨ ... ∨ lm)
∃x. Cx ∧ C¬x ∧ C ↔ Resolvents (Cx, C¬x) ∧ C
Resolution
Assumption: conjunctive normal form (CNF)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 7 / 41 0 0 (l1 ∨ ... ∨ ln ∨ x)(l1 ∨ ... ∨ lm ∨¬ x) 0 0 Ruleres (l1 ∨ ... ∨ ln ∨ l1 ∨ ... ∨ lm)
∃x. Cx ∧ C¬x ∧ C ↔ Resolvents (Cx, C¬x) ∧ C
Resolution
Assumption: conjunctive normal form (CNF)
Derivation rule form:
antecendent1 ... antecendentn Rule name consequent
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 7 / 41 ∃x. Cx ∧ C¬x ∧ C ↔ Resolvents (Cx, C¬x) ∧ C
Resolution
Assumption: conjunctive normal form (CNF)
Derivation rule form:
antecendent1 ... antecendentn Rule name consequent
0 0 (l1 ∨ ... ∨ ln ∨ x)(l1 ∨ ... ∨ lm ∨¬ x) 0 0 Ruleres (l1 ∨ ... ∨ ln ∨ l1 ∨ ... ∨ lm)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 7 / 41 Resolution
Assumption: conjunctive normal form (CNF)
Derivation rule form:
antecendent1 ... antecendentn Rule name consequent
0 0 (l1 ∨ ... ∨ ln ∨ x)(l1 ∨ ... ∨ lm ∨¬ x) 0 0 Ruleres (l1 ∨ ... ∨ ln ∨ l1 ∨ ... ∨ lm)
∃x. Cx ∧ C¬x ∧ C ↔ Resolvents (Cx, C¬x) ∧ C
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 7 / 41 Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e )
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
c9 :( ¬a ∨ ¬d )
DecisionConflictBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) c ... c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c )
Conflict
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 8 / 41 c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e )
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
c9 :( ¬a ∨ ¬d )
DecisionConflictBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) c ... c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c )
Conflict
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 8 / 41 c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e )
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean constraint propagation c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) c ... c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c )
Conflict resolution and backtracking
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 8 / 41 c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e )
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
c9 :( ¬a ∨ ¬d )
ConflictDecisionBoolean resolution constraint and propagation backtracking
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) c ... c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c )
c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 8 / 41 c1 :( ¬a ∨ d ∨ e ) d c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e )
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
ConflictDecisionBoolean resolution constraint and propagation backtracking
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) a b ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) c ... c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c ) c9 :( ¬a ∨ ¬d )
c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 8 / 41 c1 :( ¬a ∨ d ∨ e ) db c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e ) c c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) a ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) ...
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
c9 :( ¬a ∨ ¬d )
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 8 / 41 c1 :( ¬a ∨ d ∨ e ) db c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e ) c c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) a ... c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) ...
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
c9 :( ¬a ∨ ¬d )
Boolean constraint propagation
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 8 / 41 c1 :( ¬a ∨ d ∨ e ) b c2 :( ¬a ∨ d ∨ ¬e )
c3 :( ¬a ∨ ¬d ∨ e ) c c8 c4 :( ¬a ∨ ¬d ∨ ¬e ) d c5 :( a ∨ b ) e c6 :( a ∨ ¬b ) c3 c7 :( b ∨ c ) c4 c8 :( ¬b ∨ ¬c )
ConflictDecisionBoolean resolution constraint and propagation backtracking c4 :(¬a ∨ ¬d ∨¬ e) c3 :(¬a ∨ ¬d ∨ e) c9 :(¬a ∨ ¬d)
DPLL SAT solving with conflict-directed clause learning
Assumption: formula in conjunctive normal form (CNF) Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 :( ¬a ∨ d ∨ e ) a d ... c2 :( ¬a ∨ d ∨ ¬e ) c9
c3 :( ¬a ∨ ¬d ∨ e ) ...
c4 :( ¬a ∨ ¬d ∨ ¬e )
c5 :( a ∨ b )
c6 :( a ∨ ¬b )
c7 :( b ∨ c )
c8 :( ¬b ∨ ¬c )
c9 :( ¬a ∨ ¬d )
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 8 / 41 SMT-LIB as standard input language since 2004. Competitions since 2005. SMT-COMP 2016 competition: 4 tracks, 41 logical categories. QF linear real arithmetic: 7 + 2 solvers, 1626 benchmarks. QF linear integer arithmetic: 6 + 2 solvers, 5839 benchmarks. QF non-linear real arithmetic: 5 + 1 solvers, 10245 benchmarks. QF non-linear integer arithmetic: 7 + 1 solvers, 8593 benchmarks.
Satisfiability modulo theories solving
Propositional logic is sometimes too weak for modelling. We need more expressive logics and decision procedures for them. Logics: quantifier-free (QF) fragments of first-order logic over various theories. Our focus: SAT-modulo-theories (SMT) solving.
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 9 / 41 Satisfiability modulo theories solving
Propositional logic is sometimes too weak for modelling. We need more expressive logics and decision procedures for them. Logics: quantifier-free (QF) fragments of first-order logic over various theories. Our focus: SAT-modulo-theories (SMT) solving.
SMT-LIB as standard input language since 2004. Competitions since 2005. SMT-COMP 2016 competition: 4 tracks, 41 logical categories. QF linear real arithmetic: 7 + 2 solvers, 1626 benchmarks. QF linear integer arithmetic: 6 + 2 solvers, 5839 benchmarks. QF non-linear real arithmetic: 5 + 1 solvers, 10245 benchmarks. QF non-linear integer arithmetic: 7 + 1 solvers, 8593 benchmarks.
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 9 / 41 Quantifier-free(Quantifier-free)Quantifier-free(Quantifier-free)Quantifier-freeQuantifier-free equalityCombined real/integerinteger/rational real/integer logic bit-vector with theoriesarray non-linear uninterpreted linear theory arithmeticdifference arithmetic arithmetic logic functions ( ai ==xjc−→∧ybx∼(2read2=a0+f3|(,bxdx2∼∈)+)(xywrite+≤→7 {+y5(<,ya=yf(&2≤>(aa8≥,b,0i=b),0,v)≥)=,,j >)f (}=c,vd)
SMT-LIB theories
Source: http://smtlib.cs.uiowa.edu/logics.shtml
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 10 / 41 (Quantifier-free)Quantifier-free(Quantifier-free)Quantifier-freeQuantifier-freeCombined real/integerinteger/rational real/integer bit-vector theoriesarray non-linear linear theory arithmeticdifference arithmetic arithmetic logic i =xj−→yx∼(2read2a0+f3|(,bxx2∼∈)+(xywrite+≤7 {+y5(<,ya=y(&2≤>a8≥,b0i=),0,v≥),,j >) }= v
SMT-LIB theories
Quantifier-free equality logic with uninterpreted functions ( a = c ∧ b = d ) → f (a, b) = f (c, d)
Source: http://smtlib.cs.uiowa.edu/logics.shtml
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 10 / 41 Quantifier-free(Quantifier-free)Quantifier-free(Quantifier-free)Quantifier-free equalityCombined real/integerinteger/rational real/integer logic with theoriesarray non-linear uninterpreted linear theory difference arithmetic arithmetic logic functions ( ai ==xjc−→∧ybx∼2read2=0+f3(,xdx2∼∈)+(xywrite+→7 {+y5<,y=yf(2≤>(aa8≥,,0i=b,0,v)≥)=,,j >)f (}=c,vd)
SMT-LIB theories
Quantifier-free bit-vector arithmetic ( a|b ) ≤ ( a&b )
Source: http://smtlib.cs.uiowa.edu/logics.shtml
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 10 / 41 Quantifier-free(Quantifier-free)Quantifier-free(Quantifier-free)Quantifier-free equalityCombined real/integerinteger/rational real/integer logic bit-vector with theories non-linear uninterpreted linear arithmeticdifference arithmetic arithmetic logic functions ( a =xc−∧ybx∼(22=a0+f3|(,bxdx2∼∈)+)xy+≤→7 {+y5(<,ya=yf&2≤>(a8≥b,,0=b)0,)≥=, >f (}c, d)
SMT-LIB theories
Quantifier-free array theory i = j → read(write(a, i, v), j) = v
Source: http://smtlib.cs.uiowa.edu/logics.shtml
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 10 / 41 Quantifier-free(Quantifier-free)(Quantifier-free)Quantifier-freeQuantifier-free equalityCombined real/integer real/integer logic bit-vector with theoriesarray non-linear uninterpreted linear theory arithmetic arithmetic arithmetic functions ( ai == jc →∧ bx(2read2=a+f3|(bxdx2)+)(xywrite+≤→7+y5(ya=yf(&2>(aa8≥,b,0ib),0v))=, j)f (=c,vd)
SMT-LIB theories
Quantifier-free integer/rational difference logic x − y ∼ 0, ∼∈ {<, ≤, =, ≥, >}
Source: http://smtlib.cs.uiowa.edu/logics.shtml
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 10 / 41 Quantifier-free(Quantifier-free)Quantifier-freeQuantifier-freeQuantifier-free equalityCombined real/integerinteger/rational logic bit-vector with theoriesarray non-linear uninterpreted theory arithmeticdifference arithmetic logic functions ( ai ==xjc−→∧ybx∼(2read2=a0+f|(,bdx2∼∈))(xywrite+≤→ {+5(<,yayf(&2≤>(aa≥,b,0i=b),0,v)≥)=,,j >)f (}=c,vd)
SMT-LIB theories
(Quantifier-free) real/integer linear arithmetic 3x + 7y = 8
Source: http://smtlib.cs.uiowa.edu/logics.shtml
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 10 / 41 Quantifier-freeQuantifier-free(Quantifier-free)Quantifier-freeQuantifier-free equalityCombined integer/rational real/integer logic bit-vector with theoriesarray uninterpreted linear theory arithmeticdifference arithmetic logic functions ( ai ==xjc−→∧yb∼(read2=a0f3|(,bxdx∼∈)+)(write+≤→7 {y5(<,ya=f(&≤>(aa8,b,0i=b),,v)≥)=,,j >)f (}=c,vd)
SMT-LIB theories
(Quantifier-free) real/integer non-linear arithmetic x2 + 2xy + y2 ≥ 0
Source: http://smtlib.cs.uiowa.edu/logics.shtml
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 10 / 41 Quantifier-free(Quantifier-free)Quantifier-free(Quantifier-free)Quantifier-freeQuantifier-free equality real/integerinteger/rational real/integer logic bit-vector with array non-linear uninterpreted linear theory arithmeticdifference arithmetic arithmetic logic functions ( ai ==xjc−→∧ybx∼(2read=a0+3|,bxd2∼∈)+)(xywrite≤→7 {+y(<,a=yf(&2≤(aa8≥,b,i=b),0,v)≥)=,,j >)f (}=c,vd)
SMT-LIB theories
Combined theories 2f (x) + 5y > 0
Source: http://smtlib.cs.uiowa.edu/logics.shtml
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 10 / 41 Eager vs. lazy SMT solving
We focus on lazy SMT solving. Alternative eager approach: transform problems into propositional logic and use SAT solving for satisfiability checking. Condition: Logic is not more expressive than propositional logic.
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 11 / 41 (Full/less) lazy SMT solving
ϕ quantifier-free FO formula Boolean abstraction Tseitin’s transformation ϕ0 propositional logic formula in CNF
SAT solver SAT or UNSAT
SAT theory constraints or + lemmas UNSAT
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 12 / 41 Less lazy SMT solving
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
SAT solver
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
SAT solver ¬a
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
SAT solver ¬a, b
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
SAT solver ¬a, b
x ≥ 0, x > 2
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
SAT solver ¬a, b
x ≥ 0, x > 2 SAT
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
SAT solver ¬a, b, ¬c
x ≥ 0, x > 2
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
SAT solver ¬a, b, ¬c, d
x ≥ 0, x > 2
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
SAT solver ¬a, b, ¬c, d
x ≥ 0, x > 2 , x2 , 1, x2 < 0
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
SAT solver ¬a, b, ¬c, d
x ≥ 0, x > 2 , x2 , 1, x2 < 0 UNSAT: ¬(x2 < 0)
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)
SAT solver ¬a, b, ¬c, d
x ≥ 0, x > 2 , x2 , 1, x2 < 0 UNSAT: ¬(x2 < 0)
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)
SAT solver
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)
SAT solver ¬d
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)
SAT solver ¬d, c
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)
SAT solver ¬d, c
x2 ≥ 0, x2 = 1
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)
SAT solver ¬d, c
x2 ≥ 0, x2 = 1 SAT
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)
SAT solver ¬d, c, ¬a
x2 ≥ 0, x2 = 1
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)
SAT solver ¬d, c, ¬a, b
x2 ≥ 0, x2 = 1
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)
SAT solver ¬d, c, ¬a, b
x2 ≥ 0, x2 = 1 , x ≥ 0, x > 2
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)
SAT solver ¬d, c, ¬a, b
x2 ≥ 0, x2 = 1 , x ≥ 0, x > 2 UNSAT: ¬(x2 = 1 ∧ x > 2)
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨¬ b)
SAT solver ¬d, c, ¬a, b
x2 ≥ 0, x2 = 1 , x ≥ 0, x > 2 UNSAT: ¬(x2 = 1 ∧ x > 2)
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨¬ b)
SAT solver ¬d, c
x2 ≥ 0, x2 = 1
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨¬ b)
SAT solver ¬d, c, ¬b
x2 ≥ 0, x2 = 1
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨¬ b)
SAT solver ¬d, c, ¬b, a
x2 ≥ 0, x2 = 1
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨¬ b)
SAT solver ¬d, c, ¬b, a
x2 ≥ 0, x2 = 1 , x ≤ 2, x < 0
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨¬ b)
SAT solver ¬d, c, ¬b, a
x2 ≥ 0, x2 = 1 , x ≤ 2, x < 0 SAT
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨¬ b)
SAT solver SAT
Theory solver(s)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨¬ b)
SAT solver SAT
Theory solver(s)
N.B. There are also other SMT solving techniques, which more closely integrate some theory-solving parts into the SAT-solving mechanism.
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 13 / 41 Some theory solver candidates for arithmetic theories
Linear real arithmetic: Linear integer arithmetic: Simplex Cutting planes, Gomory cuts Ellipsoid method Branch-and-bound (incomplete) Fourier-Motzkin variable elimination Bit-blasting (eager) (mostly preprocessing) Interval constraint propagation Interval constraint propagation (incomplete) (incomplete)
Non-linear real arithmetic: Non-linear integer arithmetic: Cylindrical algebraic decomposition Generalised branch-and-bound Grobner¨ bases (incomplete) (mostly preprocessing/simplification) Bit-blasting (eager, incomplete) Virtual substitution (focus on low degrees) Interval constraint propagation (incomplete)
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 14 / 41 So why don’t we just plug in an algebraic decision procedure as theory solver into an SMT solver?
Some corresponding implementations in CAS
Grobner¨ bases
CoCoA, F4, Maple, Mathematica, Maxima, Singular, Reduce,...
Cylindrical algebraic decomposition (CAD)
Mathematica, QEPCAD, Reduce,...
Virtual substitution (VS)
Reduce,...
Strength: Efficient for conjunctions of real constraints.
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 15 / 41 Some corresponding implementations in CAS
Grobner¨ bases
CoCoA, F4, Maple, Mathematica, Maxima, Singular, Reduce,...
Cylindrical algebraic decomposition (CAD)
Mathematica, QEPCAD, Reduce,...
Virtual substitution (VS)
Reduce,...
Strength: Efficient for conjunctions of real constraints. So why don’t we just plug in an algebraic decision procedure as theory solver into an SMT solver?
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 15 / 41 Originally, the mentioned methods are not SMT-compliant, they are seldomly available as libraries, and are usually not thread-safe.
Usually, SMT-adaptations are tricky.
Why not use CAS out of the box?
Theory solvers should be SMT-compliant, i.e., they should work incrementally, generate lemmas explaining inconsistencies, and be able to backtrack.
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 16 / 41 Usually, SMT-adaptations are tricky.
Why not use CAS out of the box?
Theory solvers should be SMT-compliant, i.e., they should work incrementally, generate lemmas explaining inconsistencies, and be able to backtrack.
Originally, the mentioned methods are not SMT-compliant, they are seldomly available as libraries, and are usually not thread-safe.
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 16 / 41 Why not use CAS out of the box?
Theory solvers should be SMT-compliant, i.e., they should work incrementally, generate lemmas explaining inconsistencies, and be able to backtrack.
Originally, the mentioned methods are not SMT-compliant, they are seldomly available as libraries, and are usually not thread-safe.
Usually, SMT-adaptations are tricky.
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 16 / 41 Satisfiablility checking and symbolic computation Bridging two communities to solve real problems
http://www.sc-square.org/CSA/welcome.html
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 17 / 41 Satisfiablility checking and symbolic computation Bridging two communities to solve real problems
http://www.sc-square.org/CSA/welcome.html
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 17 / 41 Our SMT-RAT library
We have developed the SMT-RAT library of theory modules. [SAT’12, SAT’15]
https://github.com/smtrat/smtrat/wiki
Florian Corzilius Gereon Kremer Ulrich Loup
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 18 / 41 Our SMT-RAT library
SMT Solver Strategic composition of SMT-RAT modules
SMT-RAT (SMT real-algebraic toolbox) preprocessing, SAT and theory solver modules
CArL real-arithmetic computations
gmp, Eigen3, boost
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 19 / 41 Strategic composition of solver modules in SMT-RAT
SMT solver Manager Strategy ... SAT Condition Condition Condition solver Module Module Module Module ...
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 20 / 41 Solver modules in SMT-RAT
Libraries for basic arithmetic computations [NFM’11, CAI’11] SAT solver CNF converter Preprocessing/simplifying modules Interval constraint propagation Simplex Virtual substitution [FCT’11, PhD Corzilius] Cylindrical algebraic decomposition [CADE-24, PhD Loup, PhD Kremer] Grobner¨ bases [CAI’13] Generalised branch-and-bound [CASC’16]
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 21 / 41 Solution set
Solution set ≡ finite union of P-sign-invariant regions
Solution sets and P-sign-invariant regions
Z[x1,..., xn] is the set of all polynomials over variables x1,..., xn. Example y p = (x − 2)2 + (y − 2)2 − 1 1 ∈ Z[x, y] p2 = x − y p1 > 0 p1 = 0 p1 < 0 C = { p1 < 0, p2 = 0 } 2 P = { p1, p2 }
p2 < 0 p2 = 0 p2 > 0 x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 22 / 41 Solution set ≡ finite union of P-sign-invariant regions
Solution sets and P-sign-invariant regions
Z[x1,..., xn] is the set of all polynomials over variables x1,..., xn. Example y p = (x − 2)2 + (y − 2)2 − 1 1 ∈ Z[x, y] p2 = x − y p1 > 0 p1 = 0 p1 < 0 C = { p1 < 0, p2 = 0 } 2 P = { p1, p2 }
p2 < 0 Solution set p2 = 0 p2 > 0 x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 22 / 41 Solution sets and P-sign-invariant regions
Z[x1,..., xn] is the set of all polynomials over variables x1,..., xn. Example y p = (x − 2)2 + (y − 2)2 − 1 1 ∈ Z[x, y] p2 = x − y p1 > 0 p1 = 0 p1 < 0 C = { p1 < 0, p2 = 0 } 2 P = { p1, p2 }
p2 < 0 Solution set p2 = 0 p2 > 0 x 2 Solution set ≡ finite union of P-sign-invariant regions
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 22 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 C = { p1 < 0, p2 = 0 }
Delineability on an example
y
2
x 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 Delineability on an example
y
2
x 2
C = { p1 < 0, p2 = 0 }
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 Delineability on an example
y
2
x 2
C = { p1 < 0, p2 = 0 }
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 23 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Cylindrical algebraic decomposition (CAD)
A CAD for a set P of polynomials from Z[x1,..., xn] splits Rn into a finite number of P-sign-invariant regions.
Projection phase Construction phase
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 24 / 41 Cylindrical algebraic decomposition (CAD)
A CAD for a set P of polynomials from Z[x1,..., xn] splits Rn into a finite number of P-sign-invariant regions.
Projection phase Construction phase
n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 24 / 41 y
2
x projection 2
zeros of P2[·/x]
2 2 zeros P1 = {2x − 8x + 7, x − 4x + 3,... } x of P1 2
Cylindrical algebraic decomposition example
2 2 P2 = {(x − 2) + (y − 2) − 1, x − y}
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 25 / 41 y
2
x 2
zeros of P2[·/x]
zeros x of P1 2
Cylindrical algebraic decomposition example
2 2 P2 = {(x − 2) + (y − 2) − 1, x − y}
projection
2 2 P1 = {2x − 8x + 7, x − 4x + 3,... }
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 25 / 41 y
2
x 2
zeros of P2[·/x]
Cylindrical algebraic decomposition example
2 2 P2 = {(x − 2) + (y − 2) − 1, x − y}
projection
2 2 zeros P1 = {2x − 8x + 7, x − 4x + 3,... } x of P1 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 25 / 41 y
2
x 2
zeros of P2[·/x]
Cylindrical algebraic decomposition example
2 2 P2 = {(x − 2) + (y − 2) − 1, x − y}
projection
2 2 zeros P1 = {2x − 8x + 7, x − 4x + 3,... } x of P1 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 25 / 41 Cylindrical algebraic decomposition example
y
2 2 P2 = {(x − 2) + (y − 2) − 1, x − y} 2
x projection 2
zeros of P2[·/x]
2 2 zeros P1 = {2x − 8x + 7, x − 4x + 3,... } x of P1 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 25 / 41 Cylindrical algebraic decomposition example
y
2 2 P2 = {(x − 2) + (y − 2) − 1, x − y} 2
x projection 2
zeros of P2[·/x]
2 2 zeros P1 = {2x − 8x + 7, x − 4x + 3,... } x of P1 2
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 25 / 41 ......
Incrementality and backtracking
Projection phase Construction phase
n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
...
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
...
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
...
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
...
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
......
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
......
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
......
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
......
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
......
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
......
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
......
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
......
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
......
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 n Polynomials P = Pn ⊆ Z[x1,..., xn] Samples in R
n−1 Polynomials Pn−1 ⊆ Z[x1,..., xn−1] Samples in R
......
2 Polynomials P2 ⊆ Z[x1, x2] Samples in R
1 Polynomials P1 ⊆ Z[x1] Samples in R
Incrementality and backtracking
Projection phase Construction phase
......
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 26 / 41 S0 S1 S2 S3 S4 S5 S6 S7
Explanation for unsatisfiability: covering set S
Explanations
Projection phase Construction phase
......
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 27 / 41 S0 S1 S2 S3 S4 S5 S6 S7
Explanation for unsatisfiability: covering set S
Explanations
Projection phase Construction phase
......
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 27 / 41 Explanation for unsatisfiability: covering set S
Explanations
Projection phase Construction phase
S0 S1 S2 S3 S4 S5 S6 S7
......
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 27 / 41 Explanations
Projection phase Construction phase
S0 S1 S2 S3 S4 S5 S6 S7
Explanation for unsatisfiability: covering set S
......
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 27 / 41 variable ordering sample point selection polynomial selection polynomial selection ......
polynomial selection
Heuristics
Projection phase Construction phase
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 variable ordering sample point selection polynomial selection polynomial selection ......
polynomial selection
Heuristics
Projection phase Construction phase
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 sample point selection polynomial selection polynomial selection ......
polynomial selection
Heuristics
Projection phase Construction phase
variable ordering
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 sample point selection polynomial selection ......
polynomial selection
Heuristics
Projection phase Construction phase
variable ordering polynomial selection
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 sample point selection polynomial selection ......
polynomial selection
Heuristics
Projection phase Construction phase
variable ordering polynomial selection
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 sample point selection polynomial selection ...
polynomial selection
Heuristics
Projection phase Construction phase
variable ordering polynomial selection ...
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 sample point selection polynomial selection ...
polynomial selection
Heuristics
Projection phase Construction phase
variable ordering polynomial selection ...
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 sample point selection polynomial selection ...
polynomial selection
Heuristics
Projection phase Construction phase
variable ordering polynomial selection ...
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 sample point selection polynomial selection ...
Heuristics
Projection phase Construction phase
variable ordering polynomial selection ...
polynomial selection
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 sample point selection polynomial selection ...
Heuristics
Projection phase Construction phase
variable ordering polynomial selection ...
polynomial selection
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 sample point selection polynomial selection ...
Heuristics
Projection phase Construction phase
variable ordering polynomial selection ...
polynomial selection
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 polynomial selection ...
Heuristics
Projection phase Construction phase
variable ordering sample point selection polynomial selection ...
polynomial selection
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 polynomial selection ...
Heuristics
Projection phase Construction phase
variable ordering sample point selection polynomial selection ...
polynomial selection
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 ...
Heuristics
Projection phase Construction phase
variable ordering sample point selection polynomial selection polynomial selection ...
polynomial selection
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 ...
Heuristics
Projection phase Construction phase
variable ordering sample point selection polynomial selection polynomial selection ...
polynomial selection
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 Heuristics
Projection phase Construction phase
variable ordering sample point selection polynomial selection polynomial selection ......
polynomial selection
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 Heuristics
Projection phase Construction phase
variable ordering sample point selection polynomial selection polynomial selection ......
polynomial selection
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 28 / 41 Some SMT-COMP 2016 results
Solver QF NRA sequential (10245) QF NIA sequential (8593) Correctly Total Time Correctly Total Time solved time per instance solved time per instance AProVE - - - 8273 8527.66 1.03 CVC4 2694 150.24 0.05 8231 161418.04 19.61 ProB - - - 7557 13586.05 1.79 raSAT 0.3 8431 13576.52 1.61 7544 70228.9 9.31 raSAT 0.4 9024 11176.39 1.23 8017 159247.55 19.86 SMT-RAT 9026 51053.15 5.65 8443 6234.5 0.73 Yices 10019 61989.88 6.18 8451 8523.4 1.00 [Z3] 10056 24785.38 2.46 8566 27718.2 3.23
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 29 / 41 SMT applications
model checking termination analysis runtime verification test case generation controller synthesis predicate abstraction equivalence checking scheduling planning deployment optimisation on the cloud product design automation ...
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 30 / 41 Encoding: SMT-LIB standard elaborate encoding is extremely important!
SMT-LIB syntax → free solver choice
SMT embedding structure
Environment
Software Solution engine
Logical Problem problem SMT specification
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 31 / 41 SMT-LIB syntax → free solver choice
SMT embedding structure
Environment
Software Solution engine
Logical Problem problem SMT specification
Encoding: SMT-LIB standard elaborate encoding is extremely important!
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 31 / 41 SMT embedding structure
Environment
Software Solution engine
Logical Problem problem SMT specification
Encoding: SMT-LIB standard elaborate encoding is extremely important!
SMT-LIB syntax → free solver choice
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 31 / 41 Logical encoding of finite unsafe paths
Encoding idea: Init(s0) ∧ Trans(s0, s1) ∧ ... ∧ Trans(sk−1, sk) ∧ Bad(s0,..., sk)
Application examples: Error localisation and explanation Equivalence checking Test case generation Worst-case execution time
Bounded model checking for C/C++
Source: D. Kroening. CBMC home page. http://www.cprover.org/cbmc/
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 32 / 41 Encoding idea: Init(s0) ∧ Trans(s0, s1) ∧ ... ∧ Trans(sk−1, sk) ∧ Bad(s0,..., sk)
Application examples: Error localisation and explanation Equivalence checking Test case generation Worst-case execution time
Bounded model checking for C/C++
Logical encoding of finite unsafe paths
Source: D. Kroening. CBMC home page. http://www.cprover.org/cbmc/
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 32 / 41 Application examples: Error localisation and explanation Equivalence checking Test case generation Worst-case execution time
Bounded model checking for C/C++
Logical encoding of finite unsafe paths
Encoding idea: Init(s0) ∧ Trans(s0, s1) ∧ ... ∧ Trans(sk−1, sk) ∧ Bad(s0,..., sk)
Source: D. Kroening. CBMC home page. http://www.cprover.org/cbmc/
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 32 / 41 Bounded model checking for C/C++
Logical encoding of finite unsafe paths
Encoding idea: Init(s0) ∧ Trans(s0, s1) ∧ ... ∧ Trans(sk−1, sk) ∧ Bad(s0,..., sk)
Application examples: Error localisation and explanation Equivalence checking Test case generation Worst-case execution time
Source: D. Kroening. CBMC home page. http://www.cprover.org/cbmc/
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 32 / 41 Encode initial and forbidden state graphs and the graph transformation rules in first-order logic.
↓
Apply bounded model checking
BMC for graph transformation systems
Source: T. Isenberg, D. Steenken, and H. Wehrheim. Bounded Model Checking of Graph Transformation Systems via SMT Solving. In Proc. FMOODS/FORTE’13. Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 33 / 41 BMC for graph transformation systems
Encode initial and forbidden state graphs and the graph transformation rules in first-order logic.
↓
Apply bounded model checking
Source: T. Isenberg, D. Steenken, and H. Wehrheim. Bounded Model Checking of Graph Transformation Systems via SMT Solving. In Proc. FMOODS/FORTE’13. Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 33 / 41 Term rewrite system
Term rewrite system
Dependency pairs
Chains
Logical encoding for well-founded orders.
Termination analysis for programs
Source: T. Stroder,¨ C. Aschermann, F. Frohn, J. Hensel, J. Giesl. AProVE: Termination and memory safety of C programs (competition contribution). In Proc. TACAS’15. Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 34 / 41 Term rewrite system
Dependency pairs
Chains
Logical encoding for well-founded orders.
Termination analysis for programs
Term rewrite system
Source: T. Stroder,¨ C. Aschermann, F. Frohn, J. Hensel, J. Giesl. AProVE: Termination and memory safety of C programs (competition contribution). In Proc. TACAS’15. Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 34 / 41 Termination analysis for programs
Term rewrite system
Term rewrite system
Dependency pairs
Chains
Logical encoding for well-founded orders.
Source: T. Stroder,¨ C. Aschermann, F. Frohn, J. Hensel, J. Giesl. AProVE: Termination and memory safety of C programs (competition contribution). In Proc. TACAS’15. Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 34 / 41 jUnitRV: Runtime verification of multi-threaded, object-oriented systems
Properties: linear temporal logics enriched with first-order theories Method: SMT solving + classical monitoring
Source: N. Decker, M. Leucker, D. Thoma. Monitoring modulo theories. International Journal on Software Tools for Technology Transfer, 18(2):205-225, April 2016.
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 35 / 41 Parameter synthesis for probabilistic systems
Source: C. Dehnert, S. Junges, N. Jansen, F. Corzilius, M. Volk, H. Bruintjes, J.-P. Katoen, E. Abrah´ am.´ PROPhESY: A probabilistic parameter synthesis tool. In Proc. of CAV’15. Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 36 / 41 Hybrid systems reachability analysis
Source: D. Bryce, J. Sun, P. Zuliani, Q. Wang, S. Gao, F. Shmarov, S. Kong, W. Chen, Z. Tavares. dReach home page. http://dreal.github.io/dReach/ Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 37 / 41 Planning
Source: E. Scala, M. Ramirez, P. Haslum, S. Thiebaux. Numeric planning with disjunctive global constraints via SMT. In Proc. of ICASP’16. Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 38 / 41 Deployment optimisation on the cloud
Depoloyable Components Location (e.g, VMs, PCs, ...)
User Constraints HTTP_Load_Balancer
MySQL WordPress
WordPress_1 MySQL_1
HTTP_Load_Balancer_1 WordPress_2 MySQL_2
WordPress_3
Source: E. Abrah´ am,´ F. Corzilius, E. Broch Johnsen, G. Kremer, J. Mauro. Zephyrus2: On the fly deployment optimization using SMT and CP technologies. Submitted to SETTA’16. Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 39 / 41 Scheduling
Source: C. Ansotegui,´ M. Bofill, M. Palah´ı, J. Suy, M. Villaret. Satisfiability modulo theories: An efficient approach for the resource-constrained project scheduling problem. Proc. of SARA’11. Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 40 / 41 Upcoming research directions in SMT solving
Improve usability: User-friendly models Dedicated SMT solvers Increase scalability: Performance optimisation (better lemmas, heuristics, cache behaviour, . . . ) Novel combination of decision procedures Parallelisation Extend functionality: Unsatisfiable cores, proofs, interpolants Quantified arithmetic formulas Linear and non-linear (global) optimisation
Erika Abrah´ am´ - Satisfiability Checking: Theory and Applications 41 / 41