<<

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 development Computer 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 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 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 FermatFORMMaxima ErableSymbolicC++/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 ) ... 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 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, , Mathematica, , 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

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 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 selection 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