Building Bridges between Symbolic Computation and Satisfiability - - PowerPoint PPT Presentation

building bridges between symbolic computation and
SMART_READER_LITE
LIVE PREVIEW

Building Bridges between Symbolic Computation and Satisfiability - - PowerPoint PPT Presentation

Building Bridges between Symbolic Computation and Satisfiability Checking Erika Abrah am RWTH Aachen University, Germany in cooperation with Florian Corzilius, Gereon Kremer, Stefan Schupp and others ISSAC15, 7 July 2015 Photo:


slide-1
SLIDE 1

Building Bridges between Symbolic Computation and Satisfiability Checking

Erika ´ Abrah´ am

RWTH Aachen University, Germany in cooperation with Florian Corzilius, Gereon Kremer, Stefan Schupp and others

ISSAC’15, 7 July 2015

Photo: Prior Park, Bath / flickr Liam Gladdy

slide-2
SLIDE 2

What is this talk about?

Satisfiability problem

The satisfiability problem is the problem of deciding whether a logical formula is satisfiable. We focus on the automated solution of the satisfiability problem for first-order logic over arithmetic theories, especially on similarities and differences in symbolic computation and SAT and SMT solving.

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 2 / 39

slide-3
SLIDE 3

Decision procedures for first-order logic over arithmetic theories in mathematical logic

1940 1960 1970 1980 2000 2010

Computer architecture development

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 3 / 39

slide-4
SLIDE 4

Decision procedures for first-order logic over arithmetic theories in mathematical logic

1940 1960 1970 1980 2000 2010

Computer architecture development

CAS

Computer algebra systems CAD Partial CAD Virtual substitution

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 3 / 39

slide-5
SLIDE 5

Decision procedures for first-order logic over arithmetic theories in mathematical logic

1940 1960 1970 1980 2000 2010

Computer architecture development

CAS

Computer algebra systems CAD Partial CAD Virtual substitution

SAT

(propositional logic)

Enumeration DP (resolution)

[Davis, Putnam’60]

DPLL (propagation)

[Davis,Putnam,Logemann,Loveland’62]

NP-completeness [Cook’71] Conflict-directed backjumping CDCL Watched literals

[GRASP’97] [zChaff’04]

Clause learning/forgetting Variable ordering heuristics Restarts

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 3 / 39

slide-6
SLIDE 6

Decision procedures for first-order logic over arithmetic theories in mathematical logic

1940 1960 1970 1980 2000 2010

Computer architecture development

CAS

Computer algebra systems CAD Partial CAD Virtual substitution

SAT

(propositional logic)

Enumeration DP (resolution)

[Davis, Putnam’60]

DPLL (propagation)

[Davis,Putnam,Logemann,Loveland’62]

NP-completeness [Cook’71] Conflict-directed backjumping CDCL Watched literals

[GRASP’97] [zChaff’04]

Clause learning/forgetting Variable ordering heuristics Restarts

SMT

(SAT modulo theories)

Decision procedures for combined theories

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

DPLL(T)

Equalities and uninterpreted functions Bit-vectors Array theory Arithmetic

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 3 / 39

slide-7
SLIDE 7

Tool development

1960 1970 1980 1990 2000 2010 2020

CAS

Schoonschip MATHLAB Reduce Altran Scratchpad/Axiom Macsyma SMP muMATH Maple Mathcad SAC GAP CoCoA MathHandbook Mathomatic Mathematica Derive FORM KASH/KANT PARI/GP Magma Fermat Erable Macaulay2 Singular SymbolicC++ Maxima Xcas/Giac Yacas SAGE SMath Studio Cadabra SymPy OpenAxiom MATLAB MuPAD Wolfram Alpha TI-Nspire CAS Mathics Symbolism FxSolver Calcinator SyMAT

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 4 / 39

slide-8
SLIDE 8

Tool development

1960 1970 1980 1990 2000 2010 2020

CAS SAT

Schoonschip MATHLAB Reduce Altran Scratchpad/Axiom Macsyma SMP muMATH Maple Mathcad SAC GAP CoCoA MathHandbook Mathomatic Mathematica Derive FORM KASH/KANT PARI/GP Magma Fermat Erable Macaulay2 Singular SymbolicC++ Maxima Xcas/Giac Yacas SAGE SMath Studio Cadabra SymPy OpenAxiom MATLAB MuPAD Wolfram Alpha TI-Nspire CAS Mathics Symbolism FxSolver Calcinator SyMAT WalkSAT SATO GRASP Chaff BCSAT MiniSAT Berkmin zChaff Siege HyperSat RSat Sat4j ArgoSat Glucose CryptoMiniSat Lingeling UBCSAT Fast SAT Solver

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 4 / 39

slide-9
SLIDE 9

Tool development

1960 1970 1980 1990 2000 2010 2020

CAS SAT

Schoonschip MATHLAB Reduce Altran Scratchpad/Axiom Macsyma SMP muMATH Maple Mathcad SAC GAP CoCoA MathHandbook Mathomatic Mathematica Derive FORM KASH/KANT PARI/GP Magma Fermat Erable Macaulay2 Singular SymbolicC++ Maxima Xcas/Giac Yacas SAGE SMath Studio Cadabra SymPy OpenAxiom MATLAB MuPAD Wolfram Alpha TI-Nspire CAS Mathics Symbolism FxSolver Calcinator SyMAT WalkSAT SATO GRASP Chaff BCSAT MiniSAT Berkmin zChaff Siege HyperSat RSat Sat4j ArgoSat Glucose CryptoMiniSat Lingeling UBCSAT Fast SAT Solver

“We have success stories of using zChaff to solve problems with more than one million variables and 10 million clauses. (Of course, it can’t solve every such problem!).” [zChaff web page]

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 4 / 39

slide-10
SLIDE 10

Tool development

1960 1970 1980 1990 2000 2010 2020

CAS SAT

