Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf ·...

193
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

Transcript of Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf ·...

Page 1: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Satisfiability Checking: Theory and Applications

Erika Abraham

RWTH Aachen University, Germany

STAF/SEFM 2016July 06, 2016

Erika Abraham - Satisfiability Checking: Theory and Applications 1 / 41

Page 2: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

What is this talk about?

Satisfiability problem

The satisfiability problem is the problem of deciding whether a logicalformula is satisfiable.

We focus on the automated solution of the satisfiability problem forquantifier-free first-order logic over different theoriesusing SAT modulo theories (SMT) solving, and on applications of suchtechnologies.

Erika Abraham - Satisfiability Checking: Theory and Applications 2 / 41

Page 3: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Decision procedures for first-order logic over arithmetic theoriesin mathematical logic

1940

1960

1970

1980

2000

2010

Computer architecture developmentComputer algebra

systems

First computeralgebra systemsGrobner bases

CAD

Partial CAD

Virtualsubstitution

SAT solvers(propositional logic)

Enumeration

DP (resolution)[Davis, Putnam’60]

DPLL (propagation)[Davis,Putnam,Logemann,Loveland’62]

NP-completeness [Cook’71]

Conflict-directedbackjumping

CDCLWatched literals

[GRASP’97][zChaff’04]

Clause learning/forgettingVariable ordering heuristicsRestarts

SMT solvers(SAT modulo theories)

Decision proceduresfor combined theories

[Shostak’79] [Nelson, Oppen’79]

DPLL(T)EqualitiesUninterpreted functionsBit-vector arithmeticArray theoryArithmetic...

Erika Abraham - Satisfiability Checking: Theory and Applications 3 / 41

Page 4: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Decision procedures for first-order logic over arithmetic theoriesin mathematical logic

1940

1960

1970

1980

2000

2010

Computer architecture development

Computer algebrasystems

First computeralgebra systemsGrobner bases

CAD

Partial CAD

Virtualsubstitution

SAT solvers(propositional logic)

Enumeration

DP (resolution)[Davis, Putnam’60]

DPLL (propagation)[Davis,Putnam,Logemann,Loveland’62]

NP-completeness [Cook’71]

Conflict-directedbackjumping

CDCLWatched literals

[GRASP’97][zChaff’04]

Clause learning/forgettingVariable ordering heuristicsRestarts

SMT solvers(SAT modulo theories)

Decision proceduresfor combined theories

[Shostak’79] [Nelson, Oppen’79]

DPLL(T)EqualitiesUninterpreted functionsBit-vector arithmeticArray theoryArithmetic...

Erika Abraham - Satisfiability Checking: Theory and Applications 3 / 41

Page 5: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Decision procedures for first-order logic over arithmetic theoriesin mathematical logic

1940

1960

1970

1980

2000

2010

Computer architecture developmentComputer algebra

systems

First computeralgebra systemsGrobner bases

CAD

Partial CAD

Virtualsubstitution

SAT solvers(propositional logic)

Enumeration

DP (resolution)[Davis, Putnam’60]

DPLL (propagation)[Davis,Putnam,Logemann,Loveland’62]

NP-completeness [Cook’71]

Conflict-directedbackjumping

CDCLWatched literals

[GRASP’97][zChaff’04]

Clause learning/forgettingVariable ordering heuristicsRestarts

SMT solvers(SAT modulo theories)

Decision proceduresfor combined theories

[Shostak’79] [Nelson, Oppen’79]

DPLL(T)EqualitiesUninterpreted functionsBit-vector arithmeticArray theoryArithmetic...

Erika Abraham - Satisfiability Checking: Theory and Applications 3 / 41

Page 6: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Decision procedures for first-order logic over arithmetic theoriesin mathematical logic

1940

1960

1970

1980

2000

2010

Computer architecture developmentComputer algebra

systems

First computeralgebra systemsGrobner bases

CAD

Partial CAD

Virtualsubstitution

SAT solvers(propositional logic)

Enumeration

DP (resolution)[Davis, Putnam’60]

DPLL (propagation)[Davis,Putnam,Logemann,Loveland’62]

NP-completeness [Cook’71]

Conflict-directedbackjumping

CDCLWatched literals

[GRASP’97][zChaff’04]

Clause learning/forgettingVariable ordering heuristicsRestarts

SMT solvers(SAT modulo theories)

Decision proceduresfor combined theories

[Shostak’79] [Nelson, Oppen’79]

DPLL(T)EqualitiesUninterpreted functionsBit-vector arithmeticArray theoryArithmetic...

Erika Abraham - Satisfiability Checking: Theory and Applications 3 / 41

Page 7: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Decision procedures for first-order logic over arithmetic theoriesin mathematical logic

1940

1960

1970

1980

2000

2010

Computer architecture developmentComputer algebra

systems

First computeralgebra systemsGrobner bases

CAD

Partial CAD

Virtualsubstitution

SAT solvers(propositional logic)

Enumeration

DP (resolution)[Davis, Putnam’60]

DPLL (propagation)[Davis,Putnam,Logemann,Loveland’62]

NP-completeness [Cook’71]

Conflict-directedbackjumping

CDCLWatched literals

[GRASP’97][zChaff’04]

Clause learning/forgettingVariable ordering heuristicsRestarts

SMT solvers(SAT modulo theories)

Decision proceduresfor combined theories

[Shostak’79] [Nelson, Oppen’79]

DPLL(T)EqualitiesUninterpreted functionsBit-vector arithmeticArray theoryArithmetic...

Erika Abraham - Satisfiability Checking: Theory and Applications 3 / 41

Page 8: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Tool development

1960 1970 1980 1990 2000 2010 2020

CAS

SAT

