symbolic computation techniques in satisfiability checking
TRANSCRIPT
![Page 1: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/1.jpg)
Symbolic Computation Techniquesin Satisfiability Checking
Erika Abraham
RWTH Aachen University, Germany
SYNASC 2016Timisoara, Romania
September 24-27, 2016
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 1 / 32
![Page 2: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/2.jpg)
What is this talk about?
Quantifier-freearithmeticformula
Solver
Satisfiability of theinput formula
Theorem provers
Computer algebra systems
SAT-modulo-theories (SMT) solvers
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 2 / 32
![Page 3: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/3.jpg)
What is this talk about?
Quantifier-freearithmeticformula
Solver
Satisfiability of theinput formula
Theorem provers
Computer algebra systems
SAT-modulo-theories (SMT) solvers
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 2 / 32
![Page 4: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/4.jpg)
Tool development
1960 1970 1980 1990 2000 2010 2020
Computer algebra systems
SAT solvers
SMT solvers
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
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 3 / 32
![Page 5: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/5.jpg)
Tool development
1960 1970 1980 1990 2000 2010 2020
Computer algebra systems
SAT solvers
SMT solvers
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
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 3 / 32
![Page 6: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/6.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 4 / 32
![Page 7: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/7.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 4 / 32
![Page 8: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/8.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0 00
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 9: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/9.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 10: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/10.jpg)
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 : ( ¬b ∨ ¬c )
. . .
Decision
DecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 11: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/11.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
a
b
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 12: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/12.jpg)
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 : ( ¬b ∨ ¬c )
. . .
Decision
Decision
Boolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
a
b
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 13: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/13.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 14: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/14.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 15: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/15.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecision
Boolean constraint propagation
DecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 16: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/16.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0 0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 17: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/17.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagation
Decision
Boolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0 0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 18: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/18.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0 0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 19: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/19.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecision
Boolean constraint propagation
ConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0 0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 20: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/20.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 21: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/21.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 22: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/22.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagation
Conflict
Conflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 23: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/23.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagation
Conflict
Conflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 5 / 32
![Page 24: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/24.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 6 / 32
![Page 25: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/25.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 6 / 32
![Page 26: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/26.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 6 / 32
![Page 27: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/27.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 6 / 32
![Page 28: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/28.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagation
Conflict
Conflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 7 / 32
![Page 29: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/29.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflict
Conflict resolution and backtracking
Boolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 7 / 32
![Page 30: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/30.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 7 / 32
![Page 31: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/31.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
ab
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 7 / 32
![Page 32: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/32.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
a
b
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 7 / 32
![Page 33: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/33.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtracking
Boolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
a
b
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 7 / 32
![Page 34: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/34.jpg)
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 : ( ¬b ∨ ¬c )
. . .
DecisionDecisionBoolean constraint propagationDecisionBoolean constraint propagationConflictConflict resolution and backtrackingBoolean constraint propagation
. . .
. . .
1 0
0
1
1 0
1 0 1 0
1
1 0
1 0 1 0
0
0
1
0
1 1 0
1 0
1
0
1 1 0
1 0
a
b
cc3
d
ec1
c2
c2 : (¬a ∨ ¬d ∨ ¬e) c1 : (¬a ∨ ¬d ∨ e)c4 : (¬a ∨ ¬d) Resolution
c4 : ( ¬a ∨ ¬d )
d
c3
c1 : ( ¬a ∨ ¬d ∨ e )c2 : ( ¬a ∨ ¬d ∨ ¬e )c3 : ( ¬b ∨ ¬c )
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 7 / 32
![Page 35: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/35.jpg)
Tool development
1960 1970 1980 1990 2000 2010 2020
Computer algebra systems
SAT solvers
SMT solvers
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
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 8 / 32
![Page 36: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/36.jpg)
Tool development
1960 1970 1980 1990 2000 2010 2020
Computer algebra systems
SAT solvers
SMT solvers
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
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 8 / 32
![Page 37: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/37.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 9 / 32
![Page 38: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/38.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 9 / 32
![Page 39: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/39.jpg)
(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 - Symbolic Computation Techniques in Satisfiability Checking 10 / 32
![Page 40: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/40.jpg)
Less lazy SMT solving
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 41: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/41.jpg)
Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 42: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/42.jpg)
Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 43: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/43.jpg)
Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
SAT solver
Theory solver(s)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 44: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/44.jpg)
Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
SAT solver
Theory solver(s)
¬a
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 45: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/45.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 46: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/46.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 47: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/47.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 48: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/48.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 49: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/49.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 50: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/50.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 51: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/51.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 52: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/52.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 53: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/53.jpg)
Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)
SAT solver
Theory solver(s)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 54: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/54.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 55: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/55.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 56: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/56.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 57: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/57.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 58: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/58.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 59: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/59.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 60: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/60.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 61: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/61.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 62: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/62.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 63: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/63.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 64: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/64.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 65: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/65.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 66: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/66.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 67: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/67.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 68: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/68.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 69: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/69.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 11 / 32
![Page 70: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/70.jpg)
SMT-LIB theories
(Quantifier-free) linear/non-linear real/integer arithmetic
Source: http://smtlib.cs.uiowa.edu/logics.shtml
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 12 / 32
![Page 71: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/71.jpg)
SMT-LIB theories
(Quantifier-free) linear/non-linear real/integer arithmetic
Source: http://smtlib.cs.uiowa.edu/logics.shtml
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 12 / 32
![Page 72: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/72.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 13 / 32
![Page 73: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/73.jpg)
Implementations in computer algebra systems
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 - Symbolic Computation Techniques in Satisfiability Checking 14 / 32
![Page 74: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/74.jpg)
Implementations in computer algebra systems
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 - Symbolic Computation Techniques in Satisfiability Checking 14 / 32
![Page 75: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/75.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 15 / 32
![Page 76: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/76.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 15 / 32
![Page 77: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/77.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 15 / 32
![Page 78: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/78.jpg)
Satisfiablility checking and symbolic computationBridging two communities to solve real problems
http://www.sc-square.org/CSA/welcome.html
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 16 / 32
![Page 79: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/79.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 17 / 32
![Page 80: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/80.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 18 / 32
![Page 81: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/81.jpg)
Strategic composition of solver modules in SMT-RAT
SMT solver
SATsolver
ManagerStrategy
ConditionCondition Condition. . .
Module Module Module Module . . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 19 / 32
![Page 82: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/82.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 20 / 32
![Page 83: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/83.jpg)
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 }
The zeros of the polynomials divide the search spaceinto a finite number of connected P-sign-invariant regions.
x
y
2
2
p1 = 0p1 < 0
p1 > 0
p2 = 0p2 < 0
p2 > 0
Check satisfiability for at least one sample pointfrom each connected P-sign-invariant region.But how to compute such sample points,at least one for each connected P-sign-invariant region?
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 21 / 32
![Page 84: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/84.jpg)
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 }
The zeros of the polynomials divide the search spaceinto a finite number of connected P-sign-invariant regions.
x
y
2
2
p1 = 0p1 < 0
p1 > 0
p2 = 0p2 < 0
p2 > 0
Check satisfiability for at least one sample pointfrom each connected P-sign-invariant region.But how to compute such sample points,at least one for each connected P-sign-invariant region?
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 21 / 32
![Page 85: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/85.jpg)
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 }
The zeros of the polynomials divide the search spaceinto a finite number of connected P-sign-invariant regions.
x
y
2
2
p1 = 0p1 < 0
p1 > 0
p2 = 0p2 < 0
p2 > 0
Check satisfiability for at least one sample pointfrom each connected P-sign-invariant region.
But how to compute such sample points,at least one for each connected P-sign-invariant region?
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 21 / 32
![Page 86: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/86.jpg)
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 }
The zeros of the polynomials divide the search spaceinto a finite number of connected P-sign-invariant regions.
x
y
2
2
p1 = 0p1 < 0
p1 > 0
p2 = 0p2 < 0
p2 > 0
Check satisfiability for at least one sample pointfrom each connected P-sign-invariant region.
But how to compute such sample points,at least one for each connected P-sign-invariant region?
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 21 / 32
![Page 87: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/87.jpg)
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 }
The zeros of the polynomials divide the search spaceinto a finite number of connected P-sign-invariant regions.
x
y
2
2
p1 = 0p1 < 0
p1 > 0
p2 = 0p2 < 0
p2 > 0
Check satisfiability for at least one sample pointfrom each connected P-sign-invariant region.
But how to compute such sample points,at least one for each connected P-sign-invariant region?
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 21 / 32
![Page 88: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/88.jpg)
Cylindrical algebraic decomposition (CAD)
Polynomials P1 ⊆ Z[x1] Samples in R1isolate real zeros
Projection phase
Polynomials P2 ⊆ Z[x1, x2] Samples in R2
Construction phaseProjection phase
Polynomials P = Pn ⊆ Z[x1, . . . , xn]
Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]
. . . . . .
Samples in Rn−1
Samples in Rn
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 22 / 32
![Page 89: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/89.jpg)
Cylindrical algebraic decomposition example
P1 = {x2 − 1, x }
zeros of
P1x
−1 0 1
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 23 / 32
![Page 90: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/90.jpg)
Cylindrical algebraic decomposition example
P1 = {x2 − 1, x }zeros of
P1x
−1 0 1
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 23 / 32
![Page 91: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/91.jpg)
Cylindrical algebraic decomposition example
P1 = {x2 − 1, x }zeros of
P1x
−1 0 1
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 23 / 32
![Page 92: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/92.jpg)
Cylindrical algebraic decomposition (CAD)
Polynomials P1 ⊆ Z[x1] Samples in R1isolate real zeros
Projection phase
Polynomials P2 ⊆ Z[x1, x2] Samples in R2
Construction phaseProjection phase
Polynomials P = Pn ⊆ Z[x1, . . . , xn]
Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]
. . . . . .
Samples in Rn−1
Samples in Rn
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 24 / 32
![Page 93: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/93.jpg)
Cylindrical algebraic decomposition (CAD)
Polynomials P1 ⊆ Z[x1] Samples in R1isolate real zeros
Projection phase
Polynomials P2 ⊆ Z[x1, x2] Samples in R2
Construction phase
Projection phase
Polynomials P = Pn ⊆ Z[x1, . . . , xn]
Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]
. . . . . .
Samples in Rn−1
Samples in Rn
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 24 / 32
![Page 94: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/94.jpg)
Cylindrical algebraic decomposition (CAD)
Polynomials P1 ⊆ Z[x1] Samples in R1isolate real zeros
Projection phase
Polynomials P2 ⊆ Z[x1, x2] Samples in R2
Construction phaseProjection phase
Polynomials P = Pn ⊆ Z[x1, . . . , xn]
Polynomials Pn−1 ⊆ Z[x1, . . . , xn−1]
. . . . . .
Samples in Rn−1
Samples in Rn
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 24 / 32
![Page 95: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/95.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 96: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/96.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 97: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/97.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 98: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/98.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 99: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/99.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 100: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/100.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 101: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/101.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 102: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/102.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 103: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/103.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 104: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/104.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 105: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/105.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 106: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/106.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 107: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/107.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 108: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/108.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 109: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/109.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 110: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/110.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 111: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/111.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 112: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/112.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 113: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/113.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 114: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/114.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 115: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/115.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 116: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/116.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 117: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/117.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 118: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/118.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 119: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/119.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 120: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/120.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 121: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/121.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 122: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/122.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 123: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/123.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 124: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/124.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 125: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/125.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 126: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/126.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 127: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/127.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 128: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/128.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 129: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/129.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 130: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/130.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 131: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/131.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 132: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/132.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 133: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/133.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 134: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/134.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 135: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/135.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 136: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/136.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 137: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/137.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 138: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/138.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 139: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/139.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 140: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/140.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 141: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/141.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 142: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/142.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 143: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/143.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 144: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/144.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 145: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/145.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 146: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/146.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 147: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/147.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 148: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/148.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 149: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/149.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 150: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/150.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 151: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/151.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 152: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/152.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 153: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/153.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 154: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/154.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 155: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/155.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 156: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/156.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 157: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/157.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 158: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/158.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 159: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/159.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 160: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/160.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 161: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/161.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 162: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/162.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 163: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/163.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 164: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/164.jpg)
Cylindrical algebraic decomposition example
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y} ⊆ Z[x, y]
projection
P1 = {???} ⊆ Z[x]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 25 / 32
![Page 165: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/165.jpg)
Projection
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
discriminant
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
resultant
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 26 / 32
![Page 166: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/166.jpg)
Projection
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
discriminant
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
resultant
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 26 / 32
![Page 167: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/167.jpg)
Projection
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
discriminant
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
resultant
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 26 / 32
![Page 168: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/168.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 169: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/169.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 170: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/170.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 171: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/171.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 172: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/172.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 173: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/173.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 174: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/174.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 175: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/175.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 176: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/176.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 177: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/177.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 178: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/178.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 179: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/179.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 180: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/180.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 181: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/181.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 182: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/182.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 183: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/183.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 184: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/184.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 185: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/185.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 27 / 32
![Page 186: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/186.jpg)
Explanations
Projection phase Construction phase
. . . . . .
S0 S1 S2 S3 S4 S5 S6 S7
Explanation for unsatisfiability:
covering set S
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 28 / 32
![Page 187: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/187.jpg)
Explanations
Projection phase Construction phase
. . . . . .
S0 S1 S2 S3 S4 S5 S6 S7
Explanation for unsatisfiability:
covering set S
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 28 / 32
![Page 188: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/188.jpg)
Explanations
Projection phase Construction phase
. . . . . .
S0 S1 S2 S3 S4 S5 S6 S7
Explanation for unsatisfiability:
covering set S
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 28 / 32
![Page 189: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/189.jpg)
Explanations
Projection phase Construction phase
. . . . . .
S0 S1 S2 S3 S4 S5 S6 S7
Explanation for unsatisfiability:
covering set S
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 28 / 32
![Page 190: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/190.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 191: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/191.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 192: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/192.jpg)
Heuristics
Projection phase Construction phase
variable ordering
polynomial selection. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 193: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/193.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 194: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/194.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 195: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/195.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 196: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/196.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 197: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/197.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 198: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/198.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 199: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/199.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 200: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/200.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 201: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/201.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selection
polynomial selection. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 202: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/202.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selection
polynomial selection. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 203: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/203.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 204: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/204.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 205: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/205.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 206: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/206.jpg)
Heuristics
Projection phase Construction phase
variable orderingpolynomial selection
. . .
polynomial selection
sample point selectionpolynomial selection
. . .
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 29 / 32
![Page 207: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/207.jpg)
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 - Symbolic Computation Techniques in Satisfiability Checking 30 / 32
![Page 208: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/208.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 209: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/209.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 210: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/210.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 211: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/211.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 212: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/212.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 213: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/213.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 214: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/214.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 215: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/215.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 216: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/216.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 217: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/217.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 218: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/218.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 219: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/219.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 220: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/220.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 221: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/221.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 222: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/222.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2
ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 223: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/223.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2
ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 224: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/224.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 225: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/225.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]
Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 226: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/226.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 227: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/227.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 228: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/228.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 229: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/229.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 230: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/230.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 231: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/231.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 232: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/232.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 233: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/233.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 234: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/234.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 235: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/235.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 236: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/236.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 237: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/237.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 238: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/238.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 239: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/239.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 240: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/240.jpg)
The core idea of Z3’s nlsat algorithm [Jovanovic, de Moura, IJCAR’12]
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0︸ ︷︷ ︸c1
∧ x − y = 0︸ ︷︷ ︸c2
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
projection
zeros of
P1x
0 2
zeros ofP2[·/x]
x
y
2
2
Solution to constraints in Z[x]: x = 0.5
ϕ[0.5/x] = (y − 2)2 + 1.25 < 0 ∧ −y + 0.5 = 0
No solution to constraints in Z[y]
Reason: c1
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))
Solution to constraints in Z[x]: x = 1.2ϕ[1.2/x] = (y − 2)2 − 0.36 < 0 ∧ 1.2 − y = 0
No solution to constraints in Z[y]Reason: c1 ∧ c2
P2 = {(x − 2)2 + (y − 2)2 − 1, x − y}
P1 = {x2 − 4x + 3, 2x2 − 8x + 7, . . . }
ϕ = (x − 2)2 + (y − 2)2 − 1 < 0 ∧ x − y = 0∧(c1 → ¬(x < zero(1, x2 − 4x + 3)))((c1 ∧ c2)→ ¬(zero(1, x2 − 4x + 3) < x < zero(1, 2x2 − 8x + 7)))
Solution to constraints in Z[x]: x = 2
ϕ[2/x] = (y − 2)2 − 1 < 0 ∧ 2 − y = 0
Solution to constraints in Z[y]: y = 2
Partial projection(Brown & Kosta, JSC 2015)
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 31 / 32
![Page 241: Symbolic Computation Techniques in Satisfiability Checking](https://reader030.vdocuments.net/reader030/viewer/2022013015/61d0a13461bc3561d46f43bd/html5/thumbnails/241.jpg)
Upcoming research directions in SMT solving
Improve usability:
Computing “nice” models
Dedicated SMT solvers
Increase scalability:
Performance optimisation (better lemmas, heuristics, cachebehaviour, . . . )
Novel combinations of decision procedures
Parallelisation
Extend functionality:
Unsatisfiable cores, proofs, interpolants
Quantified arithmetic formulas
Linear and non-linear (global) optimisation
Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 32 / 32