Schoonschip MATHLAB Reduce Altran Scratchpad/Axiom Macsyma SMP muMATH Maple Mathcad SAC GAP CoCoA MathHandbook Mathomatic Mathematica Derive FORM KASH/KANT PARI/GP Magma Fermat Erable Macaulay2 Singular SymbolicC++ Maxima Xcas/Giac Yacas SAGE SMath Studio Cadabra SymPy OpenAxiom MATLAB MuPAD Wolfram Alpha TI-Nspire CAS Mathics Symbolism FxSolver Calcinator SyMAT WalkSAT SATO GRASP Chaff BCSAT MiniSAT Berkmin zChaff Siege HyperSat RSat Sat4j ArgoSat Glucose CryptoMiniSat Lingeling UBCSAT Fast SAT Solver

“We have success stories of using zChaff to solve problems with more than one million variables and 10 million clauses. (Of course, it can’t solve every such problem!).” [zChaff web page] “ The efficiency of our programs allowed us to solve over one hundred

  • pen quasigroup problems in design theory.” [SATO web page]

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 4 / 39

slide-11
SLIDE 11

Tool development

1960 1970 1980 1990 2000 2010 2020

CAS SAT

Schoonschip MATHLAB Reduce Altran Scratchpad/Axiom Macsyma SMP muMATH Maple Mathcad SAC GAP CoCoA MathHandbook Mathomatic Mathematica Derive FORM KASH/KANT PARI/GP Magma Fermat Erable Macaulay2 Singular SymbolicC++ Maxima Xcas/Giac Yacas SAGE SMath Studio Cadabra SymPy OpenAxiom MATLAB MuPAD Wolfram Alpha TI-Nspire CAS Mathics Symbolism FxSolver Calcinator SyMAT WalkSAT SATO GRASP Chaff BCSAT MiniSAT Berkmin zChaff Siege HyperSat RSat Sat4j ArgoSat Glucose CryptoMiniSat Lingeling UBCSAT Fast SAT Solver

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 4 / 39

slide-12
SLIDE 12

Tool development

1960 1970 1980 1990 2000 2010 2020

CAS SAT SMT

Schoonschip MATHLAB Reduce Altran Scratchpad/Axiom Macsyma SMP muMATH Maple Mathcad SAC GAP CoCoA MathHandbook Mathomatic Mathematica Derive FORM KASH/KANT PARI/GP Magma Fermat Erable Macaulay2 Singular SymbolicC++ Maxima Xcas/Giac Yacas SAGE SMath Studio Cadabra SymPy OpenAxiom MATLAB MuPAD Wolfram Alpha TI-Nspire CAS Mathics Symbolism FxSolver Calcinator SyMAT WalkSAT SATO GRASP Chaff BCSAT MiniSAT Berkmin zChaff Siege Bacelogic HySAT/iSAT HyperSat RSat Sat4j Yices CVC MathSAT ABsolver DPT Z3 Alt-Ergo Beaver Boolector PicoSAT Spear MiniSmt veriT OpenCog ArgoSat OpenSMT SatEEn SWORD Glucose CryptoMiniSat SONOLAR Lingeling UBCSAT SMTInterpol SMT-RAT STP SMCHR UCLID Clasp Fast SAT Solver raSAT

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 4 / 39

slide-13
SLIDE 13

Satisfiability checking for propositional logic

Success story: SAT-solving Practical problems with millions of variables are solvable. Frequently used in different research areas for, e.g., analysis, synthesis and optimisation. Also massively used in industry for, e.g., digital circuit design and verification.

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 5 / 39

slide-14
SLIDE 14

Satisfiability checking for propositional logic

Success story: SAT-solving Practical problems with millions of variables are solvable. Frequently used in different research areas for, e.g., analysis, synthesis and optimisation. Also massively used in industry for, e.g., digital circuit design and verification. Community support: Standardised input language, lots of benchmarks available. Competitions since 2002. 2014 SAT Competition: 3 categories, 79 participants with 137 solvers. SAT Live! forum as community platform, dedicated conferences, journals, etc.

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 5 / 39

slide-15
SLIDE 15

Input in CNF: Tseitin’s encoding

Every formula can be converted to an equi-satisfiable formula in conjunctive normal form (CNF) in linear time and space if (a linear number

  • f) new variables are admitted.

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 6 / 39

slide-16
SLIDE 16

Input in CNF: Tseitin’s encoding

Every formula can be converted to an equi-satisfiable formula in conjunctive normal form (CNF) in linear time and space if (a linear number

  • f) new variables are admitted.

(a → (b ∧ c))

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 6 / 39

slide-17
SLIDE 17

Input in CNF: Tseitin’s encoding

Every formula can be converted to an equi-satisfiable formula in conjunctive normal form (CNF) in linear time and space if (a linear number

  • f) new variables are admitted.

(a → (b ∧ c)) → h1 a ∧ h2 b c

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 6 / 39

slide-18
SLIDE 18

Input in CNF: Tseitin’s encoding

Every formula can be converted to an equi-satisfiable formula in conjunctive normal form (CNF) in linear time and space if (a linear number

  • f) new variables are admitted.

(a → (b ∧ c)) → h1 a ∧ h2 b c (h1 ↔ (a → h2)) ∧ (h2 ↔ (b ∧ c)) ∧ (h1)

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 6 / 39

slide-19
SLIDE 19

SAT solving: Resolution

Assumption: conjunctive normal form (CNF)

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 7 / 39

slide-20
SLIDE 20

SAT solving: Resolution

Assumption: conjunctive normal form (CNF)

Derivation rule form: antecendent1 . . . antecendentn consequent Rule name

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 7 / 39

slide-21
SLIDE 21

SAT solving: Resolution

Assumption: conjunctive normal form (CNF)

Derivation rule form: antecendent1 . . . antecendentn consequent Rule name

(l1 ∨ . . . ∨ ln ∨ x) (l′

1 ∨ . . . ∨ l′ m ∨ ¬x)

(l1 ∨ . . . ∨ ln ∨ l′

1 ∨ . . . ∨ l′ m)

Ruleres

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 7 / 39

slide-22
SLIDE 22

SAT solving: Resolution