SMT

Schoonschip

MATHLAB

ReduceAltran

Scratchpad/Axiom

Macsyma

SMPmuMATH

Maple

MathcadSACGAP

CoCoAMathHandbookMathomatic

MathematicaDeriveFORM

KASH/KANTPARI/GP

MagmaFermatErableMacaulay2

SingularSymbolicC++

Maxima

Xcas/Giac

Yacas

SAGESMathStudio

CadabraSymPyOpenAxiom

MATLABMuPAD

WolframAlphaTI-NspireCAS

MathicsSymbolismFxSolver

CalcinatorSyMAT

WalkSATSATO

GRASPChaff

BCSAT

MiniSATBerkmin

zChaffSiege

HyperSatRSat

Sat4jArgoSatGlucose

CryptoMiniSat

LingelingUBCSAT

FastSATSolver

SimplifySVC

ICSUclid

MathSATBarcelogic

YicesCVCHySAT/iSAT

DPT

Z3Alt-Ergo

BeaverABsolver

BoolectorPicoSAT

Spear

MiniSmtSTPveriT

OpenCog

OpenSMTSatEEn

SWORDSONOLAR

SMTInterpol

SMT-RATSMCHR

UCLIDClasp

raSAT

“We have success stories of using zChaff to solve problems with morethan 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 hundredopen quasigroup problems in design theory.” [SATO web page]

Erika Abraham - Satisfiability Checking: Theory and Applications 4 / 41

Page 9: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Tool development

1960 1970 1980 1990 2000 2010 2020

CAS

SAT

SMT

Schoonschip

MATHLAB

ReduceAltran

Scratchpad/Axiom

Macsyma

SMPmuMATH

Maple

MathcadSACGAP

CoCoAMathHandbookMathomatic

MathematicaDeriveFORM

KASH/KANTPARI/GP

MagmaFermatErableMacaulay2

SingularSymbolicC++

Maxima

Xcas/Giac

Yacas

SAGESMathStudio

CadabraSymPyOpenAxiom

MATLABMuPAD

WolframAlphaTI-NspireCAS

MathicsSymbolismFxSolver

CalcinatorSyMAT

WalkSATSATO

GRASPChaff

BCSAT

MiniSATBerkmin

zChaffSiege

HyperSatRSat

Sat4jArgoSatGlucose

CryptoMiniSat

LingelingUBCSAT

FastSATSolver

SimplifySVC

ICSUclid

MathSATBarcelogic

YicesCVCHySAT/iSAT

DPT

Z3Alt-Ergo

BeaverABsolver

BoolectorPicoSAT

Spear

MiniSmtSTPveriT

OpenCog

OpenSMTSatEEn

SWORDSONOLAR

SMTInterpol

SMT-RATSMCHR

UCLIDClasp

raSAT

“We have success stories of using zChaff to solve problems with morethan 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 hundredopen quasigroup problems in design theory.” [SATO web page]

Erika Abraham - Satisfiability Checking: Theory and Applications 4 / 41

Page 10: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Tool development

1960 1970 1980 1990 2000 2010 2020

CAS

SAT

SMT

Schoonschip

MATHLAB

ReduceAltran

Scratchpad/Axiom

Macsyma

SMPmuMATH

Maple

MathcadSACGAP

CoCoAMathHandbookMathomatic

MathematicaDeriveFORM

KASH/KANTPARI/GP

MagmaFermatErableMacaulay2

SingularSymbolicC++

Maxima

Xcas/Giac

Yacas

SAGESMathStudio

CadabraSymPyOpenAxiom

MATLABMuPAD

WolframAlphaTI-NspireCAS

MathicsSymbolismFxSolver

CalcinatorSyMAT

WalkSATSATO

GRASPChaff

BCSAT

MiniSATBerkmin

zChaffSiege

HyperSatRSat

Sat4jArgoSatGlucose

CryptoMiniSat

LingelingUBCSAT

FastSATSolver

SimplifySVC

ICSUclid

MathSATBarcelogic

YicesCVCHySAT/iSAT

DPT

Z3Alt-Ergo

BeaverABsolver

BoolectorPicoSAT

Spear

MiniSmtSTPveriT

OpenCog

OpenSMTSatEEn

SWORDSONOLAR

SMTInterpol

SMT-RATSMCHR

UCLIDClasp

raSAT

“We have success stories of using zChaff to solve problems with morethan 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 hundredopen quasigroup problems in design theory.” [SATO web page]

Erika Abraham - Satisfiability Checking: Theory and Applications 4 / 41

Page 11: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Tool development

1960 1970 1980 1990 2000 2010 2020

CAS

SAT

SMT

Schoonschip

MATHLAB

ReduceAltran

Scratchpad/Axiom

Macsyma

SMPmuMATH

Maple

MathcadSACGAP

CoCoAMathHandbookMathomatic

MathematicaDeriveFORM

KASH/KANTPARI/GP

MagmaFermatErableMacaulay2

SingularSymbolicC++

Maxima

Xcas/Giac

Yacas

SAGESMathStudio

CadabraSymPyOpenAxiom

MATLABMuPAD

WolframAlphaTI-NspireCAS

MathicsSymbolismFxSolver

CalcinatorSyMAT

WalkSATSATO

GRASPChaff

BCSAT

MiniSATBerkmin

zChaffSiege

HyperSatRSat

Sat4jArgoSatGlucose

CryptoMiniSat

LingelingUBCSAT

FastSATSolver

SimplifySVC

ICSUclid

MathSATBarcelogic

YicesCVCHySAT/iSAT

DPT

Z3Alt-Ergo

BeaverABsolver

BoolectorPicoSAT

Spear

MiniSmtSTPveriT

