symbolic computation techniques in satisfiability checking

241
Symbolic Computation Techniques in Satisfiability Checking Erika ´ Abrah ´ am RWTH Aachen University, Germany SYNASC 2016 Timisoara, Romania September 24-27, 2016 Erika ´ Abrah ´ am - Symbolic Computation Techniques in Satisfiability Checking 1 / 32

Upload: others

Post on 02-Jan-2022

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Symbolic Computation Techniques in Satisfiability Checking

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(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

Less lazy SMT solving

Erika Abraham - Symbolic Computation Techniques in Satisfiability Checking 11 / 32

Page 41: Symbolic Computation Techniques in Satisfiability Checking

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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