Assumption: conjunctive normal form (CNF)

Derivation rule form: antecendent1 . . . antecendentn consequent Rule name

(l1 ∨ . . . ∨ ln ∨ x) (l′

1 ∨ . . . ∨ l′ m ∨ ¬x)

(l1 ∨ . . . ∨ ln ∨ l′

1 ∨ . . . ∨ l′ m)

Ruleres

Cx ∨ C¬x ∨ C

is equi-satisfiable to Resolvents(Cx, C¬x) ∨ C

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 7 / 39

slide-23
SLIDE 23

SAT solving: Resolution

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c )

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 8 / 39

slide-24
SLIDE 24

SAT solving: Resolution

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) c1 : (¬a ∨ d ∨ e) c2 : (¬a ∨ d ∨ ¬e) (¬a ∨ d) c3 : (¬a ∨ ¬d ∨ e) c4 : (¬a ∨ ¬d ∨ ¬e) (¬a ∨ ¬d) (¬a) c5 : (a ∨ b) c6 : (a ∨ ¬b) (a) ()

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 8 / 39

slide-25
SLIDE 25

SAT solving: Resolution

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) c1 : (¬a ∨ d ∨ e) c2 : (¬a ∨ d ∨ ¬e) (¬a ∨ d) c3 : (¬a ∨ ¬d ∨ e) c4 : (¬a ∨ ¬d ∨ ¬e) (¬a ∨ ¬d) (¬a) c5 : (a ∨ b) c6 : (a ∨ ¬b) (a) () Problem: combinatorial blowup

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 8 / 39

slide-26
SLIDE 26

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . .

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-27
SLIDE 27

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Decision . . . . . .

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-28
SLIDE 28

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-29
SLIDE 29

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Decision . . . . . . a

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-30
SLIDE 30

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-31
SLIDE 31

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Decision . . . . . . a b

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-32
SLIDE 32

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-33
SLIDE 33

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Decision . . . . . . a b c

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-34
SLIDE 34

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c d

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-35
SLIDE 35

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Decision . . . . . . a b c d

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-36
SLIDE 36

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c d e

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-37
SLIDE 37

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Conflict . . . . . . a b c d e

  • Erika ´

Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-38
SLIDE 38

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Backjumping . . . . . . a b c d e

  • Erika ´

Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-39
SLIDE 39

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c d e

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-40
SLIDE 40

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Conflict . . . . . . a b c d e

  • Erika ´

Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-41
SLIDE 41

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Backjumping . . . . . . a b c d e

  • Erika ´

Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-42
SLIDE 42

SAT solving: Enumeration

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c d

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 9 / 39

slide-43
SLIDE 43

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . .

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-44
SLIDE 44

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Decision . . . . . .

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-45
SLIDE 45

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-46
SLIDE 46

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Decision . . . . . . a

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-47
SLIDE 47

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-48
SLIDE 48

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Pure literal detection . . . . . . a b

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-49
SLIDE 49

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-50
SLIDE 50

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Decision . . . . . . a b c

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-51
SLIDE 51

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c d

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-52
SLIDE 52

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Boolean constraint propagation . . . . . . a b c d

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-53
SLIDE 53

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c d e

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-54
SLIDE 54

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Conflict . . . . . . a b c d e

  • Erika ´

Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-55
SLIDE 55

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Backjumping . . . . . . a b c d e

  • Erika ´

Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-56
SLIDE 56

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c d

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-57
SLIDE 57

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Boolean constraint propagation . . . . . . a b c d

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-58
SLIDE 58

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c d e

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-59
SLIDE 59

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Conflict . . . . . . a b c d e

  • Erika ´

Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-60
SLIDE 60

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Backjumping . . . . . . a b c d e

  • Erika ´

Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-61
SLIDE 61

SAT solving: The DPLL algorithm

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 10 / 39

slide-62
SLIDE 62

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . .

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-63
SLIDE 63

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Decision . . . . . .

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-64
SLIDE 64

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-65
SLIDE 65

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Decision . . . . . . a

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-66
SLIDE 66

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-67
SLIDE 67

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Boolean constraint propagation . . . . . . a b

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-68
SLIDE 68

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c c8

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-69
SLIDE 69

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Decision . . . . . . a b c c8

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-70
SLIDE 70

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c c8 d

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-71
SLIDE 71

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Boolean constraint propagation . . . . . . a b c c8 d

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-72
SLIDE 72

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c c8 d e c3

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-73
SLIDE 73

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Conflict . . . . . . a b c c8 d e c3 c4

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-74
SLIDE 74

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) Conflict resolution and backtracking . . . . . . a b c c8 d e c3 c4

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-75
SLIDE 75

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c c8 d e c3 c4 c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e) c9 : (¬a ∨ ¬d)

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-76
SLIDE 76

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a b c c8 d e c3 c4 c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e) c9 : (¬a ∨ ¬d) c9 : ( ¬a ∨ ¬d )

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-77
SLIDE 77

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e) c9 : (¬a ∨ ¬d) c9 : ( ¬a ∨ ¬d )

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-78
SLIDE 78

SAT solving: Conflict-directed clause learning

c1 : ( ¬a ∨ d ∨ e ) c2 : ( ¬a ∨ d ∨ ¬e ) c3 : ( ¬a ∨ ¬d ∨ e ) c4 : ( ¬a ∨ ¬d ∨ ¬e ) c5 : ( a ∨ b ) c6 : ( a ∨ ¬b ) c7 : ( b ∨ c ) c8 : ( ¬b ∨ ¬c ) . . . . . . a c4 : (¬a ∨ ¬d ∨ ¬e) c3 : (¬a ∨ ¬d ∨ e) c9 : (¬a ∨ ¬d) c9 : ( ¬a ∨ ¬d ) d c9

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 11 / 39

slide-79
SLIDE 79

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 fragments of first-order logic over various theories. Our focus: SAT-modulo-theories (SMT) solving.

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 12 / 39