OpenCog

OpenSMTSatEEn

SWORDSONOLAR

SMTInterpol

SMT-RATSMCHR

UCLIDClasp

raSAT

“We have success stories of using zChaff to solve problems with morethan 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 hundredopen quasigroup problems in design theory.” [SATO web page]

Erika Abraham - Satisfiability Checking: Theory and Applications 4 / 41

Page 12: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Tool development

1960 1970 1980 1990 2000 2010 2020

CAS

SAT

SMT

Schoonschip

MATHLAB

ReduceAltran

Scratchpad/Axiom

Macsyma

SMPmuMATH

Maple

MathcadSACGAP

CoCoAMathHandbookMathomatic

MathematicaDeriveFORM

KASH/KANTPARI/GP

MagmaFermatErableMacaulay2

SingularSymbolicC++

Maxima

Xcas/Giac

Yacas

SAGESMathStudio

CadabraSymPyOpenAxiom

MATLABMuPAD

WolframAlphaTI-NspireCAS

MathicsSymbolismFxSolver

CalcinatorSyMAT

WalkSATSATO

GRASPChaff

BCSAT

MiniSATBerkmin

zChaffSiege

HyperSatRSat

Sat4jArgoSatGlucose

CryptoMiniSat

LingelingUBCSAT

FastSATSolver

SimplifySVC

ICSUclid

MathSATBarcelogic

YicesCVCHySAT/iSAT

DPT

Z3Alt-Ergo

BeaverABsolver

BoolectorPicoSAT

Spear

MiniSmtSTPveriT

OpenCog

OpenSMTSatEEn

SWORDSONOLAR

SMTInterpol

SMT-RATSMCHR

UCLIDClasp

raSAT

“We have success stories of using zChaff to solve problems with morethan 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 hundredopen quasigroup problems in design theory.” [SATO web page]

Erika Abraham - Satisfiability Checking: Theory and Applications 4 / 41

Page 13: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Tool development

1960 1970 1980 1990 2000 2010 2020

CAS

SAT

SMT

Schoonschip

MATHLAB

ReduceAltran

Scratchpad/Axiom

Macsyma

SMPmuMATH

Maple

MathcadSACGAP

CoCoAMathHandbookMathomatic

MathematicaDeriveFORM

KASH/KANTPARI/GP

MagmaFermatErableMacaulay2

SingularSymbolicC++

Maxima

Xcas/Giac

Yacas

SAGESMathStudio

CadabraSymPyOpenAxiom

MATLABMuPAD

WolframAlphaTI-NspireCAS

MathicsSymbolismFxSolver

CalcinatorSyMAT

WalkSATSATO

GRASPChaff

BCSAT

MiniSATBerkmin

zChaffSiege

HyperSatRSat

Sat4jArgoSatGlucose

CryptoMiniSat

LingelingUBCSAT

FastSATSolver

SimplifySVC

ICSUclid

MathSATBarcelogic

YicesCVCHySAT/iSAT

DPT

Z3Alt-Ergo

BeaverABsolver

BoolectorPicoSAT

Spear

MiniSmtSTPveriT

OpenCog

OpenSMTSatEEn

SWORDSONOLAR

SMTInterpol

SMT-RATSMCHR

UCLIDClasp

raSAT

“We have success stories of using zChaff to solve problems with morethan 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 hundredopen quasigroup problems in design theory.” [SATO web page]

Erika Abraham - Satisfiability Checking: Theory and Applications 4 / 41

Page 14: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 andverification.

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 Abraham - Satisfiability Checking: Theory and Applications 5 / 41

Page 15: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 andverification.

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 Abraham - Satisfiability Checking: Theory and Applications 5 / 41

Page 16: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)

Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 17: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: Enumeration

Ingredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 18: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: Enumeration

Ingredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution

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

DecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 19: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: Enumeration

Ingredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

a

b

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 20: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: Enumeration

Ingredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution

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

Decision

Boolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

a

b

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 21: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: Enumeration

Ingredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 22: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagation

Ingredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 23: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagation

Ingredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecision

Boolean constraint propagation

DecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 24: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagation

Ingredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 25: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagation

Ingredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagation

Decision

Boolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 26: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagation

Ingredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 27: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagation

Ingredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecision

Boolean constraint propagation

ConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 28: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagation

Ingredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 29: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagation

Ingredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 30: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagation

Ingredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagation

Conflict

Conflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 6 / 41

Page 31: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Resolution

Assumption: conjunctive normal form (CNF)

Derivation rule form:

antecendent1 . . . antecendentnconsequent Rule name

(l1 ∨ . . . ∨ ln ∨ x) (l′1 ∨ . . . ∨ l′m ∨ ¬x)(l1 ∨ . . . ∨ ln ∨ l′1 ∨ . . . ∨ l′m)

Ruleres

∃x. Cx ∧ C¬x ∧ C ↔ Resolvents (Cx,C¬x) ∧ C

Erika Abraham - Satisfiability Checking: Theory and Applications 7 / 41

Page 32: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Resolution

Assumption: conjunctive normal form (CNF)

Derivation rule form:

antecendent1 . . . antecendentnconsequent Rule name

(l1 ∨ . . . ∨ ln ∨ x) (l′1 ∨ . . . ∨ l′m ∨ ¬x)(l1 ∨ . . . ∨ ln ∨ l′1 ∨ . . . ∨ l′m)

Ruleres

∃x. Cx ∧ C¬x ∧ C ↔ Resolvents (Cx,C¬x) ∧ C

Erika Abraham - Satisfiability Checking: Theory and Applications 7 / 41

Page 33: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Resolution

Assumption: conjunctive normal form (CNF)

Derivation rule form:

antecendent1 . . . antecendentnconsequent Rule name

(l1 ∨ . . . ∨ ln ∨ x) (l′1 ∨ . . . ∨ l′m ∨ ¬x)(l1 ∨ . . . ∨ ln ∨ l′1 ∨ . . . ∨ l′m)

Ruleres

∃x. Cx ∧ C¬x ∧ C ↔ Resolvents (Cx,C¬x) ∧ C

Erika Abraham - Satisfiability Checking: Theory and Applications 7 / 41

Page 34: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Resolution

Assumption: conjunctive normal form (CNF)

Derivation rule form:

antecendent1 . . . antecendentnconsequent Rule name

(l1 ∨ . . . ∨ ln ∨ x) (l′1 ∨ . . . ∨ l′m ∨ ¬x)(l1 ∨ . . . ∨ ln ∨ l′1 ∨ . . . ∨ l′m)

Ruleres

∃x. Cx ∧ C¬x ∧ C ↔ Resolvents (Cx,C¬x) ∧ C

Erika Abraham - Satisfiability Checking: Theory and Applications 7 / 41

Page 35: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagation

Ingredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagation

Conflict

Conflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 8 / 41

Page 36: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagation

Conflict

Conflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 8 / 41

Page 37: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflict

Conflict resolution and backtracking

Boolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 8 / 41

Page 38: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 8 / 41

Page 39: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

ab

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 8 / 41

Page 40: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

a

b

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 8 / 41

Page 41: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtracking

Boolean constraint propagation

. . .

. . .

a

b

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 8 / 41

Page 42: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

DPLL SAT solving with conflict-directed clause learning

Assumption: formula in conjunctive normal form (CNF)Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution

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 )

DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation

. . .

. . .

a

b

c c8

d

ec3

c4

c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e)c9 : (¬a ∨ ¬d)

c9 : ( ¬a ∨ ¬d )

d c9

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 Abraham - Satisfiability Checking: Theory and Applications 8 / 41

Page 43: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 logicover 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 Abraham - Satisfiability Checking: Theory and Applications 9 / 41

Page 44: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 logicover 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 Abraham - Satisfiability Checking: Theory and Applications 9 / 41

Page 45: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

SMT-LIB theories

Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)Quantifier-free bit-vector arithmetic

( a|b ) ≤ ( a&b )Quantifier-free array theory

i = j → read(write(a, i, v), j) = vQuantifier-free integer/rational difference logic

x − y ∼ 0, ∼∈ {<,≤,=,≥, >}(Quantifier-free) real/integer linear arithmetic

3x + 7y = 8(Quantifier-free) real/integer non-linear arithmetic

x2 + 2xy + y2 ≥ 0Combined theories

2f (x) + 5y > 0

Source: http://smtlib.cs.uiowa.edu/logics.shtml

Erika Abraham - Satisfiability Checking: Theory and Applications 10 / 41

Page 46: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

SMT-LIB theories

Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)

Quantifier-free bit-vector arithmetic( a|b ) ≤ ( a&b )

Quantifier-free array theoryi = j → read(write(a, i, v), j) = v

Quantifier-free integer/rational difference logicx − y ∼ 0, ∼∈ {<,≤,=,≥, >}

(Quantifier-free) real/integer linear arithmetic3x + 7y = 8

(Quantifier-free) real/integer non-linear arithmeticx2 + 2xy + y2 ≥ 0

Combined theories2f (x) + 5y > 0

Source: http://smtlib.cs.uiowa.edu/logics.shtml

Erika Abraham - Satisfiability Checking: Theory and Applications 10 / 41

Page 47: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

SMT-LIB theories

Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)

Quantifier-free bit-vector arithmetic( a|b ) ≤ ( a&b )

Quantifier-free array theoryi = j → read(write(a, i, v), j) = v

Quantifier-free integer/rational difference logicx − y ∼ 0, ∼∈ {<,≤,=,≥, >}

(Quantifier-free) real/integer linear arithmetic3x + 7y = 8

(Quantifier-free) real/integer non-linear arithmeticx2 + 2xy + y2 ≥ 0

Combined theories2f (x) + 5y > 0

Source: http://smtlib.cs.uiowa.edu/logics.shtml

Erika Abraham - Satisfiability Checking: Theory and Applications 10 / 41

Page 48: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

SMT-LIB theories

Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)Quantifier-free bit-vector arithmetic

( a|b ) ≤ ( a&b )

Quantifier-free array theoryi = j → read(write(a, i, v), j) = v

Quantifier-free integer/rational difference logicx − y ∼ 0, ∼∈ {<,≤,=,≥, >}

(Quantifier-free) real/integer linear arithmetic3x + 7y = 8

(Quantifier-free) real/integer non-linear arithmeticx2 + 2xy + y2 ≥ 0

Combined theories2f (x) + 5y > 0

Source: http://smtlib.cs.uiowa.edu/logics.shtml

Erika Abraham - Satisfiability Checking: Theory and Applications 10 / 41

Page 49: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

SMT-LIB theories

Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)Quantifier-free bit-vector arithmetic

( a|b ) ≤ ( a&b )Quantifier-free array theory

i = j → read(write(a, i, v), j) = v

Quantifier-free integer/rational difference logicx − y ∼ 0, ∼∈ {<,≤,=,≥, >}

(Quantifier-free) real/integer linear arithmetic3x + 7y = 8

(Quantifier-free) real/integer non-linear arithmeticx2 + 2xy + y2 ≥ 0

Combined theories2f (x) + 5y > 0

Source: http://smtlib.cs.uiowa.edu/logics.shtml

Erika Abraham - Satisfiability Checking: Theory and Applications 10 / 41

Page 50: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