slide-80
SLIDE 80

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 fragments of first-order logic over various theories. Our focus: SAT-modulo-theories (SMT) solving. SMT-LIB as standard input language since 2004. Competitions since 2005. SMT-COMP 2014 competition: 32 logical categories, 20 solvers.

Linear real arithmetic (since 2005): 6 solvers. Non-linear real arithmetic (since 2010): 4 solvers. 67426 benchmark instances.

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 12 / 39

slide-81
SLIDE 81

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 fragments of first-order logic over various theories. Our focus: SAT-modulo-theories (SMT) solving. SMT-LIB as standard input language since 2004. Competitions since 2005. SMT-COMP 2014 competition: 32 logical categories, 20 solvers.

Linear real arithmetic (since 2005): 6 solvers. Non-linear real arithmetic (since 2010): 4 solvers. 67426 benchmark instances.

SMT applications: verification (model checking, static analysis, termination analysis); test case generation; controller synthesis; predicate abstraction; equivalence checking; scheduling; planning; product design automation and optimisation, . . .

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 12 / 39

slide-82
SLIDE 82

SMT-LIB theories

Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

slide-83
SLIDE 83

SMT-LIB theories

Quantifier-free equality logic with uninterpreted functions

( a = c ∧ b = d ) → f(a, b) = f(c, d)

Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

slide-84
SLIDE 84

SMT-LIB theories

Quantifier-free bit-vector arithmetic

( a|b ) ≤ ( a&b )

Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

slide-85
SLIDE 85

SMT-LIB theories

Quantifier-free array theory

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

Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

slide-86
SLIDE 86

SMT-LIB theories

Quantifier-free integer/rational difference logic

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

Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

slide-87
SLIDE 87

SMT-LIB theories

(Quantifier-free) real/integer linear arithmetic

3x + 7y = 8

Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

slide-88
SLIDE 88

SMT-LIB theories

(Quantifier-free) real/integer non-linear arithmetic

x2 + 2xy + y2 ≥ 0

Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

slide-89
SLIDE 89

SMT-LIB theories

Combined theories

2f(x) + 5y > 0

Source: http://smtlib.cs.uiowa.edu/logics.shtml Erika ´ Abrah´ am - SMT solving and Symbolic Computation 13 / 39

slide-90
SLIDE 90

Eager vs. lazy SMT solving

We focus on lazy SMT solving. Alternative eager approach: transform problems into propositional logic and use SAT solving for satisfiability checking. Condition: Logic is not more expressive than propositional logic.

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 14 / 39

slide-91
SLIDE 91

(Full/less) lazy SMT solving

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 15 / 39

slide-92
SLIDE 92

(Full/less) lazy SMT solving

ϕ

quantifier-free FO formula

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 15 / 39

slide-93
SLIDE 93

(Full/less) lazy SMT solving

ϕ

quantifier-free FO formula Boolean abstraction Tseitin’s transformationϕ′ propositional logic formula in CNF

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 15 / 39

slide-94
SLIDE 94

(Full/less) lazy SMT solving

ϕ

quantifier-free FO formula Boolean abstraction Tseitin’s transformationϕ′ propositional logic formula in CNF SAT solver

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 15 / 39

slide-95
SLIDE 95

(Full/less) lazy SMT solving

ϕ

quantifier-free FO formula Boolean abstraction Tseitin’s transformationϕ′ propositional logic formula in CNF SAT solver Theory solver(s) theory constraints

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 15 / 39

slide-96
SLIDE 96

(Full/less) lazy SMT solving

ϕ

quantifier-free FO formula Boolean abstraction Tseitin’s transformationϕ′ propositional logic formula in CNF SAT solver Theory solver(s) theory constraints SAT

  • r

UNSAT + lemmas

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 15 / 39

slide-97
SLIDE 97

(Full/less) lazy SMT solving

ϕ

quantifier-free FO formula Boolean abstraction Tseitin’s transformationϕ′ propositional logic formula in CNF SAT solver Theory solver(s) theory constraints SAT

  • r

UNSAT + lemmas

SAT or UNSAT

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 15 / 39

slide-98
SLIDE 98

Less lazy SMT solving

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-99
SLIDE 99

Less lazy SMT solving

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

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-100
SLIDE 100

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0) ( a ∨ b ) ∧ ( c ∨ d )

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-101
SLIDE 101

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0) ( a ∨ b ) ∧ ( c ∨ d )

SAT solver Theory solver(s)

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-102
SLIDE 102

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0) ( a ∨ b ) ∧ ( c ∨ d )

SAT solver Theory solver(s)

¬a

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-103
SLIDE 103

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0) ( a ∨ b ) ∧ ( c ∨ d )

SAT solver Theory solver(s)

¬a, b

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-104
SLIDE 104

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-105
SLIDE 105

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-106
SLIDE 106

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-107
SLIDE 107

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-108
SLIDE 108

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-109
SLIDE 109

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-110
SLIDE 110

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-111
SLIDE 111

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0) ( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)

SAT solver Theory solver(s)

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-112
SLIDE 112

Less lazy SMT solving

(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0) ( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)

SAT solver Theory solver(s)

¬d

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-113
SLIDE 113

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-114
SLIDE 114

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-115
SLIDE 115

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-116
SLIDE 116

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-117
SLIDE 117

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-118
SLIDE 118

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-119
SLIDE 119

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-120
SLIDE 120

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-121
SLIDE 121

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-122
SLIDE 122

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-123
SLIDE 123

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-124
SLIDE 124

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-125
SLIDE 125

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-126
SLIDE 126

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 ´ Abrah´ am - SMT solving and Symbolic Computation 16 / 39

slide-127
SLIDE 127

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) SMT solvers: Alt-Ergo, CVC4, iSAT3, MathSAT5, OpenSMT2, SMT-RAT, veriT, Yices2, Z3 Non-linear real arithmetic: Cylindrical algebraic decomposition Gr¨

  • bner 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) SMT solvers: Alt-Ergo, AProVE, iSAT3, MiniSmt, SMT-RAT, Z3

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 17 / 39

slide-128
SLIDE 128

Some corresponding implementations in CAS

Gr¨

  • bner bases