SMT-LIB theories

Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)Quantifier-free bit-vector arithmetic

( a|b ) ≤ ( a&b )Quantifier-free array theory

i = j → read(write(a, i, v), j) = vQuantifier-free integer/rational difference logic

x − y ∼ 0, ∼∈ {<,≤,=,≥, >}

(Quantifier-free) real/integer linear arithmetic3x + 7y = 8

(Quantifier-free) real/integer non-linear arithmeticx2 + 2xy + y2 ≥ 0

Combined theories2f (x) + 5y > 0

Source: http://smtlib.cs.uiowa.edu/logics.shtml

Erika Abraham - Satisfiability Checking: Theory and Applications 10 / 41

Page 51: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

SMT-LIB theories

Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)Quantifier-free bit-vector arithmetic

( a|b ) ≤ ( a&b )Quantifier-free array theory

i = j → read(write(a, i, v), j) = vQuantifier-free integer/rational difference logic

x − y ∼ 0, ∼∈ {<,≤,=,≥, >}(Quantifier-free) real/integer linear arithmetic

3x + 7y = 8

(Quantifier-free) real/integer non-linear arithmeticx2 + 2xy + y2 ≥ 0

Combined theories2f (x) + 5y > 0

Source: http://smtlib.cs.uiowa.edu/logics.shtml

Erika Abraham - Satisfiability Checking: Theory and Applications 10 / 41

Page 52: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

SMT-LIB theories

Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)Quantifier-free bit-vector arithmetic

( a|b ) ≤ ( a&b )Quantifier-free array theory

i = j → read(write(a, i, v), j) = vQuantifier-free integer/rational difference logic

x − y ∼ 0, ∼∈ {<,≤,=,≥, >}(Quantifier-free) real/integer linear arithmetic

3x + 7y = 8(Quantifier-free) real/integer non-linear arithmetic

x2 + 2xy + y2 ≥ 0

Combined theories2f (x) + 5y > 0

Source: http://smtlib.cs.uiowa.edu/logics.shtml

Erika Abraham - Satisfiability Checking: Theory and Applications 10 / 41

Page 53: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Eager vs. lazy SMT solving

We focus on lazy SMT solving.

Alternative eager approach: transform problems into propositionallogic and use SAT solving for satisfiability checking.

Condition: Logic is not more expressive than propositional logic.

Erika Abraham - Satisfiability Checking: Theory and Applications 11 / 41

Page 54: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

(Full/less) lazy SMT solving

ϕ quantifier-free FO formulaBoolean abstraction

Tseitin’s transformationϕ′ propositional logic formula in CNF

SAT solver

Theory solver(s)

theory constraintsSATor

UNSAT+ lemmas

SAT or UNSAT

Erika Abraham - Satisfiability Checking: Theory and Applications 12 / 41

Page 55: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 56: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 57: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d )

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 58: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d )

SAT solver

Theory solver(s)

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 59: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d )

SAT solver

Theory solver(s)

¬a

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 60: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d )

SAT solver

Theory solver(s)

¬a, b

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 61: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d )

SAT solver

Theory solver(s)

¬a, b

x ≥ 0, x > 2

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 62: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d )

SAT solver

Theory solver(s)

¬a, b

x ≥ 0, x > 2 SAT

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 63: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d )

SAT solver

Theory solver(s)

¬a, b, ¬c

x ≥ 0, x > 2

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 64: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d )

SAT solver

Theory solver(s)

¬a, b, ¬c, d

x ≥ 0, x > 2

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 65: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d )

SAT solver

Theory solver(s)

¬a, b, ¬c, d

x ≥ 0, x > 2 , x2 , 1, x2 < 0

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 66: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d )

SAT solver

Theory solver(s)

¬a, b, ¬c, d

x ≥ 0, x > 2 , x2 , 1, x2 < 0 UNSAT: ¬(x2 < 0)

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 67: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)

SAT solver

Theory solver(s)

¬a, b, ¬c, d

x ≥ 0, x > 2 , x2 , 1, x2 < 0 UNSAT: ¬(x2 < 0)

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 68: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)

SAT solver

Theory solver(s)

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 69: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)

SAT solver

Theory solver(s)

¬d

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 70: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)

SAT solver

Theory solver(s)

¬d, c

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 71: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)

SAT solver

Theory solver(s)

¬d, c

x2 ≥ 0, x2 = 1

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 72: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)

SAT solver

Theory solver(s)

¬d, c

x2 ≥ 0, x2 = 1 SAT

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 73: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)

SAT solver

Theory solver(s)

¬d, c, ¬a

x2 ≥ 0, x2 = 1

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 74: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)

SAT solver

Theory solver(s)

¬d, c, ¬a, b

x2 ≥ 0, x2 = 1

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 75: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)

SAT solver

Theory solver(s)

¬d, c, ¬a, b

x2 ≥ 0, x2 = 1 , x ≥ 0, x > 2

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 76: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)

SAT solver

Theory solver(s)

¬d, c, ¬a, b

x2 ≥ 0, x2 = 1 , x ≥ 0, x > 2 UNSAT: ¬(x2 = 1 ∧ x > 2)

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 77: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨ ¬b)

SAT solver

Theory solver(s)

¬d, c, ¬a, b

x2 ≥ 0, x2 = 1 , x ≥ 0, x > 2 UNSAT: ¬(x2 = 1 ∧ x > 2)

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 78: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨ ¬b)

SAT solver

Theory solver(s)

¬d, c

x2 ≥ 0, x2 = 1

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 79: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨ ¬b)

SAT solver

Theory solver(s)

¬d, c, ¬b

x2 ≥ 0, x2 = 1

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 80: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨ ¬b)

SAT solver

Theory solver(s)

¬d, c, ¬b, a

x2 ≥ 0, x2 = 1

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 81: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨ ¬b)

SAT solver

Theory solver(s)

¬d, c, ¬b, a

x2 ≥ 0, x2 = 1 , x ≤ 2, x < 0

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 82: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨ ¬b)

SAT solver

Theory solver(s)

¬d, c, ¬b, a

x2 ≥ 0, x2 = 1 , x ≤ 2, x < 0 SAT

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 83: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨ ¬b)

SAT solver

Theory solver(s)

SAT

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 84: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)

( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d) ∧ (¬c ∨ ¬b)

SAT solver

Theory solver(s)

SAT

N.B. There are also other SMT solving techniques, which more closelyintegrate some theory-solving parts into the SAT-solving mechanism.

Erika Abraham - Satisfiability Checking: Theory and Applications 13 / 41

Page 85: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Some theory solver candidates for arithmetic theories

Linear real arithmetic:

Simplex

Ellipsoid method

Fourier-Motzkin variable elimination(mostly preprocessing)

Interval constraint propagation(incomplete)

Linear integer arithmetic:

Cutting planes, Gomory cuts

Branch-and-bound (incomplete)

Bit-blasting (eager)

Interval constraint propagation(incomplete)

Non-linear real arithmetic:

Cylindrical algebraic decomposition

Grobner bases(mostly preprocessing/simplification)

Virtual substitution (focus on low degrees)

Interval constraint propagation (incomplete)

Non-linear integer arithmetic:

Generalised branch-and-bound(incomplete)

Bit-blasting (eager, incomplete)

Erika Abraham - Satisfiability Checking: Theory and Applications 14 / 41

Page 86: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 theorysolver into an SMT solver?

Erika Abraham - Satisfiability Checking: Theory and Applications 15 / 41

Page 87: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 theorysolver into an SMT solver?

Erika Abraham - Satisfiability Checking: Theory and Applications 15 / 41

Page 88: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Why not use CAS out of the box?

Theory solvers should be SMT-compliant, i.e., they shouldwork incrementally,generate lemmas explaining inconsistencies, andbe able to backtrack.

Originally, the mentioned methodsare not SMT-compliant,they are seldomly available as libraries, andare usually not thread-safe.

Usually, SMT-adaptations are tricky.

Erika Abraham - Satisfiability Checking: Theory and Applications 16 / 41

Page 89: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Why not use CAS out of the box?

Theory solvers should be SMT-compliant, i.e., they shouldwork incrementally,generate lemmas explaining inconsistencies, andbe able to backtrack.

Originally, the mentioned methodsare not SMT-compliant,they are seldomly available as libraries, andare usually not thread-safe.

Usually, SMT-adaptations are tricky.

Erika Abraham - Satisfiability Checking: Theory and Applications 16 / 41

Page 90: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Why not use CAS out of the box?

Theory solvers should be SMT-compliant, i.e., they shouldwork incrementally,generate lemmas explaining inconsistencies, andbe able to backtrack.

Originally, the mentioned methodsare not SMT-compliant,they are seldomly available as libraries, andare usually not thread-safe.

Usually, SMT-adaptations are tricky.

Erika Abraham - Satisfiability Checking: Theory and Applications 16 / 41

Page 91: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Satisfiablility checking and symbolic computationBridging two communities to solve real problems

http://www.sc-square.org/CSA/welcome.html

Erika Abraham - Satisfiability Checking: Theory and Applications 17 / 41

Page 92: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Satisfiablility checking and symbolic computationBridging two communities to solve real problems

http://www.sc-square.org/CSA/welcome.html

Erika Abraham - Satisfiability Checking: Theory and Applications 17 / 41

Page 93: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 Abraham - Satisfiability Checking: Theory and Applications 18 / 41

Page 94: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Our SMT-RAT library

SMT Solver

Strategic composition of SMT-RAT modules

SMT-RAT

(SMT real-algebraic toolbox)

preprocessing, SAT andtheory solver modules

CArL

real-arithmeticcomputations

gmp, Eigen3, boost

Erika Abraham - Satisfiability Checking: Theory and Applications 19 / 41

Page 95: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Strategic composition of solver modules in SMT-RAT

SMT solver

SATsolver

ManagerStrategy

ConditionCondition Condition. . .

Module Module Module Module . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 20 / 41

Page 96: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 Abraham - Satisfiability Checking: Theory and Applications 21 / 41

Page 97: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Solution sets and P-sign-invariant regions

Z[x1, . . . , xn] is the set of all polynomials over variables x1, . . . , xn.

Example

p1 = (x − 2)2 + (y − 2)2 − 1p2 = x − y

∈ Z[x, y]

C = { p1 < 0, p2 = 0 }P = { p1, p2 }

Solution set ≡ finite union of P-sign-invariant regions

x

y

2

2

p1 = 0p1 < 0

p1 > 0

p2 = 0p2 < 0

p2 > 0

Solution set

Erika Abraham - Satisfiability Checking: Theory and Applications 22 / 41

Page 98: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Solution sets and P-sign-invariant regions

Z[x1, . . . , xn] is the set of all polynomials over variables x1, . . . , xn.

Example

p1 = (x − 2)2 + (y − 2)2 − 1p2 = x − y

∈ Z[x, y]

C = { p1 < 0, p2 = 0 }P = { p1, p2 }

Solution set ≡ finite union of P-sign-invariant regions

x

y

2

2

p1 = 0p1 < 0

p1 > 0

p2 = 0p2 < 0

p2 > 0

Solution set

Erika Abraham - Satisfiability Checking: Theory and Applications 22 / 41

Page 99: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Solution sets and P-sign-invariant regions