CoCoA, F4, Maple, Mathematica, Maxima, Singular, Reduce, . . . Cylindrical algebraic decomposition (CAD) Mathematica, QEPCAD, Reduce, . . . Virtual substitution (VS) Reduce, . . .

Strength: Efficient for conjunctions of real constraints.

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 18 / 39

slide-129
SLIDE 129

Some corresponding implementations in CAS

Gr¨

  • bner bases

CoCoA, F4, Maple, Mathematica, Maxima, Singular, Reduce, . . . Cylindrical algebraic decomposition (CAD) Mathematica, QEPCAD, Reduce, . . . Virtual substitution (VS) Reduce, . . .

Strength: Efficient for conjunctions of real constraints. So why don’t we just plug in an algebraic decision procedure as theory solver into an SMT solver?

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 18 / 39

slide-130
SLIDE 130

Why not use CAS out of the box?

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

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 19 / 39

slide-131
SLIDE 131

Why not use CAS out of the box?

Theory solvers should be SMT-compliant, i.e., they should work incrementally, generate lemmas explaining inconsistencies, and be able to backtrack. Originally, the mentioned methods are not SMT-compliant, they are seldomly available as libraries, and are usually not thread-safe.

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 19 / 39

slide-132
SLIDE 132

Why not use CAS out of the box?

Theory solvers should be SMT-compliant, i.e., they should work incrementally, generate lemmas explaining inconsistencies, and be able to backtrack. Originally, the mentioned methods are not SMT-compliant, they are seldomly available as libraries, and are usually not thread-safe. Usually, SMT-adaptations are tricky. For illustration, let us have a high-level look at some solutions.

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 19 / 39

slide-133
SLIDE 133

Our SMT-RAT library

We have developed the SMT-RAT library of theory modules. [SAT’12, SAT’15] A new release came out in June 2015.

https://github.com/smtrat/smtrat/wiki

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 20 / 39

slide-134
SLIDE 134

Our SMT-RAT library

SMT Solver

Strategic composition of SMT-RAT modules

SMT-RAT (SMT real-algebraic toolbox)

preprocessing, SAT and theory solver modules

CArL

real-arithmetic computations

gmp, Eigen3, boost

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 21 / 39

slide-135
SLIDE 135

Solver modules in SMT-RAT

Libraries for basic computations [NFM’11, CAI’11] SAT solver CNF converter Preprocessing/simplifying modules Interval constraint propagation Simplex Virtual substitution [FCT’11, PhD Corzilius] CAD [CADE-24, PhD Loup, PhD Kremer] Gr¨

  • bner bases [CAI’13]

Generalised branch-and-bound Under construction: equality, uninterpreted functions, bit-vector arithmetic

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 22 / 39

slide-136
SLIDE 136

Strategic composition of solver modules in SMT-RAT

SMT solver SAT solver Manager Strategy

Condition Condition Condition

. . . Module Module Module Module

. . .

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 23 / 39

slide-137
SLIDE 137

The key idea of the virtual substitution

Eliminate one existential quantifier in favour of a finite disjunction over parametric test points.

∃x, y : (y = 0 ∨ y2 + 1 < 0) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

eliminate x

∃y : ( (y = 0 ∨ y2 + 1 < 0) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0 )[−∞/x] ∨ ( (y = 0 ∨ y2 + 1 < 0) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0 )[3/x] ) ∨ ( y 0 ∧ ( (y = 0 ∨ y2 + 1 < 0) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0 )[− 1

y + ǫ/x]

) eliminate y

. . .

Test candidates Side condition

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 24 / 39

slide-138
SLIDE 138

SMT solver

∃x, y : ( y = 0 ∨ y2 + 1 < 0 ) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

SAT-solver

( a ∨ b ) ∧ c ∧ d

Boolean abstraction

Theory solver (virtual substitution) ∧ x − 3 ≤ 0 ∧ y2 + 1 < 0

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 25 / 39

slide-139
SLIDE 139

SMT solver

∃x, y : ( y = 0 ∨ y2 + 1 < 0 ) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

SAT-solver

c ( a ∨ b ) ∧ c ∧ d

Boolean abstraction

Theory solver (virtual substitution) ∧ x − 3 ≤ 0 ∧ y2 + 1 < 0

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 25 / 39

slide-140
SLIDE 140

SMT solver

∃x, y : ( y = 0 ∨ y2 + 1 < 0 ) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

SAT-solver

c ( a ∨ b ) ∧ c ∧ d

Boolean abstraction

Theory solver (virtual substitution) xy + 1 < 0 ∧ x − 3 ≤ 0 ∧ y2 + 1 < 0

add xy + 1 < 0

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 25 / 39

slide-141
SLIDE 141

SMT solver

∃x, y : ( y = 0 ∨ y2 + 1 < 0 ) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

SAT-solver

c d ( a ∨ b ) ∧ c ∧ d

Boolean abstraction

Theory solver (virtual substitution) xy + 1 < 0 ∧ x − 3 ≤ 0 ∧ y2 + 1 < 0

add x − 3 ≤ 0

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 25 / 39

slide-142
SLIDE 142

SMT solver

∃x, y : ( y = 0 ∨ y2 + 1 < 0 ) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

SAT-solver

c d ( a ∨ b ) ∧ c ∧ d

Boolean abstraction

Theory solver (virtual substitution) xy + 1 < 0 ∧ x − 3 ≤ 0 ∧ y2 + 1 < 0

Theory solver state A consistency check

check consistency answer: consistent

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 25 / 39

slide-143
SLIDE 143

Theory solver:

add xy + 1 < 0, add x − 3 ≤ 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0)

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 26 / 39

slide-144
SLIDE 144

Theory solver:

add xy + 1 < 0, add x − 3 ≤ 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0)

[−∞/x] [3/x]

c01 c01 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 26 / 39

slide-145
SLIDE 145

Theory solver:

add xy + 1 < 0, add x − 3 ≤ 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0)

[−∞/x] [3/x]

c10 : (y > 0)c00

c01 c01 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 26 / 39

slide-146
SLIDE 146

Theory solver:

add xy + 1 < 0, add x − 3 ≤ 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0)

[−∞/x] [3/x]

c10 : (y > 0)c00

[−∞/y] [0 + ǫ/y]

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 26 / 39

slide-147
SLIDE 147

Theory solver:

add xy + 1 < 0, add x − 3 ≤ 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0)

[−∞/x] [3/x]

c10 : (y > 0)c00

[−∞/y] [0 + ǫ/y]

c10

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 26 / 39

slide-148
SLIDE 148

Theory solver:

add xy + 1 < 0, add x − 3 ≤ 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0)

[−∞/x] [3/x]

c10 : (y > 0)c00

[−∞/y] [0 + ǫ/y]

c10

true

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 26 / 39

slide-149
SLIDE 149

SMT solver

∃x, y : ( y = 0 ∨ y2 + 1 < 0 ) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

SAT-solver

c d ( a ∨ b ) ∧ c ∧ d

Boolean abstraction

Theory solver (virtual substitution) xy + 1 < 0 ∧ x − 3 ≤ 0 ∧ y2 + 1 < 0

Theory solver state A consistency check

check consistency answer: consistent

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 27 / 39

slide-150
SLIDE 150

SMT solver

∃x, y : ( y = 0 ∨ y2 + 1 < 0 ) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

SAT-solver

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

Boolean abstraction

Theory solver (virtual substitution) xy + 1 < 0 ∧ x − 3 ≤ 0 ∧ y2 + 1 < 0

Theory solver state A

add y2 + 1 < 0

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 27 / 39

slide-151
SLIDE 151

SMT solver

∃x, y : ( y = 0 ∨ y2 + 1 < 0 ) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

SAT-solver

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

Boolean abstraction

Theory solver (virtual substitution) xy + 1 < 0 ∧ x − 3 ≤ 0 ∧ y2 + 1 < 0

Theory solver state B consistency check

check consistency answer: inconsistent reason: y2 + 1 < 0

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 27 / 39

slide-152
SLIDE 152

Theory solver:

add y2 + 1 < 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0)

[−∞/x] [3/x]

c10 : (y > 0)c00

[−∞/y] [0 + ǫ/y]

c10

true

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 28 / 39

slide-153
SLIDE 153

Theory solver:

add y2 + 1 < 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y2 + 1 < 0)

[−∞/x] [3/x]

c10 : (y > 0)c00

[−∞/y] [0 + ǫ/y]

c10

true

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 28 / 39

slide-154
SLIDE 154

Theory solver:

add y2 + 1 < 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y2 + 1 < 0)

[−∞/x] [3/x]

c10 : (y > 0)c00 c11 : (y2 + 1 < 0)c02

[−∞/y] [0 + ǫ/y]

c10

true

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 28 / 39

slide-155
SLIDE 155

Theory solver:

add y2 + 1 < 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y2 + 1 < 0)

[−∞/x] [3/x]

c10 : (y > 0)c00 c11 : (y2 + 1 < 0)c02

[−∞/y] [0 + ǫ/y]

c10 ∨ c11

true

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 28 / 39

slide-156
SLIDE 156

Theory solver:

add y2 + 1 < 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y2 + 1 < 0)

[−∞/x] [3/x]

c10 : (y > 0)c00 c11 : (y2 + 1 < 0)c02

[−∞/y] [0 + ǫ/y]

c10 ∨ c11 c11

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 28 / 39

slide-157
SLIDE 157

Theory solver:

add y2 + 1 < 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y2 + 1 < 0)

[−∞/x] [3/x]

c10 : (y > 0)c00 c11 : (y2 + 1 < 0)c02

[−∞/y] [0 + ǫ/y]

c10 ∨ c11 c11

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 28 / 39

slide-158
SLIDE 158

SMT solver

∃x, y : ( y = 0 ∨ y2 + 1 < 0 ) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

SAT-solver

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

Boolean abstraction

Theory solver (virtual substitution) xy + 1 < 0 ∧ x − 3 ≤ 0 ∧ y2 + 1 < 0

Theory solver state B consistency check

check consistency answer: inconsistent reason: y2 + 1 < 0

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 29 / 39

slide-159
SLIDE 159

SMT solver

∃x, y : ( y = 0 ∨ y2 + 1 < 0 ) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

SAT-solver

c d ( a ∨ b ) ∧ c ∧ d

Boolean abstraction

Theory solver (virtual substitution) xy + 1 < 0 ∧ x − 3 ≤ 0 ∧ y2 + 1 < 0

Theory solver state A

delete y2 + 1 < 0

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 29 / 39

slide-160
SLIDE 160

Theory solver:

delete y2 + 1 < 0

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y2 + 1 < 0)

[−∞/x] [3/x]

c10 : (y > 0)c00 c11 : (y2 + 1 < 0)c02

[−∞/y] [0 + ǫ/y]

c10 ∨ c11 c11

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 30 / 39

slide-161
SLIDE 161

Theory solver:

delete y2 + 1 < 0

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0)

[−∞/x] [3/x]

c10 : (y > 0)c00 c11 : (y2 + 1 < 0)c02

[−∞/y] [0 + ǫ/y]

c10 ∨ c11 c11

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 30 / 39

slide-162
SLIDE 162

Theory solver:

delete y2 + 1 < 0

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0)

[−∞/x] [3/x]

c10 : (y > 0)c00

[−∞/y] [0 + ǫ/y]

c10 ∨ c11 c11

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 30 / 39

slide-163
SLIDE 163

Theory solver:

delete y2 + 1 < 0

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0)

[−∞/x] [3/x]

c10 : (y > 0)c00

[−∞/y] [0 + ǫ/y]

c10 ∨ c11

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 30 / 39

slide-164
SLIDE 164

Theory solver:

delete y2 + 1 < 0

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0)

[−∞/x] [3/x]

c10 : (y > 0)c00

[−∞/y] [0 + ǫ/y]

c10

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 30 / 39

slide-165
SLIDE 165