Z[x1, . . . , xn] is the set of all polynomials over variables x1, . . . , xn.

Example

p1 = (x − 2)2 + (y − 2)2 − 1p2 = x − y

∈ Z[x, y]

C = { p1 < 0, p2 = 0 }P = { p1, p2 }

Solution set ≡ finite union of P-sign-invariant regions

x

y

2

2

p1 = 0p1 < 0

p1 > 0

p2 = 0p2 < 0

p2 > 0

Solution set

Erika Abraham - Satisfiability Checking: Theory and Applications 22 / 41

Page 100: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 101: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 102: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 103: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 104: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 105: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 106: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 107: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 108: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 109: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 110: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 111: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 112: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 113: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 114: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 115: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 116: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 117: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 118: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 119: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 120: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 121: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 122: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 123: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 124: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 125: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Delineability on an example

x

y

2

2

C = { p1 < 0, p2 = 0 }

Erika Abraham - Satisfiability Checking: Theory and Applications 23 / 41

Page 126: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

Erika Abraham - Satisfiability Checking: Theory and Applications 24 / 41

Page 127: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

Erika Abraham - Satisfiability Checking: Theory and Applications 24 / 41

Page 128: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Cylindrical algebraic decomposition example

P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}

P1 = {2x2 − 8x + 7, x2 − 4x + 3, . . . }

projection

zeros

of P1x

2

zeros of P2[·/x]

x

y

2

2

Erika Abraham - Satisfiability Checking: Theory and Applications 25 / 41

Page 129: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Cylindrical algebraic decomposition example

P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}

P1 = {2x2 − 8x + 7, x2 − 4x + 3, . . . }

projection

zeros

of P1x

2

zeros of P2[·/x]

x

y

2

2

Erika Abraham - Satisfiability Checking: Theory and Applications 25 / 41

Page 130: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Cylindrical algebraic decomposition example

P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}

P1 = {2x2 − 8x + 7, x2 − 4x + 3, . . . }

projection

zeros

of P1x

2

zeros of P2[·/x]

x

y

2

2

Erika Abraham - Satisfiability Checking: Theory and Applications 25 / 41

Page 131: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Cylindrical algebraic decomposition example

P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}

P1 = {2x2 − 8x + 7, x2 − 4x + 3, . . . }

projection

zeros

of P1x

2

zeros of P2[·/x]

x

y

2

2

Erika Abraham - Satisfiability Checking: Theory and Applications 25 / 41

Page 132: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Cylindrical algebraic decomposition example

P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}

P1 = {2x2 − 8x + 7, x2 − 4x + 3, . . . }

projection

zeros

of P1x

2

zeros of P2[·/x]

x

y

2

2

Erika Abraham - Satisfiability Checking: Theory and Applications 25 / 41

Page 133: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Cylindrical algebraic decomposition example

P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}

P1 = {2x2 − 8x + 7, x2 − 4x + 3, . . . }

projection

zeros

of P1x

2

zeros of P2[·/x]

x

y

2

2

Erika Abraham - Satisfiability Checking: Theory and Applications 25 / 41

Page 134: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . . . . .. . . . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 135: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . . . . .. . . . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 136: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . . . . .. . . . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 137: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . . . . .. . . . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 138: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . .

. . .. . . . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 139: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . .

. . .. . . . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 140: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . .

. . .. . . . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 141: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . .

. . .. . . . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 142: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . . . . .

. . . . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 143: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . . . . .

. . . . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 144: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . . . . .

. . . . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 145: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . . . . .

. . . . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 146: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . . . . .. . .

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 147: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . . . . .. . .

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 148: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . . . . .. . .

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 149: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . . . . .. . .

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 150: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . . . . .. . . . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 151: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Incrementality and backtracking

Projection phase

Polynomials P = Pn ⊆ Z[x1, . . . , xn]

Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]

. . .

Polynomials P2 ⊆ Z[x1, x2]

Polynomials P1 ⊆ Z[x1]

Construction phase

Samples in R1

Samples in R2

. . .

Samples in Rn−1

Samples in Rn

. . . . . .. . . . . .

Erika Abraham - Satisfiability Checking: Theory and Applications 26 / 41

Page 152: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Explanations

Projection phase Construction phase

. . . . . .

S0 S1 S2 S3 S4 S5 S6 S7

Explanation for unsatisfiability:

covering set S

Erika Abraham - Satisfiability Checking: Theory and Applications 27 / 41

Page 153: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Explanations

Projection phase Construction phase

. . . . . .

S0 S1 S2 S3 S4 S5 S6 S7

Explanation for unsatisfiability:

covering set S

Erika Abraham - Satisfiability Checking: Theory and Applications 27 / 41

Page 154: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Explanations

Projection phase Construction phase

. . . . . .

S0 S1 S2 S3 S4 S5 S6 S7

Explanation for unsatisfiability:

covering set S

Erika Abraham - Satisfiability Checking: Theory and Applications 27 / 41

Page 155: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Explanations

Projection phase Construction phase

. . . . . .

S0 S1 S2 S3 S4 S5 S6 S7

Explanation for unsatisfiability:

covering set S

Erika Abraham - Satisfiability Checking: Theory and Applications 27 / 41

Page 156: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 157: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 158: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable ordering

polynomial selection. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 159: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 160: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 161: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 162: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 163: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 164: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 165: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 166: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 167: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selection

polynomial selection. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 168: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selection

polynomial selection. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 169: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 170: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 171: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 172: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Heuristics

Projection phase Construction phase

variable orderingpolynomial selection

. . .

polynomial selection

sample point selectionpolynomial selection

. . .

Erika Abraham - Satisfiability Checking: Theory and Applications 28 / 41

Page 173: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 instanceAProVE - - - 8273 8527.66 1.03CVC4 2694 150.24 0.05 8231 161418.04 19.61ProB - - - 7557 13586.05 1.79raSAT 0.3 8431 13576.52 1.61 7544 70228.9 9.31raSAT 0.4 9024 11176.39 1.23 8017 159247.55 19.86SMT-RAT 9026 51053.15 5.65 8443 6234.5 0.73Yices 10019 61989.88 6.18 8451 8523.4 1.00[Z3] 10056 24785.38 2.46 8566 27718.2 3.23

Erika Abraham - Satisfiability Checking: Theory and Applications 29 / 41

Page 174: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 Abraham - Satisfiability Checking: Theory and Applications 30 / 41

Page 175: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

SMT embedding structure

Softwareengine

ProblemLogicalproblem

specificationSMT

Solution

Environment

Encoding: SMT-LIB standardelaborate encoding is extremely important!

SMT-LIB syntax→ free solver choice

Erika Abraham - Satisfiability Checking: Theory and Applications 31 / 41

Page 176: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

SMT embedding structure

Softwareengine

ProblemLogicalproblem

specificationSMT

Solution

Environment

Encoding: SMT-LIB standardelaborate encoding is extremely important!

SMT-LIB syntax→ free solver choice

Erika Abraham - Satisfiability Checking: Theory and Applications 31 / 41

Page 177: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

SMT embedding structure

Softwareengine

ProblemLogicalproblem

specificationSMT

Solution

Environment

Encoding: SMT-LIB standardelaborate encoding is extremely important!

SMT-LIB syntax→ free solver choice

Erika Abraham - Satisfiability Checking: Theory and Applications 31 / 41

Page 178: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 explanationEquivalence checkingTest case generationWorst-case execution time

Source: D. Kroening. CBMC home page. http://www.cprover.org/cbmc/

Erika Abraham - Satisfiability Checking: Theory and Applications 32 / 41

Page 179: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 explanationEquivalence checkingTest case generationWorst-case execution time

Source: D. Kroening. CBMC home page. http://www.cprover.org/cbmc/

Erika Abraham - Satisfiability Checking: Theory and Applications 32 / 41

Page 180: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 explanationEquivalence checkingTest case generationWorst-case execution time

Source: D. Kroening. CBMC home page. http://www.cprover.org/cbmc/

Erika Abraham - Satisfiability Checking: Theory and Applications 32 / 41

Page 181: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 explanationEquivalence checkingTest case generationWorst-case execution time

Source: D. Kroening. CBMC home page. http://www.cprover.org/cbmc/

Erika Abraham - Satisfiability Checking: Theory and Applications 32 / 41

Page 182: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

BMC for graph transformation systems

Encode initial and forbiddenstate graphs andthe graph transformation rulesin first-order logic.

Applybounded 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 Abraham - Satisfiability Checking: Theory and Applications 33 / 41

Page 183: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

BMC for graph transformation systems

Encode initial and forbiddenstate graphs andthe graph transformation rulesin first-order logic.

Applybounded 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 Abraham - Satisfiability Checking: Theory and Applications 33 / 41

Page 184: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 Abraham - Satisfiability Checking: Theory and Applications 34 / 41

Page 185: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 Abraham - Satisfiability Checking: Theory and Applications 34 / 41

Page 186: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 Abraham - Satisfiability Checking: Theory and Applications 34 / 41

Page 187: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

jUnitRV : Runtime verification of multi-threaded,object-oriented systems

Properties: linear temporal logics enriched with first-order theoriesMethod: 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 Abraham - Satisfiability Checking: Theory and Applications 35 / 41

Page 188: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Parameter synthesis for probabilistic systems

Source: C. Dehnert, S. Junges, N. Jansen, F. Corzilius, M. Volk, H. Bruintjes, J.-P. Katoen, E. Abraham.

PROPhESY: A probabilistic parameter synthesis tool.

In Proc. of CAV’15.Erika Abraham - Satisfiability Checking: Theory and Applications 36 / 41

Page 189: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 Abraham - Satisfiability Checking: Theory and Applications 37 / 41

Page 190: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Planning

Source: E. Scala, M. Ramirez, P. Haslum, S. Thiebaux.

Numeric planning with disjunctive global constraints via SMT.

In Proc. of ICASP’16.Erika Abraham - Satisfiability Checking: Theory and Applications 38 / 41

Page 191: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Deployment optimisation on the cloud

Location (e.g, VMs, PCs, ...)Depoloyable Components

User Constraints

WordPress

MySQL

HTTP_Load_Balancer

HTTP_Load_Balancer_1

WordPress_3

MySQL_2

MySQL_1

WordPress_2

WordPress_1

Source: E. Abraham, 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 Abraham - Satisfiability Checking: Theory and Applications 39 / 41

Page 192: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

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 Abraham - Satisfiability Checking: Theory and Applications 40 / 41

Page 193: Erika Abrah´ am´ - STAF 2016staf2016.conf.tuwien.ac.at/.../SEFM2016-ErikaAbraham.pdf · 2016-07-11 · [Shostak’79] [Nelson, Oppen’79] DPLL(T) Equalities Uninterpreted functions

Upcoming research directions in SMT solving

Improve usability:

User-friendly models

Dedicated SMT solvers

Increase scalability:

Performance optimisation (better lemmas, heuristics, cachebehaviour, . . . )

Novel combination of decision procedures

Parallelisation

Extend functionality:

Unsatisfiable cores, proofs, interpolants

Quantified arithmetic formulas

Linear and non-linear (global) optimisation

Erika Abraham - Satisfiability Checking: Theory and Applications 41 / 41