SMT solver

∃x, y : ( y = 0 ∨ y2 + 1 < 0 ) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

SAT-solver

c d ( a ∨ b ) ∧ c ∧ d

Boolean abstraction

Theory solver (virtual substitution) xy + 1 < 0 ∧ x − 3 ≤ 0 ∧ y2 + 1 < 0

Theory solver state A

delete y2 + 1 < 0

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 31 / 39

slide-166
SLIDE 166

SMT solver

∃x, y : ( y = 0 ∨ y2 + 1 < 0 ) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

SAT-solver

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

Boolean abstraction

Theory solver (virtual substitution) xy + 1 < 0 ∧ x − 3 ≤ 0 ∧ y = 0

Theory solver state A

add y = 0

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 31 / 39

slide-167
SLIDE 167

SMT solver

∃x, y : ( y = 0 ∨ y2 + 1 < 0 ) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

SAT-solver

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

Boolean abstraction

Theory solver (virtual substitution) xy + 1 < 0 ∧ x − 3 ≤ 0 ∧ y = 0

Theory solver state C consistency check

check consistency answer: inconsistent reason: xy + 1 < 0 ∧ y = 0

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 31 / 39

slide-168
SLIDE 168

SMT solver

∃x, y : ( y = 0 ∨ y2 + 1 < 0 ) ∧ x − 3 ≤ 0 ∧ xy + 1 < 0

SAT-solver

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

Boolean abstraction

UNSAT Theory solver (virtual substitution) xy + 1 < 0 ∧ x − 3 ≤ 0 ∧ y = 0

Theory solver state C

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 31 / 39

slide-169
SLIDE 169

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0)

[−∞/x] [3/x]

c10 : (y > 0)c00

[−∞/y] [0 + ǫ/y]

c10

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-170
SLIDE 170

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c10 : (y > 0)c00

[−∞/y] [0 + ǫ/y]

c10

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-171
SLIDE 171

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c10 : (y > 0)c00 c11 : (y = 0)c02

[−∞/y] [0 + ǫ/y]

c10

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-172
SLIDE 172

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c10 : (y > 0)c00 c11 : (y = 0)c02

[−∞/y] [0 + ǫ/y]

c10 ∨ c11

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-173
SLIDE 173

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c10 : (y > 0)c00 c11 : (y = 0)c02

[−∞/y] [0 + ǫ/y]

c10 ∨ c11 c11

c01 c01 c10 c10 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-174
SLIDE 174

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c10 : (y > 0)c00 c11 : (y = 0)c02

[−∞/y] [0 + ǫ/y] [0/y]

c10 ∨ c11 c11

c01 c01 c10 c10 c11 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-175
SLIDE 175

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c10 : (y > 0)c00 c11 : (y = 0)c02

[−∞/y] [0 + ǫ/y] [0/y]

c10 ∨ c11 c11 c10

c01 c01 c10 c10 c11 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-176
SLIDE 176

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c10 : (y > 0)c00 c11 : (y = 0)c02

[−∞/y] [0 + ǫ/y] [0/y]

c10 ∨ c11 c11 c10

c01 c01 c10 c10 c11 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-177
SLIDE 177

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c00 ∧ c02

c01 c01 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-178
SLIDE 178

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c00 ∧ c02

c12 : (3y + 1 < 0)c00 c13 : (y = 0)c02

c01 c01 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-179
SLIDE 179

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c00 ∧ c02

c12 : (3y + 1 < 0)c00 c13 : (y = 0)c02

[−∞/y] [− 1

3 + ǫ/y] c01 c01 c12 c12 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-180
SLIDE 180

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c00 ∧ c02

c12 : (3y + 1 < 0)c00 c13 : (y = 0)c02

[−∞/y] [− 1

3 + ǫ/y]

c13

c01 c01 c12 c12 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-181
SLIDE 181

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c00 ∧ c02

c12 : (3y + 1 < 0)c00 c13 : (y = 0)c02

[−∞/y] [− 1

3 + ǫ/y]

c13 c12 ∨ c13

c01 c01 c12 c12 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-182
SLIDE 182

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c00 ∧ c02

c12 : (3y + 1 < 0)c00 c13 : (y = 0)c02

[−∞/y] [− 1

3 + ǫ/y]

[0/y]

c13 c12 ∨ c13

c01 c01 c12 c12 c13 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-183
SLIDE 183

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c00 ∧ c02

c12 : (3y + 1 < 0)c00 c13 : (y = 0)c02

[−∞/y] [− 1

3 + ǫ/y]

[0/y]

c13 c12 ∨ c13 c12

c01 c01 c12 c12 c13 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-184
SLIDE 184

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c00 ∧ c02

c12 : (3y + 1 < 0)c00 c13 : (y = 0)c02

[−∞/y] [− 1

3 + ǫ/y]

[0/y]

c13 c12 ∨ c13 c12

c01 c01 c12 c12 c13 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-185
SLIDE 185

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x]

c00 ∧ c02 c00 ∧ c02

c01 c01 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-186
SLIDE 186

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x] [− 1

y + ǫ/x]y0

c00 ∧ c02 c00 ∧ c02

c01 c01 c00 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-187
SLIDE 187

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x] [− 1

y + ǫ/x]y0

c00 ∧ c02 c00 ∧ c02

c14 : (1 + 3y ≤ 0)c01 c15 : (y > 0)c01 c16 : (y = 0)c02 c17 : (y 0)c00 c18 : (1 + 3y ≥ 0)c01 c19 : (y < 0)c01 c1A : (y = 0)c02 c1B : (y 0)c00

c01 c01 c00 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-188
SLIDE 188

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x] [− 1

y + ǫ/x]y0

c00 ∧ c02 c00 ∧ c02

c14 : (1 + 3y ≤ 0)c01 c15 : (y > 0)c01 c16 : (y = 0)c02 c17 : (y 0)c00 c18 : (1 + 3y ≥ 0)c01 c19 : (y < 0)c01 c1A : (y = 0)c02 c1B : (y 0)c00

[−∞/y] [0/y] [− 1

3/y]

[0 + ǫ/y]

c15 ∨ c16 c14 ∨ c15 ∨ c17 c15 ∨ c16 c14 ∨ c16

c01 c01 c00 c

1 6

c16 c14 c

1 5

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-189
SLIDE 189

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x] [− 1

y + ǫ/x]y0

c00 ∧ c02 c00 ∧ c02

c14 : (1 + 3y ≤ 0)c01 c15 : (y > 0)c01 c16 : (y = 0)c02 c17 : (y 0)c00 c18 : (1 + 3y ≥ 0)c01 c19 : (y < 0)c01 c1A : (y = 0)c02 c1B : (y 0)c00

[−∞/y] [0/y] [− 1

3/y]

[0 + ǫ/y]

c15 ∨ c16 c14 ∨ c15 ∨ c17 c15 ∨ c16 c14 ∨ c16

c01 c01 c00 c

1 6

c16 c14 c

1 5

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-190
SLIDE 190

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x] [− 1

y + ǫ/x]y0

c00 ∧ c02 c00 ∧ c02 c00 ∧ c02

c18 : (1 + 3y ≥ 0)c01 c19 : (y < 0)c01 c1A : (y = 0)c02 c1B : (y 0)c00

c01 c01 c00 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-191
SLIDE 191

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x] [− 1

y + ǫ/x]y0

c00 ∧ c02 c00 ∧ c02 c00 ∧ c02 c00 ∧ c02

c01 c01 c00 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-192
SLIDE 192

Theory Solver:

add y = 0, check consistency

c00 : (xy + 1 < 0) c01 : (x − 3 ≤ 0) c02 : (y = 0)

[−∞/x] [3/x] [− 1

y + ǫ/x]y0

c00 ∧ c02 c00 ∧ c02 c00 ∧ c02 c00 ∧ c02

c01 c01 c00 Erika ´ Abrah´ am - SMT solving and Symbolic Computation 32 / 39

slide-193
SLIDE 193

CAD for Rn

A CAD for a set of polynomials from Z[x1, . . . , xn] splits Rn into sign-invariant regions. Projection phase Polynomials over Z[x1, . . . , xn] Polynomials over Z[x1, . . . , xn−1]

. . .

Polynomials over Z[x1] Construction phase CAD for R1

. . .

CAD for Rn−1 CAD for Rn

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 33 / 39

slide-194
SLIDE 194

Some experimental results

We compare:

Z3 (SMT solver, Microsoft) redlog (reference implementation of virtual substitution in Reduce)

SMT-RAT with two strategies.

rat1: CNF Preproc SAT ICP VirtualSub CAD rat2: CNF Preproc SAT SAT Simplex ICP VirtualSub VirtualSub CAD CAD

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 34 / 39

slide-195
SLIDE 195

Some experimental results

Benchmark z3 redlog rat1 rat2 (#examples) # time # time # time # time Hong (20) 40.0% 5.6 30.0% 3.7 100.0% < 1 100.0% < 1

  • sat
  • unsat

8 3.7 6 5.6 20 < 1 20 < 1 Kissing (45) 68.9% 1248.7 13.3% 3.3 35.6% 375.9 28.9% 54.4

  • sat

31 1248.7 6 3.3 16 375.9 13 54.4

  • unsat

Meti-Tarski (7713) 99.9% 405.6 96.6% 11617.9 92.8% 4658.3 95.6% 3109.4

  • sat

5025 140.8 4859 7128.7 4740 2952.1 4815 2290.4

  • unsat

2681 264.8 2590 4489.2 2418 1706.2 2560 819 Zankl (166) 53.0% 267.6 22.3% 178.0 25.9% 217.4 25.9% 101.3

  • sat

61 266.3 27 156.0 27 216.8 26 80.4

  • unsat

27 1.3 10 22.0 16 < 1 17 20.9 Keymaera (421) 99.8% 11.8 99.5% 209.3 96.9% 17 98.1% 25.3

  • sat
  • unsat

420 11.8 419 209.3 408 17 413 25.3 Witness (99) 21.2% 153.5 5.1% 62.1 64.6% 332.2 75.8% 937.9

  • sat

4 106 5 62.1 47 331.9 58 937.6

  • unsat

17 47.5 17 < 1 17 < 1

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 35 / 39

slide-196
SLIDE 196

Upcoming research directions in SMT solving

Improve usability: User-friendly models Dedicated SMT solvers Increase scalability: Performance optimisation (better lemmas, heuristics, cache behaviour, . . . ) Novel combination of decision procedures Parallelisation Extend functionality: Unsatisfiable cores, proofs, interpolants Quantified arithmetic formulas Linear and non-linear (global) optimisation

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 36 / 39

slide-197
SLIDE 197

Two communities, quite disjoint

Symbolic computation SMT solving Research aim Automated computation with formal objects Automated satisfiability checking for combined theories Arithmetic focus Constraint sets Exact, complete Boolean structures Exact, efficient Tools Computer algebra systems Large, general-purpose SAT and SMT solvers Small, dedicated Conf. ACA, CASC, ISSAC, . . . CADE, SAT, SMT, . . . Groups SIGSAM SMT-LIB, SAT Live! Journals

  • J. Symb. Comput., AAECC,

ACM Comm. in Computer Algebra (SIGSAM Bulletin)

  • J. on Satisfiability, Boolean Mod-

eling and Computation

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 37 / 39

slide-198
SLIDE 198

A forthcoming Dagstuhl Seminar

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 38 / 39

slide-199
SLIDE 199

Conclusion: More interactions desirable

Future Directions for Research in Symbolic Computation

“More interactions are desirable between mathematicians and computer scientists interested in symbolic computation, between researchers in numerical and symbolic computing, and between software builders and users.”

Report of a Workshop on Symbolic and Algebraic Computation, 1988 Ann Boyle and B. F. Caviness, Editors; Anthony C. Hearn, Workshop Chairperson

Erika ´ Abrah´ am - SMT solving and Symbolic Computation 39 / 39