Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
SMT Solving for AI Planning:Theory, Tools and Applications
Erika Abraham Francesco LeofanteRWTH Aachen University, Germany RWTH Aachen University, Germany
University of Genoa, Italy
ICAPS 2018
Delft, The Netherlands
25 June 2018
About us
ErikaFull professor
FrancescoPh.D. Student
Theory of Hybrid Systems @ RWTHhttps://ths.rwth-aachen.de
Resources for this tutorialhttps://ths.rwth-aachen.de/research/talks/smt4planning
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 2 / 74
What is this tutorial about?
¬a ∧ b ∨ c
� +�√ϕ
�
��
What is satisfiability checking?
âHow does SMT solving work?
Planning problem
Plan
How to use it for planning?
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 3 / 74
What is this tutorial about?
¬a ∧ b ∨ c
� +�√ϕ
�
��
What is satisfiability checking?
âHow does SMT solving work?
Planning problem
Plan
How to use it for planning?
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 3 / 74
What is this tutorial about?
¬a ∧ b ∨ c
� +�√ϕ
�
��
What is satisfiability checking?
â
How does SMT solving work?
Planning problem
Plan
How to use it for planning?
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 3 / 74
Outline
SMT solving
I Historical notes
II SAT and SMT solving
III Some applications outside planning
SMT solving for planning
IV SMT and planning
V Application: optimal planning with OMT
Concluding remarks
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 4 / 74
Outline
SMT solving
I Historical notes
II SAT and SMT solving
III Some applications outside planning
SMT solving for planning
IV SMT and planning
V Application: optimal planning with OMT
Concluding remarks
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 5 / 74
The satisfiability problem
Propositional logicFormula: (a ∨ ¬b) ∧ (¬a ∨ b ∨ c)Satisfying assignment: a = true, b = false, c = true
It is perhaps the most well-known NP-complete problem [Cook, 1971].
Non-linear real algebra (NRA)Formula: (x − 2y > 0 ∨ x2 − 2 = 0) ∧ x4y + 2x2 − 4 > 0
Satisfying assignment: x =√
2, y = 2
There are some hard problem classes... non-linear integer arithmetic iseven undecidable.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 6 / 74
The satisfiability problem
Propositional logicFormula: (a ∨ ¬b) ∧ (¬a ∨ b ∨ c)Satisfying assignment: a = true, b = false, c = true
It is perhaps the most well-known NP-complete problem [Cook, 1971].
Non-linear real algebra (NRA)Formula: (x − 2y > 0 ∨ x2 − 2 = 0) ∧ x4y + 2x2 − 4 > 0
Satisfying assignment: x =√
2, y = 2
There are some hard problem classes... non-linear integer arithmetic iseven undecidable.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 6 / 74
Tool development (incomplete!)
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
“We have success stories of using zChaff to solve problems with morethan one million variables and 10 million clauses.(Of course, it can’t solve every such problem!).” [zch, ]
“The efficiency of our programs allowed us to solve over one hundredopen quasigroup problems in design theory.” [SATO webpage, ]
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 7 / 74
Tool development (incomplete!)
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
“We have success stories of using zChaff to solve problems with morethan one million variables and 10 million clauses.(Of course, it can’t solve every such problem!).” [zch, ]
“The efficiency of our programs allowed us to solve over one hundredopen quasigroup problems in design theory.” [SATO webpage, ]
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 7 / 74
Tool development (incomplete!)
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
“We have success stories of using zChaff to solve problems with morethan one million variables and 10 million clauses.(Of course, it can’t solve every such problem!).” [zch, ]
“The efficiency of our programs allowed us to solve over one hundredopen quasigroup problems in design theory.” [SATO webpage, ]
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 7 / 74
Tool development (incomplete!)
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
“We have success stories of using zChaff to solve problems with morethan one million variables and 10 million clauses.(Of course, it can’t solve every such problem!).” [zch, ]
“The efficiency of our programs allowed us to solve over one hundredopen quasigroup problems in design theory.” [SATO webpage, ]
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 7 / 74
Satisfiability checking for propositional logic
Success story: SAT-solving
Practical problems with millions of variables are solvable.
A wide range of applications, e.g., verification, synthesis,combinatorial optimization, etc.
Community support:
Standard input language.
Large benchmark library.
Competitions since 2002.
2017: 6 tracks, 28 solvers in the main track.
SAT Live! forum as community platform, dedicated conferences,journals, etc.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 8 / 74
Satisfiability checking for propositional logic
Success story: SAT-solving
Practical problems with millions of variables are solvable.
A wide range of applications, e.g., verification, synthesis,combinatorial optimization, etc.
Community support:
Standard input language.
Large benchmark library.
Competitions since 2002.
2017: 6 tracks, 28 solvers in the main track.
SAT Live! forum as community platform, dedicated conferences,journals, etc.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 8 / 74
An impression of the SAT solver development
Source: The International SAT Solver Competitions [Jarvisalo et al., 2012]
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 9 / 74
Tool development (incomplete!)
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
“We have success stories of using zChaff to solve problems with morethan one million variables and 10 million clauses.(Of course, it can’t solve every such problem!).” [zch, ]
“The efficiency of our programs allowed us to solve over one hundredopen quasigroup problems in design theory.” [SATO webpage, ]
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 10 / 74
Tool development (incomplete!)
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
“We have success stories of using zChaff to solve problems with morethan one million variables and 10 million clauses.(Of course, it can’t solve every such problem!).” [zch, ]
“The efficiency of our programs allowed us to solve over one hundredopen quasigroup problems in design theory.” [SATO webpage, ]
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 10 / 74
Google Scholar search for “SAT modulo theories”
500
1000
1500
2000
2500
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 11 / 74
Satisfiability modulo theories (SMT) solving
Satisfiability modulo theories (SMT) solving:
Propositional logic is sometimes too weak for modeling.
Increase expressiveness: quantifier-free (QF) fragments offirst-order logic over various theories.
Community support:
SMT-LIB: standard input language since 2004.
Large (∼ 250.000) benchmark library.
Competitions since 2005.
2017: 26 solvers in the main track.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 12 / 74
Satisfiability modulo theories (SMT) solving
Satisfiability modulo theories (SMT) solving:
Propositional logic is sometimes too weak for modeling.
Increase expressiveness: quantifier-free (QF) fragments offirst-order logic over various theories.
Community support:
SMT-LIB: standard input language since 2004.
Large (∼ 250.000) benchmark library.
Competitions since 2005.
2017: 26 solvers in the main track.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 12 / 74
SMT-LIB logics
Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)Quantifier-free bit-vector arithmetic
( a|b ) ≤ ( a&b )Quantifier-free array theory
i = j → read(write(a, i, v), j) = vQuantifier-free integer/rational difference logic
x − y ∼ 0, ∼∈ {<,≤,=,≥, >}(Quantifier-free) real/integer linear arithmetic
3x + 7y = 8(Quantifier-free) real/integer non-linear arithmetic
x2 + 2xy + y2 ≥ 0Combined theories
2f (x) + 5y > 0
Source: http://smtlib.cs.uiowa.edu/logics.shtml
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 13 / 74
SMT-LIB logics
Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)
Quantifier-free bit-vector arithmetic( a|b ) ≤ ( a&b )
Quantifier-free array theoryi = j → read(write(a, i, v), j) = v
Quantifier-free integer/rational difference logicx − y ∼ 0, ∼∈ {<,≤,=,≥, >}
(Quantifier-free) real/integer linear arithmetic3x + 7y = 8
(Quantifier-free) real/integer non-linear arithmeticx2 + 2xy + y2 ≥ 0
Combined theories2f (x) + 5y > 0
Source: http://smtlib.cs.uiowa.edu/logics.shtml
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 13 / 74
SMT-LIB logics
Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)
Quantifier-free bit-vector arithmetic( a|b ) ≤ ( a&b )
Quantifier-free array theoryi = j → read(write(a, i, v), j) = v
Quantifier-free integer/rational difference logicx − y ∼ 0, ∼∈ {<,≤,=,≥, >}
(Quantifier-free) real/integer linear arithmetic3x + 7y = 8
(Quantifier-free) real/integer non-linear arithmeticx2 + 2xy + y2 ≥ 0
Combined theories2f (x) + 5y > 0
Source: http://smtlib.cs.uiowa.edu/logics.shtml
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 13 / 74
SMT-LIB logics
Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)Quantifier-free bit-vector arithmetic
( a|b ) ≤ ( a&b )
Quantifier-free array theoryi = j → read(write(a, i, v), j) = v
Quantifier-free integer/rational difference logicx − y ∼ 0, ∼∈ {<,≤,=,≥, >}
(Quantifier-free) real/integer linear arithmetic3x + 7y = 8
(Quantifier-free) real/integer non-linear arithmeticx2 + 2xy + y2 ≥ 0
Combined theories2f (x) + 5y > 0
Source: http://smtlib.cs.uiowa.edu/logics.shtml
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 13 / 74
SMT-LIB logics
Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)Quantifier-free bit-vector arithmetic
( a|b ) ≤ ( a&b )Quantifier-free array theory
i = j → read(write(a, i, v), j) = v
Quantifier-free integer/rational difference logicx − y ∼ 0, ∼∈ {<,≤,=,≥, >}
(Quantifier-free) real/integer linear arithmetic3x + 7y = 8
(Quantifier-free) real/integer non-linear arithmeticx2 + 2xy + y2 ≥ 0
Combined theories2f (x) + 5y > 0
Source: http://smtlib.cs.uiowa.edu/logics.shtml
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 13 / 74
SMT-LIB logics
Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)Quantifier-free bit-vector arithmetic
( a|b ) ≤ ( a&b )Quantifier-free array theory
i = j → read(write(a, i, v), j) = vQuantifier-free integer/rational difference logic
x − y ∼ 0, ∼∈ {<,≤,=,≥, >}
(Quantifier-free) real/integer linear arithmetic3x + 7y = 8
(Quantifier-free) real/integer non-linear arithmeticx2 + 2xy + y2 ≥ 0
Combined theories2f (x) + 5y > 0
Source: http://smtlib.cs.uiowa.edu/logics.shtml
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 13 / 74
SMT-LIB logics
Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)Quantifier-free bit-vector arithmetic
( a|b ) ≤ ( a&b )Quantifier-free array theory
i = j → read(write(a, i, v), j) = vQuantifier-free integer/rational difference logic
x − y ∼ 0, ∼∈ {<,≤,=,≥, >}(Quantifier-free) real/integer linear arithmetic
3x + 7y = 8
(Quantifier-free) real/integer non-linear arithmeticx2 + 2xy + y2 ≥ 0
Combined theories2f (x) + 5y > 0
Source: http://smtlib.cs.uiowa.edu/logics.shtml
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 13 / 74
SMT-LIB logics
Quantifier-free equality logic with uninterpreted functions( a = c ∧ b = d ) → f (a, b) = f (c, d)Quantifier-free bit-vector arithmetic
( a|b ) ≤ ( a&b )Quantifier-free array theory
i = j → read(write(a, i, v), j) = vQuantifier-free integer/rational difference logic
x − y ∼ 0, ∼∈ {<,≤,=,≥, >}(Quantifier-free) real/integer linear arithmetic
3x + 7y = 8(Quantifier-free) real/integer non-linear arithmetic
x2 + 2xy + y2 ≥ 0
Combined theories2f (x) + 5y > 0
Source: http://smtlib.cs.uiowa.edu/logics.shtml
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 13 / 74
Outline
SMT solving
I Historical notes
II SAT and SMT solving
III Some applications outside planning
SMT solving for planning
IV SMT and planning
V Application: optimal planning with OMT
Concluding remarks
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 14 / 74
Strategic combinations of decision procedures
+ ?=!=
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 15 / 74
Strategic combinations of decision procedures
+ ?=
!=
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 15 / 74
Strategic combinations of decision procedures
+ ?=
!=
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 15 / 74
Strategic combinations of decision procedures
+
?=
!=
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 15 / 74
DPLL SAT solving with conflict-directed clause learning
Assumption: propositional logic formula in conjunctive normal form (CNF)
Assumption: propositional logic formula in conjunctive normal form (CNF)
Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
. . .1 0
1 0
1 0 1 0
ab
c
0
ab
c
0 0
ab
c c
0 0 0
ab
c c
0 0 0 0
aab
0
ab
c
00
0
c3 : (¬b ∨ c) c2 : (¬b ∨ ¬c)c4 : (¬b) Resolution
c4 : ( ¬b )∧
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 16 / 74
DPLL SAT solving with conflict-directed clause learning
Assumption: propositional logic formula in conjunctive normal form (CNF)
Assumption: propositional logic formula in conjunctive normal form (CNF)
Ingredients: Enumeration
Ingredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
. . .1 0
1 0
1 0 1 0
ab
c
0
ab
c
0 0
ab
c c
0 0 0
ab
c c
0 0 0 0
aab
0
ab
c
00
0
c3 : (¬b ∨ c) c2 : (¬b ∨ ¬c)c4 : (¬b) Resolution
c4 : ( ¬b )∧
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 16 / 74
DPLL SAT solving with conflict-directed clause learning
Assumption: propositional logic formula in conjunctive normal form (CNF)
Assumption: propositional logic formula in conjunctive normal form (CNF)
Ingredients: Enumeration
Ingredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
. . .1 0
1 0
1 0 1 0
ab
c
0
ab
c
0 0
ab
c c
0 0 0
ab
c c
0 0 0 0
aab
0
ab
c
00
0
c3 : (¬b ∨ c) c2 : (¬b ∨ ¬c)c4 : (¬b) Resolution
c4 : ( ¬b )∧
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 16 / 74
DPLL SAT solving with conflict-directed clause learning
Assumption: propositional logic formula in conjunctive normal form (CNF)
Assumption: propositional logic formula in conjunctive normal form (CNF)
Ingredients: Enumeration
Ingredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
. . .1 0
1 0
1 0 1 0
ab
c
0
ab
c
0 0
ab
c c
0 0 0
ab
c c
0 0 0 0
aab
0
ab
c
00
0
c3 : (¬b ∨ c) c2 : (¬b ∨ ¬c)c4 : (¬b) Resolution
c4 : ( ¬b )∧
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 16 / 74
DPLL SAT solving with conflict-directed clause learning
Assumption: propositional logic formula in conjunctive normal form (CNF)
Assumption: propositional logic formula in conjunctive normal form (CNF)
Ingredients: Enumeration
Ingredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
. . .1 0
1 0
1 0 1 0
ab
c
0
ab
c
0 0
ab
c c
0 0 0
ab
c c
0 0 0 0
aab
0
ab
c
00
0
c3 : (¬b ∨ c) c2 : (¬b ∨ ¬c)c4 : (¬b) Resolution
c4 : ( ¬b )∧
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 16 / 74
DPLL SAT solving with conflict-directed clause learning
Assumption: propositional logic formula in conjunctive normal form (CNF)
Assumption: propositional logic formula in conjunctive normal form (CNF)
Ingredients: Enumeration
Ingredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
. . .1 0
1 0
1 0 1 0
ab
c
0
ab
c
0 0
ab
c c
0 0 0
ab
c c
0 0 0 0
aab
0
ab
c
00
0
c3 : (¬b ∨ c) c2 : (¬b ∨ ¬c)c4 : (¬b) Resolution
c4 : ( ¬b )∧
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 16 / 74
DPLL SAT solving with conflict-directed clause learning
Assumption: propositional logic formula in conjunctive normal form (CNF)
Assumption: propositional logic formula in conjunctive normal form (CNF)
Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagation
Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
. . .1 0
1 0
1 0 1 0
ab
c
0
ab
c
0 0
ab
c c
0 0 0
ab
c c
0 0 0 0
aab
0
ab
c
00
0
c3 : (¬b ∨ c) c2 : (¬b ∨ ¬c)c4 : (¬b) Resolution
c4 : ( ¬b )∧
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 16 / 74
DPLL SAT solving with conflict-directed clause learning
Assumption: propositional logic formula in conjunctive normal form (CNF)
Assumption: propositional logic formula in conjunctive normal form (CNF)
Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagation
Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
. . .1 0
1 0
1 0 1 0
ab
c
0
ab
c
0 0
ab
c c
0 0 0
ab
c c
0 0 0 0
a
ab
0
ab
c
00
0
c3 : (¬b ∨ c) c2 : (¬b ∨ ¬c)c4 : (¬b) Resolution
c4 : ( ¬b )∧
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 16 / 74
DPLL SAT solving with conflict-directed clause learning
Assumption: propositional logic formula in conjunctive normal form (CNF)
Assumption: propositional logic formula in conjunctive normal form (CNF)
Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagation
Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
. . .1 0
1 0
1 0
1 0
ab
c
0
ab
c
0 0
ab
c c
0 0 0
ab
c c
0 0 0 0
a
ab
0
ab
c
00
0
c3 : (¬b ∨ c) c2 : (¬b ∨ ¬c)c4 : (¬b) Resolution
c4 : ( ¬b )∧
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 16 / 74
DPLL SAT solving with conflict-directed clause learning
Assumption: propositional logic formula in conjunctive normal form (CNF)
Assumption: propositional logic formula in conjunctive normal form (CNF)
Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagation
Ingredients: Enumeration + Boolean constraint propagation + Resolution
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
. . .1 0
1 0
1 0
1 0
ab
c
0
ab
c
0 0
ab
c c
0 0 0
ab
c c
0 0 0 0
aab
0
ab
c
00
0
c3 : (¬b ∨ c) c2 : (¬b ∨ ¬c)c4 : (¬b) Resolution
c4 : ( ¬b )∧
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 16 / 74
DPLL SAT solving with conflict-directed clause learning
Assumption: propositional logic formula in conjunctive normal form (CNF)
Assumption: propositional logic formula in conjunctive normal form (CNF)
Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
. . .1 0
1 0
1 0
1 0
ab
c
0
ab
c
0 0
ab
c c
0 0 0
ab
c c
0 0 0 0
aab
0
ab
c
00
0
c3 : (¬b ∨ c) c2 : (¬b ∨ ¬c)c4 : (¬b) Resolution
c4 : ( ¬b )∧
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 16 / 74
Resolution
Assumption: propositional logic formula in conjunctive normal form (CNF)
Derivation rule form:
antecedent1 . . . antecedentnconsequent 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
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 17 / 74
Resolution
Assumption: propositional logic formula in conjunctive normal form (CNF)
Derivation rule form:
antecedent1 . . . antecedentnconsequent 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
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 17 / 74
Resolution
Assumption: propositional logic formula in conjunctive normal form (CNF)
Derivation rule form:
antecedent1 . . . antecedentnconsequent 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
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 17 / 74
Resolution
Assumption: propositional logic formula in conjunctive normal form (CNF)
Derivation rule form:
antecedent1 . . . antecedentnconsequent 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
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 17 / 74
DPLL SAT solving with conflict-directed clause learning
Assumption: propositional logic formula in conjunctive normal form (CNF)
Assumption: propositional logic formula in conjunctive normal form (CNF)
Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
. . .1 0
1 0
1 0
1 0
ab
c
0
ab
c
0 0
ab
c c
0 0 0
ab
c c
0 0 0 0
aab
0
ab
c
00
0
c3 : (¬b ∨ c) c2 : (¬b ∨ ¬c)c4 : (¬b) Resolution
c4 : ( ¬b )∧
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 18 / 74
DPLL SAT solving with conflict-directed clause learning
Assumption: propositional logic formula in conjunctive normal form (CNF)
Assumption: propositional logic formula in conjunctive normal form (CNF)
Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
. . .1 0
1 0
1 0
1 0
ab
c
0
ab
c
0 0
ab
c c
0 0 0
ab
c c
0 0 0 0
aab
0
ab
c
00
0
c3 : (¬b ∨ c) c2 : (¬b ∨ ¬c)c4 : (¬b) Resolution
c4 : ( ¬b )∧
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 18 / 74
DPLL SAT solving with conflict-directed clause learning
Assumption: propositional logic formula in conjunctive normal form (CNF)
Assumption: propositional logic formula in conjunctive normal form (CNF)
Ingredients: EnumerationIngredients: Enumeration + Boolean constraint propagationIngredients: Enumeration + Boolean constraint propagation + Resolution
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
. . .1 0
1 0
1 0
1 0
ab
c
0
ab
c
0 0
ab
c c
0 0 0
ab
c c
0 0 0 0
aab
0
ab
c
00
0
c3 : (¬b ∨ c) c2 : (¬b ∨ ¬c)c4 : (¬b) Resolution
c4 : ( ¬b )∧
c1 : ( ¬a ∨ b )∧c2 : ( ¬b ∨ ¬c )∧c3 : ( ¬b ∨ c )∧
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 18 / 74
(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
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 19 / 74
Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
SAT solver
Theory solver(s)
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
SAT solver
Theory solver(s)
¬a
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d )
SAT solver
Theory solver(s)
¬a, b
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
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
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
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
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
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
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
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
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
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
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
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)
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
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)
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)
SAT solver
Theory solver(s)
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)
SAT solver
Theory solver(s)
¬d
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
Less lazy SMT solving
(x < 0 ∨ x > 2) ∧ (x2 = 1 ∨ x2 < 0)
( a ∨ b ) ∧ ( c ∨ d ) ∧ (¬d)
SAT solver
Theory solver(s)
¬d, c
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
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
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
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
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
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
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 74
Model constructing satisfiability calculus (MCSAT)
B-decision
T-decision
B-propagation
T-propagation
B-conflict resolution
T-conflict resolution
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 21 / 74
Model constructing satisfiability calculus (MCSAT)
B-decision T-decision
B-propagation T-propagation
B-conflict resolution T-conflict resolution
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 21 / 74
Optimization modulo theories (full lazy case)
ϕ + objective fquantifier-free FO formula
Boolean abstractionTseitin’s transformation
ϕ′ propositional logic formula in CNF
SAT solver
Theory solver(s)
theory constraints + fSAT + µopt: ϕ := ϕ ∧ f ∼ µopt
orUNSAT + lemmas
(SAT + µopt) or UNSAT
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 22 / 74
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)
Interval constraint propagation(incomplete)
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 23 / 74
Problem solved?
Can we simply plug in available implementations of such methods astheory solvers into an SMT solver?
Theory solvers should be SMT-compliant, i.e.,they should
work incrementally,
generate lemmas explaininginconsistencies, and
be able to backtrack.
ϕ 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
Originally, the mentioned methods are not SMT-compliant.
SMT-adaptations can be tricky, but can lead to beautiful novel algorithms.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 24 / 74
Problem solved?
Can we simply plug in available implementations of such methods astheory solvers into an SMT solver?
Theory solvers should be SMT-compliant, i.e.,they should
work incrementally,
generate lemmas explaininginconsistencies, and
be able to backtrack.
ϕ 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
Originally, the mentioned methods are not SMT-compliant.
SMT-adaptations can be tricky, but can lead to beautiful novel algorithms.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 24 / 74
Problem solved?
Can we simply plug in available implementations of such methods astheory solvers into an SMT solver?
Theory solvers should be SMT-compliant, i.e.,they should
work incrementally,
generate lemmas explaininginconsistencies, and
be able to backtrack.
ϕ 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
Originally, the mentioned methods are not SMT-compliant.
SMT-adaptations can be tricky, but can lead to beautiful novel algorithms.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 24 / 74
Satisfiability checking and symbolic computationBridging two communities to solve real problems
http://www.sc-square.org/CSA/welcome.html
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 25 / 74
Some popular SMT solvers (incomplete!)
AProVE (RWTH Aachen University, Germany) [Giesl et al., 2004]
CVC4 (New York and Iowa, USA) [Deters et al., 2014]
MathSAT 5 (FBK, Italy) [Cimatti et al., 2013]
MiniSmt (University of Innsbruck, Austria) [Zankl and Middeldorp, 2010]
Boolector (JKU, Austria) [Niemetz et al., 2014]
SMT-RAT (RWTH Aachen University, Germany) [Corzilius et al., 2012]
Z3 (NYU, Microsoft Research, USA) [de Moura and Bjørner, 2008]
Yices 2 (SRI International, USA) [Dutertre, 2014]
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 26 / 74
Our SMT-RAT library [Corzilius et al., 2012, Corzilius et al., 2015]
SMT solver
Strategic composition of SMT-RAT modules
SMT real-algebraic toolbox
collection of solver modules
CArL
real-arithmeticcomputations
gmp, Eigen3, boost
MIT licensed source code: github.com/smtrat/smtratDocumentation: smtrat.github.io
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 27 / 74
Strategic composition of solver modules in SMT-RAT
Strategy: directed graph over modules with guarded edges
Guard: may talk about the formula forwarded to backends
Backend-calls: passed to all enabled successors→ parallelism
ManagerStrategy
ConditionCondition Condition. . .
Module Module Module Module . . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 28 / 74
SMT-RAT modules
Module
Implements
add(Formula)
remove(Formula)
check()
updateModel()
check() may
forward (sub-)problems tobackend modules
return sat or unsat
return a lemma or split
return unknown
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 29 / 74
SMT-RAT modules
Module
Implements
add(Formula)
remove(Formula)
check()
updateModel()
check() may
forward (sub-)problems tobackend modules
return sat or unsat
return a lemma or split
return unknown
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 29 / 74
Solver modules in SMT-RAT [Corzilius et al., 2012, Corzilius et al., 2015]
CArL library for basic arithmetic datatypes and computations [NFM’11, CAI’11, Sapientia’18]
Basic modules
SAT solver CNF converter Preprocessing/simplifying modules
Non-algebraic decision procedures Bit-vectors Bit-blasting
Equalities and uninterpreted functions Pseudo-Boolean formulas
Interval constraint propagation
Algebraic decision procedures Fourier-Motzkin variable elimination Simplex
Subtropical satisfiability Grobner bases [CAI’13] MCSAT (FM,VS,CAD)
Cylindrical algebraic decomposition [CADE-24, SC2’17, PhD Loup, PhD Kremer]
Virtual substitution [FCT’11, SC2’17, PhD Corzilius]
Generalized branch-and-bound [CASC’16] Cube tests
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 30 / 74
SMT-RAT strategies
class myStrategy: public Manager {
myStrategy(): Manager() {
setStrategy(
addBackend<SATModule<SATSettings>>(addBackend<CADModule<CADSettings>>())
);
}
};
Preprocessing
Bit-blasting
SAT
ICP
VS
CAD
SimplexBranch and bound
Simplex
nonlinear real
nonlinear real
nonlinear realnonlinear reallinear reallinear integer
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 31 / 74
SMT-RAT strategies
class myStrategy: public Manager {
myStrategy(): Manager() {
setStrategy(
addBackend<SATModule<SATSettings>>(addBackend<CADModule<CADSettings>>())
);
}
};
Preprocessing
Bit-blasting
SAT
ICP
VS
CAD
SimplexBranch and bound
Simplex
nonlinear real
nonlinear real
nonlinear realnonlinear reallinear reallinear integer
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 31 / 74
SMT-RAT strategies
class myStrategy: public Manager {
myStrategy(): Manager() {
setStrategy(
addBackend<SATModule<SATSettings>>(addBackend<CADModule<CADSettings>>())
);
}
};
Preprocessing
Bit-blasting
SAT
ICP
VS
CAD
SimplexBranch and bound
Simplex
nonlinear real
nonlinear real
nonlinear realnonlinear reallinear reallinear integer
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 31 / 74
SMT-RAT strategies
class myStrategy: public Manager {
myStrategy(): Manager() {
setStrategy(
addBackend<SATModule<SATSettings>>(addBackend<CADModule<CADSettings>>())
);
}
};
Preprocessing
Bit-blasting
SAT
ICP
VS
CAD
SimplexBranch and bound
Simplexnonlinear real
nonlinear real
nonlinear realnonlinear reallinear reallinear integer
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 31 / 74
SMT-RAT strategies
class myStrategy: public Manager {
myStrategy(): Manager() {
setStrategy(
addBackend<SATModule<SATSettings>>(addBackend<CADModule<CADSettings>>())
);
}
};
Preprocessing
Bit-blasting
SAT
ICP
VS
CAD
SimplexBranch and bound
Simplexnonlinear real
nonlinear real
nonlinear real
nonlinear reallinear reallinear integer
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 31 / 74
SMT-RAT strategies
class myStrategy: public Manager {
myStrategy(): Manager() {
setStrategy(
addBackend<SATModule<SATSettings>>(addBackend<CADModule<CADSettings>>())
);
}
};
Preprocessing
Bit-blasting
SAT
ICP
VS
CAD
Simplex
Branch and bound
Simplexnonlinear real
nonlinear real
nonlinear real
nonlinear reallinear real
linear integer
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 31 / 74
SMT-RAT strategies
class myStrategy: public Manager {
myStrategy(): Manager() {
setStrategy(
addBackend<SATModule<SATSettings>>(addBackend<CADModule<CADSettings>>())
);
}
};
Preprocessing
Bit-blasting
SAT
ICP
VS
CAD
SimplexBranch and bound
Simplex
nonlinear real
nonlinear real
nonlinear real
nonlinear reallinear reallinear integer
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 31 / 74
Building an SMT solver from SMT-RAT modules
1 Download and build CArL & SMT-RAThttp://smtrat.github.io/carl/getting_started.html
2 Optionally: Extend it with custom modules and strategies
3 Select a strategy$ cmake -D SMTRAT Strategy=CADOnly ../
4 Build SMT-RAT$ make smtrat
5 Run it$ ./smtrat input.smt2
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 32 / 74
Outline
SMT solving
I Historical notes
II SAT and SMT solving
III Some applications outside planning
SMT solving for planning
IV SMT and planning
V Application: optimal planning with OMT
Concluding remarks
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 33 / 74
SMT applications
model checking
termination analysis
runtime verification
test case generation
controller synthesis
predicate abstraction
equivalence checking
scheduling
planning
deployment optimisation on the cloud
product design automation
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 34 / 74
Embedding SAT/SMT solvers
Softwareengine
ProblemLogicalproblem
specification
SAT/SMTsolver
Solution
Environment
Encoding: SAT/SMT-LIB standardelaborate encoding is extremely important!
standard input syntax→ free solver choice
In the following: applications of SMT solvers
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 35 / 74
Embedding SAT/SMT solvers
Softwareengine
ProblemLogicalproblem
specification
SAT/SMTsolver
Solution
Environment
Encoding: SAT/SMT-LIB standardelaborate encoding is extremely important!
standard input syntax→ free solver choice
In the following: applications of SMT solvers
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 35 / 74
Embedding SAT/SMT solvers
Softwareengine
ProblemLogicalproblem
specification
SAT/SMTsolver
Solution
Environment
Encoding: SAT/SMT-LIB standardelaborate encoding is extremely important!
standard input syntax→ free solver choice
In the following: applications of SMT solvers
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 35 / 74
Embedding SAT/SMT solvers
Softwareengine
ProblemLogicalproblem
specification
SAT/SMTsolver
Solution
Environment
Encoding: SAT/SMT-LIB standardelaborate encoding is extremely important!
standard input syntax→ free solver choice
In the following: applications of SMT solvers
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 35 / 74
Bounded model checking for C/C++ [Kroening and Tautschnig, 2014]
Logical encoding of finite paths
Encoding idea: Init(s0) ∧ Trans(s0, s1) ∧ . . . ∧ Trans(sk−1, sk) ∧ Bad(s0, . . . , sk)
Application examples:Error localisation and explanationEquivalence checkingTest case generationWorst-case execution time
Source: D. Kroening. CBMC home page. http://www.cprover.org/cbmc/
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 36 / 74
Bounded model checking for C/C++ [Kroening and Tautschnig, 2014]
Logical encoding of finite paths
Encoding idea: Init(s0) ∧ Trans(s0, s1) ∧ . . . ∧ Trans(sk−1, sk) ∧ Bad(s0, . . . , sk)
Application examples:Error localisation and explanationEquivalence checkingTest case generationWorst-case execution time
Source: D. Kroening. CBMC home page. http://www.cprover.org/cbmc/
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 36 / 74
Bounded model checking for C/C++ [Kroening and Tautschnig, 2014]
Logical encoding of finite paths
Encoding idea: Init(s0) ∧ Trans(s0, s1) ∧ . . . ∧ Trans(sk−1, sk) ∧ Bad(s0, . . . , sk)
Application examples:Error localisation and explanationEquivalence checkingTest case generationWorst-case execution time
Source: D. Kroening. CBMC home page. http://www.cprover.org/cbmc/
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 36 / 74
Bounded model checking for C/C++ [Kroening and Tautschnig, 2014]
Logical encoding of finite paths
Encoding idea: Init(s0) ∧ Trans(s0, s1) ∧ . . . ∧ Trans(sk−1, sk) ∧ Bad(s0, . . . , sk)
Application examples:Error localisation and explanationEquivalence checkingTest case generationWorst-case execution time
Source: D. Kroening. CBMC home page. http://www.cprover.org/cbmc/
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 36 / 74
Hybrid systems reachability analysis [Kong et al., 2015]
Source: D. Bryce, J. Sun, P. Zuliani, Q. Wang, S. Gao, F. Shmarov, S. Kong, W. Chen, Z. Tavares.
dReach home page. http://dreal.github.io/dReach/E. Abraham, F. Leofante ICAPS’18 June 25, 2018 37 / 74
Termination analysis for programs [Stroder et al., 2015]
Term rewrite system
Term rewrite system
Dependency pairs
Chains
Logical encoding for well-founded orders.
Source: T. Stroder, C. Aschermann, F. Frohn, J. Hensel, J. Giesl.
AProVE: Termination and memory safety of C programs (competition contribution).
In Proc. TACAS’15.E. Abraham, F. Leofante ICAPS’18 June 25, 2018 38 / 74
Termination analysis for programs [Stroder et al., 2015]
Term rewrite system
Term rewrite system
Dependency pairs
Chains
Logical encoding for well-founded orders.
Source: T. Stroder, C. Aschermann, F. Frohn, J. Hensel, J. Giesl.
AProVE: Termination and memory safety of C programs (competition contribution).
In Proc. TACAS’15.E. Abraham, F. Leofante ICAPS’18 June 25, 2018 38 / 74
Termination analysis for programs [Stroder et al., 2015]
Term rewrite system
Term rewrite system
Dependency pairs
Chains
Logical encoding for well-founded orders.
Source: T. Stroder, C. Aschermann, F. Frohn, J. Hensel, J. Giesl.
AProVE: Termination and memory safety of C programs (competition contribution).
In Proc. TACAS’15.E. Abraham, F. Leofante ICAPS’18 June 25, 2018 38 / 74
jUnitRV : Runtime verification of multi-threaded,object-oriented systems [Decker et al., 2016]
Properties: linear temporal logics enriched with first-order theoriesMethod: SMT solving + classical monitoring
Source: N. Decker, M. Leucker, D. Thoma.
Monitoring modulo theories.
International Journal on Software Tools for Technology Transfer, 18(2):205-225, April 2016.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 39 / 74
Scheduling [Ansotegui et al., 2011]
Source: C. Ansotegui, M. Bofill, M. Palahı, J. Suy, M. Villaret.
Satisfiability modulo theories: An efficient approach for the resource-constrained project
scheduling problem.
Proc. of SARA’11.E. Abraham, F. Leofante ICAPS’18 June 25, 2018 40 / 74
Deployment optimisation on the cloud [Abraham et al., 2016]
Location (e.g, VMs, PCs, ...)Depoloyable Components
User Constraints
WordPress
MySQL
HTTP_Load_Balancer
HTTP_Load_Balancer_1
WordPress_3
MySQL_2
MySQL_1
WordPress_2
WordPress_1
Source: E. Abraham, F. Corzilius, E. Broch Johnsen, G. Kremer, J. Mauro.
Zephyrus2: On the fly deployment optimization using SMT and CP technologies.
SETTA’16.E. Abraham, F. Leofante ICAPS’18 June 25, 2018 41 / 74
Parameter synthesis for probabilistic systems [Dehnert et al., 2015]
Source: C. Dehnert, S. Junges, N. Jansen, F. Corzilius, M. Volk, H. Bruintjes, J.-P. Katoen, E. Abraham.
PROPhESY: A probabilistic parameter synthesis tool.
In Proc. of CAV’15.E. Abraham, F. Leofante ICAPS’18 June 25, 2018 42 / 74
Outline
SMT solving
I Historical notes
II SAT and SMT solving
III Some applications outside planning
SMT solving for planning
IV SMT and planning
V Application: optimal planning with OMT
Concluding remarks
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 43 / 74
From planning to satisfiability checking
Classical planning
�
?
� restrict search for a plan to paths with (predetermined) bound
Reductions of planning to SAT
linear encodings [Kautz and Selman, 1992]
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 44 / 74
From planning to satisfiability checking
Classical planning
�
?
� restrict search for a plan to paths with (predetermined) bound
Reductions of planning to SAT
linear encodings [Kautz and Selman, 1992]
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 44 / 74
From planning to satisfiability checking
Classical planning
�
?
� restrict search for a plan to paths with (predetermined) bound
Reductions of planning to SAT
linear encodings [Kautz and Selman, 1992]
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 44 / 74
From planning to satisfiability checking
Original work by Kautz and Selman was later extended with, e.g.,∗
parallel plans [Kautz et al., 1996, Rintanen et al., 2006]
metric constraints [Wolfman and Weld, 1999]
non-deterministic domains [Giunchiglia, 2000]
time constraints [Shin and Davis, 2005] (when SMT was not yet known as such)
preferences [Giunchiglia and Maratea, 2007]
Then SMT came. . . and new solutions followed, e.g.,
numeric planning [Scala et al., 2016]
temporal planning [Rintanen, 2015, Rintanen, 2017]
planning in hybrid domains [Cashmore et al., 2016]
optimal temporal planning (with OMT) [Leofante et al., 2018]
∗Have a look at, e.g., [Rintanen, 2009] for more on planning and SAT.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 45 / 74
From planning to satisfiability checking
Original work by Kautz and Selman was later extended with, e.g.,∗
parallel plans [Kautz et al., 1996, Rintanen et al., 2006]
metric constraints [Wolfman and Weld, 1999]
non-deterministic domains [Giunchiglia, 2000]
time constraints [Shin and Davis, 2005] (when SMT was not yet known as such)
preferences [Giunchiglia and Maratea, 2007]
Then SMT came. . . and new solutions followed, e.g.,
numeric planning [Scala et al., 2016]
temporal planning [Rintanen, 2015, Rintanen, 2017]
planning in hybrid domains [Cashmore et al., 2016]
optimal temporal planning (with OMT) [Leofante et al., 2018]∗Have a look at, e.g., [Rintanen, 2009] for more on planning and SAT.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 45 / 74
Planning as satisfiability [Kautz and Selman, 1992]
Planning problem
Let F and A be the sets of fluents and actions.
Let X = F ∪A and X′ = {x′ : x ∈ X} be its next state copy.
A planning problem is a triple of boolean formulae Π = 〈I,T ,G〉 where
I(F ) represents the set of initial states
T(X,X′) describes how actions affect states
G(F ) represents the set of goal states
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 46 / 74
Planning as satisfiability [Kautz and Selman, 1992]
Encoding Π in SAT - renaming
For a given bound k ∈ N, let Xn = {xn : x ∈ X}, n = 0, ..., k .
Furthermore, let
I(Xn) (resp. G(Xn)) be the formula obtained from I (resp. G) byreplacing each x ∈ X with the corresponding xn ∈ Xn
T(Xn,Xn+1) be the formula obtained from T by replacing each x ∈ X(resp. x′ ∈ X′) with the corresponding xn ∈ Xn (resp. xn+1 ∈ Xn+1).
Encoding Π in SAT - the formula
The planning problem Π with makespan k is the formula
ϕ(Π,k) := I(X0) ∧k−1∧i=0
T(Xi,Xi+1) ∧ G(Xk)
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 47 / 74
Planning as satisfiability [Kautz and Selman, 1992]
Encoding Π in SAT - renaming
For a given bound k ∈ N, let Xn = {xn : x ∈ X}, n = 0, ..., k .
Furthermore, let
I(Xn) (resp. G(Xn)) be the formula obtained from I (resp. G) byreplacing each x ∈ X with the corresponding xn ∈ Xn
T(Xn,Xn+1) be the formula obtained from T by replacing each x ∈ X(resp. x′ ∈ X′) with the corresponding xn ∈ Xn (resp. xn+1 ∈ Xn+1).
Encoding Π in SAT - the formula
The planning problem Π with makespan k is the formula
ϕ(Π,k) := I(X0) ∧k−1∧i=0
T(Xi,Xi+1) ∧ G(Xk)
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 47 / 74
Planning as satisfiability [Kautz and Selman, 1992]
Encoding Π in SAT
ϕ(Π,k) is sat iff there exists a plan with length k
± in that case, a plan can be extracted from the satisfying assignment
in parallel encodings, two actions can be executed in parallel if theyare non-mutex
optimal plans minimize the number of steps:
¿ start with k = 1Î increase until ϕ(Π,k) becomes sat or upper bound on k is reached.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 47 / 74
Encoding planning problems: how to?
We will now consider a simpl-{e,ified} planning problem and show how itcan be encoded as an SMT formula.
What we will see:
Brief problem description (also comes in PDDL )
SMT-LIB standard (basic syntax, advance features)
DisclaimerPlanning problems can be encoded in many different (± efficient) ways.Given the introductory nature of this tutorial, we will use naive encodingsonly to introduce functionalities of SMT solvers.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 48 / 74
Encoding planning problems: how to?
We will now consider a simpl-{e,ified} planning problem and show how itcan be encoded as an SMT formula.
What we will see:
Brief problem description (also comes in PDDL )
SMT-LIB standard (basic syntax, advance features)
DisclaimerPlanning problems can be encoded in many different (± efficient) ways.Given the introductory nature of this tutorial, we will use naive encodingsonly to introduce functionalities of SMT solvers.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 48 / 74
Encoding planning problems: how to?
We will now consider a simpl-{e,ified} planning problem and show how itcan be encoded as an SMT formula.
What we will see:
Brief problem description (also comes in PDDL )
SMT-LIB standard (basic syntax, advance features)
DisclaimerPlanning problems can be encoded in many different (± efficient) ways.Given the introductory nature of this tutorial, we will use naive encodingsonly to introduce functionalities of SMT solvers.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 48 / 74
Working example: TSP
Problem statement
Set of locations: `1, `2
All locations must be visited
Each location must be visitedat most once
Simplifying assumptions:
Graph fully connected, undirected,unweighted (weights kick in later)
`1 `2
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 49 / 74
Working example: TSP
PDDL Domain
(define (domain tsp)(:requirements :negative-preconditions)(:predicates (at ?x) (visited ?x))(:action move:parameters (?x ?y):precondition (and (at ?x) (not (visited ?y))):effect (and (at ?y) (visited ?y) (not (at ?x)))))
PDDL Problem
(define (problem tsp-2)(:domain tsp)(:objects l1 l2 )(:init(at l1))
(:goal(and (visited l1) (visited l2))))
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 50 / 74
SMT-LIB standard
Syntax of core theory
:sorts ((Bool 0))
:funs (
(true Bool)
(false Bool)
(not Bool Bool)
(and Bool Bool Bool :left-assoc)
...
(par (A) (= A A Bool :chainable))
(par (A) (ite Bool A A A))
...
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 51 / 74
SMT-LIB standard
Syntax of arithmetic theories
:sorts ((Real 0))
:funs (
...
(+ Real Real Real :left-assoc)
(* Real Real Real :left-assoc)
...
(< Real Real Bool :chainable)
...
)
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 51 / 74
SMT-LIB standard
Check the following link for more:http://smtlib.cs.uiowa.edu/index.shtml
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 51 / 74
Boolean example
Propositional encoding - I
; SAT encoding for TSP
; benchmark generated from python API
; Declare variables
(declare-fun visited_1_0 () Bool)
(declare-fun visited_2_0 () Bool)
(declare-fun visited_1_1 () Bool)
(declare-fun visited_2_1 () Bool)
(declare-fun at_1_0 () Bool)
(declare-fun at_2_0 () Bool)
(declare-fun at_1_1 () Bool)
(declare-fun at_2_1 () Bool)
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 52 / 74
Boolean example
Propositional encoding - II
; Assert formula for initial state
(assert (and at_1_0 visited_1_0 (not visited_2_0) (not at_2_0)))
; Assert formula encoding unrolling of
; transition relation
(assert
(let (($x1 (and (and at_1_0 (not visited_2_0) at_2_1 visited_2_1
(not at_1_1)) (and (= visited_1_1 visited_1_0)))))
(let (($x2 ... )))
(or $x1 $x2))))
; Assert formula for goal states
(assert (and visited_1_1 visited_2_1))
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 52 / 74
Boolean example
Propositional encoding - III
; Assert additional conditions
(assert (=> at_1_0 (not at_2_0)))
(assert (=> at_2_0 (not at_1_0)))
...
; Check whether the formula is satisfiabile
(check-sat)
; If sat, retrieve model
(get-value ( at_1_0 visited_1_0 at_2_0 visited_2_0 at_1_1
visited_1_1 at_2_1 visited_2_1))
; (get-model) to retrieve the complete model
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 52 / 74
Boolean example
Propositional encoding - III
; Solver returns
sat
((at_1_0 true)
(visited_1_0 true)
(at_2_0 false)
(visited_2_0 false)
(at_1_1 false)
(visited_1_1 true)
(at_2_1 true)
(visited_2_1 true))
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 52 / 74
Unsat cores - intuition∗
Let’s assume our input formula ϕ is unsat...we would like to know why!
Recall: ϕ is CNF
ϕ :=n∧
i=1
Ci with Ci :=ki∨
j=1
aij
Transform formula adding clause-selector variables
C′i := (¬yi ∨ Ci) ∀i = 1, . . . , n
We can now enable and disable constraints by playing with yi
y check satisfiability of subsets of original constraints
∗More here: [Liffiton and Sakallah, 2008]
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 53 / 74
Unsat cores - intuition∗
Let’s assume our input formula ϕ is unsat...we would like to know why!
Recall: ϕ is CNF
ϕ :=n∧
i=1
Ci with Ci :=ki∨
j=1
aij
Transform formula adding clause-selector variables
C′i := (¬yi ∨ Ci) ∀i = 1, . . . , n
We can now enable and disable constraints by playing with yi
y check satisfiability of subsets of original constraints
∗More here: [Liffiton and Sakallah, 2008]
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 53 / 74
Unsat cores - intuition∗
Let’s assume our input formula ϕ is unsat...we would like to know why!
Recall: ϕ is CNF
ϕ :=n∧
i=1
Ci with Ci :=ki∨
j=1
aij
Transform formula adding clause-selector variables
C′i := (¬yi ∨ Ci) ∀i = 1, . . . , n
We can now enable and disable constraints by playing with yi
y check satisfiability of subsets of original constraints
∗More here: [Liffiton and Sakallah, 2008]
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 53 / 74
Unsat cores - intuition∗
Let’s assume our input formula ϕ is unsat...we would like to know why!
Recall: ϕ is CNF
ϕ :=n∧
i=1
Ci with Ci :=ki∨
j=1
aij
Transform formula adding clause-selector variables
C′i := (¬yi ∨ Ci) ∀i = 1, . . . , n
We can now enable and disable constraints by playing with yi
y check satisfiability of subsets of original constraints
∗More here: [Liffiton and Sakallah, 2008]
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 53 / 74
Unsat cores
Propositional encoding - I
; SAT encoding for TSP
; benchmark generated from python API
(set-info :status unsat)
; Enable unsat core generation
(set-option :produce-unsat-cores true)
; Declare variables
...
; Assert formula for initial state
(assert (! at_1_0 :named I1))
(assert (! visited_1_0 :named I2))
(assert (! (not visited_2_0) :named I3))
(assert (! (not at_2_0) :named I4))
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 54 / 74
Unsat cores
Propositional encoding - II
; Assert formula encoding unrolling of
; transition relation
(assert (!
(let (($x1 (and (and at_1_0 (not visited_2_0) at_2_1
visited_2_1 (not at_1_1)) (and (= visited_1_1 visited_1_0)))))
(let (($x2 ... )))
(or $x1 $x2))) :named T))
; Assert formula for goal states
(assert (! (not visited_1_1) :named G1) )
(assert (! visited_2_1 :named G2))
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 54 / 74
Unsat cores
Propositional encoding - III
...
; Check whether the formula is satisfiabile
(check-sat)
; If unsat, produce unsat core
(get-unsat-core)
; Solver returns
; unsat
; (I2 T G1)
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 54 / 74
Some theories in: QF UFLIA
SMT encoding - I
; SMT encoding for TSP
...
; Declare variables
(declare-fun at_0 () Int)
(declare-fun at_1 () Int)
; Declare UF to encode predicate
(declare-fun visited (Int Int) Bool)
; Assert bounds on integers
(assert (and (>= at_0 1) (<= at_0 2)))
(assert (and (>= at_1 1) (<= at_1 2)))
; Assert formula for initial state
(assert (and (and (= at_0 1) (visited 1 0)) (not (visited 2 0))))
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 55 / 74
Some theories in: QF UFLIA
SMT encoding - II
; Assert unrolling of transition relation
(assert
(let (($x1 (and (= at_0 1) (and (not (visited 2 0))) (= at_1 2)
(visited 2 1) (and (= (visited 1 1) (visited 1 0))))))
(let (($x2 ... )))
(or $x1 $x2))))
; Assert formula for goal state
(assert (and (visited 1 1) (visited 2 1)))
; Check sat. If sat, retrieve model
(check-sat)
(get-value (at_0 (visited 1 0) (visited 2 0) at_1
(visited 1 1) (visited 2 1)))
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 55 / 74
Some theories in: QF UFLIA
SMT encoding - II
; Solver returns
sat
((at_0 1)
((visited 1 0) true)
((visited 2 0) false)
(at_1 2)
((visited 1 1) true)
((visited 2 1) true))
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 55 / 74
Optimization
OMT encoding - I
; OMT encoding for TSP
; benchmark generated from python API
(set-info :status sat)
; Declare variables
(declare-fun at_0 () Int)
(declare-fun at_1 () Int)
; Cost variables
(declare-fun c_0 () Int)
(declare-fun c_1 () Int)
; Assert formula for initial state
(assert (and ... (= c_0 0) ...))
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 56 / 74
Optimization
OMT encoding - II
...
(assert
(let (($x1 (and (= at_0 1) (and (not (visited 2 0))) (= at_1 2)
(visited 2 1) (and (= (visited 1 1) (visited 1 0))) (= c_1 (+ c_0 3)))))
(let (($x2 ... )))
; Define objective function
(minimize c_1)
(check-sat)
; Solver returns
;sat
;(objectives
; (c_1 3)
;)
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 56 / 74
Outline
SMT solving
I Historical notes
II SAT and SMT solving
III Some applications outside planning
SMT solving for planning
IV SMT and planning
V Application: optimal planning with OMT
Concluding remarks
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 57 / 74
Planning in the era of Smart Factories
� Å
Ö�
l�
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 58 / 74
Planning in the era of Smart Factories
�
�
Å
Ö«
`
Ö;
Ö§
ll
l
ll
�
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 58 / 74
Planning & Execution Competition forLogistics Robots in Simulation [Niemueller et al., 2015]
Source: [Zwilling et al., 2014].
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 59 / 74
Planning & Execution Competition forLogistics Robots in Simulation [Niemueller et al., 2015]
BS RS 1 RS 2 RS 2 CS 2
Source: [RCLL Technical Committee, 2017].
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 59 / 74
Planning & Execution Competition forLogistics Robots in Simulation [Niemueller et al., 2015]
Temporal planning with OMT for the RCLL. What’s hard?
time windows
domain representation: over 250 configurations possible!
combinatorics
scalability
Ô compact representations are needed to help solvers
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 59 / 74
The need for compact encodings
s0 s1 s2 s3 s4a1→
a2→
a3→
a4→
s0 s1 s2 s3 s4a1→
a2→
a3→
a4→s0 s1 s2 s3
a1∧a2→
a3→
a4→s0 s1 s2 s3
a1∧a2→
a3→
a4→s0 s1 s2 s3
a1∧a2→
a3→
a4→
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 60 / 74
The need for compact encodings
s0 s1 s2 s3 s4a1→
a2→
a3→
a4→
s0 s1 s2 s3 s4a1→
a2→
a3→
a4→
s0 s1 s2 s3a1∧a2→
a3→
a4→s0 s1 s2 s3
a1∧a2→
a3→
a4→s0 s1 s2 s3
a1∧a2→
a3→
a4→
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 60 / 74
The need for compact encodings
s0 s1 s2 s3 s4a1→
a2→
a3→
a4→s0 s1 s2 s3 s4
a1→
a2→
a3→
a4→
s0 s1 s2 s3a1∧a2→
a3→
a4→
s0 s1 s2 s3a1∧a2→
a3→
a4→s0 s1 s2 s3
a1∧a2→
a3→
a4→
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 60 / 74
The need for compact encodings
s0 s1 s2 s3 s4a1→
a2→
a3→
a4→s0 s1 s2 s3 s4
a1→
a2→
a3→
a4→s0 s1 s2 s3
a1∧a2→
a3→
a4→
s0 s1 s2 s3a1∧a2→
a3→
a4→
s0 s1 s2 s3a1∧a2→
a3→
a4→
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 60 / 74
The need for compact encodings
s0 s1 s2 s3 s4a1→
a2→
a3→
a4→s0 s1 s2 s3 s4
a1→
a2→
a3→
a4→s0 s1 s2 s3
a1∧a2→
a3→
a4→s0 s1 s2 s3
a1∧a2→
a3→
a4→
s0 s1 s2 s3a1∧a2→
a3→
a4→
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 60 / 74
A reduced encoding [Leofante et al., 2018]
s0 s1 s2 s3 s4s0 s1 s2 s3 s4s0 s1 s2 s3 s4s0 s1 s2 s3 s4
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 61 / 74
A reduced encoding [Leofante et al., 2018]
s0 s1 s2 s3 s4s0 s1 s2 s3 s4s0 s1 s2 s3 s4s0 s1 s2 s3 s4
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 61 / 74
A reduced encoding [Leofante et al., 2018]
s0 s1 s2 s3 s4s0 s1 s2 s3 s4s0 s1 s2 s3 s4s0 s1 s2 s3 s4
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 61 / 74
A reduced encoding [Leofante et al., 2018]
s0 s1 s2 s3 s4s0 s1 s2 s3 s4s0 s1 s2 s3 s4s0 s1 s2 s3 s4
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 61 / 74
A reduced encoding [Leofante et al., 2018]
s0 s1 s2 s3 s4
s0 s1 s2 s3 s4s0 s1 s2 s3 s4s0 s1 s2 s3 s4
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 61 / 74
A reduced encoding [Leofante et al., 2018]
s0 s1 s2 s3 s4
s0 s1 s2 s3 s4
s0 s1 s2 s3 s4s0 s1 s2 s3 s4
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 61 / 74
A reduced encoding [Leofante et al., 2018]
s0 s1 s2 s3 s4s0 s1 s2 s3 s4
s0 s1 s2 s3 s4
s0 s1 s2 s3 s4
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 61 / 74
A reduced encoding [Leofante et al., 2018]
s0 s1 s2 s3 s4s0 s1 s2 s3 s4s0 s1 s2 s3 s4
s0 s1 s2 s3 s4
. . .
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 61 / 74
Integrated synthesis and execution
Model
�
Synthesis
Ç
Plan
õ
Executive
Ö
Robot
âMonitor
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 62 / 74
A reduced encoding - towards a general approach
We implemented a domain-specific planner for the RCLL
Ë Cool but...How does it perform on other planning problems? Ì
(The New York Times)
We’re working on a planner implementing our ideas, stay tuned!
�
�
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 63 / 74
A reduced encoding - towards a general approach
We implemented a domain-specific planner for the RCLL
Ë Cool but...How does it perform on other planning problems? Ì
(The New York Times)
We’re working on a planner implementing our ideas, stay tuned!
�
�
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 63 / 74
A reduced encoding - towards a general approach
We implemented a domain-specific planner for the RCLL
Ë Cool but...How does it perform on other planning problems? Ì
(The New York Times)
We’re working on a planner implementing our ideas, stay tuned!
�
�
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 63 / 74
Outline
SMT solving
I Historical notes
II SAT and SMT solving
III Some applications outside planning
SMT solving for planning
IV SMT and planning
V Application: optimal planning with OMT
Concluding remarks
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 64 / 74
Concluding remarks
Satisfiability checking combines methods in innovative ways
; emphasis on practical efficiency.
SAT and SMT solvers are powerful general-purpose tools.
SMT has a wide (and increasing) range of application areas
Ç planning is one of them!
The SMT solving community is always looking for interestingproblems. . .
Have one? Let’s talk!
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 65 / 74
Concluding remarks
Satisfiability checking combines methods in innovative ways
; emphasis on practical efficiency.
SAT and SMT solvers are powerful general-purpose tools.
SMT has a wide (and increasing) range of application areas
Ç planning is one of them!
The SMT solving community is always looking for interestingproblems. . .
Have one? Let’s talk!
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 65 / 74
Concluding remarks
Satisfiability checking combines methods in innovative ways
; emphasis on practical efficiency.
SAT and SMT solvers are powerful general-purpose tools.
SMT has a wide (and increasing) range of application areas
Ç planning is one of them!
The SMT solving community is always looking for interestingproblems. . .
Have one? Let’s talk!
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 65 / 74
Concluding remarks
Satisfiability checking combines methods in innovative ways
; emphasis on practical efficiency.
SAT and SMT solvers are powerful general-purpose tools.
SMT has a wide (and increasing) range of application areas
Ç planning is one of them!
The SMT solving community is always looking for interestingproblems. . .
Have one? Let’s talk!
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 65 / 74
Concluding remarks
Satisfiability checking combines methods in innovative ways
; emphasis on practical efficiency.
SAT and SMT solvers are powerful general-purpose tools.
SMT has a wide (and increasing) range of application areas
Ç planning is one of them!
The SMT solving community is always looking for interestingproblems. . .
Have one? Let’s talk!
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 65 / 74
References I
zchaff webpage.https://www.princeton.edu/˜chaff/zchaff.html.Accessed: 2018-06-13.
Abraham, E., Corzilius, F., Johnsen, E. B., Kremer, G., and Mauro, J. (2016).Zephyrus2: On the fly deployment optimization using SMT and CP technologies.In Dependable Software Engineering: Theories, Tools, and Applications - Second InternationalSymposium, SETTA 2016, Beijing, China, November 9-11, 2016, Proceedings, pages 229–245.
Ansotegui, C., Bofill, M., Palahı, M., Suy, J., and Villaret, M. (2011).Satisfiability modulo theories: An efficient approach for the resource-constrained projectscheduling problem.In Proceedings of the Ninth Symposium on Abstraction, Reformulation, and Approximation,SARA 2011, Parador de Cardona, Cardona, Catalonia, Spain, July 17-18, 2011.
Cashmore, M., Fox, M., Long, D., and Magazzeni, D. (2016).A compilation of the full PDDL+ language into SMT.In Proceedings of the Twenty-Sixth International Conference on Automated Planning andScheduling, ICAPS 2016, London, UK, June 12-17, 2016., pages 79–87.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 66 / 74
References II
Cimatti, A., Griggio, A., Schaafsma, B. J., and Sebastiani, R. (2013).The mathsat5 SMT solver.In Tools and Algorithms for the Construction and Analysis of Systems - 19th InternationalConference, TACAS 2013, Held as Part of the European Joint Conferences on Theory andPractice of Software, ETAPS 2013, Rome, Italy, March 16-24, 2013. Proceedings, pages93–107.
Cook, S. A. (1971).The complexity of theorem-proving procedures.In Proceedings of the 3rd Annual ACM Symposium on Theory of Computing, May 3-5, 1971,Shaker Heights, Ohio, USA, pages 151–158.
Corzilius, F., Kremer, G., Junges, S., Schupp, S., and Abraham, E. (2015).SMT-RAT: an open source C++ toolbox for strategic and parallel SMT solving.In Theory and Applications of Satisfiability Testing - SAT 2015 - 18th International Conference,Austin, TX, USA, September 24-27, 2015, Proceedings, pages 360–368.
Corzilius, F., Loup, U., Junges, S., and Abraham, E. (2012).SMT-RAT: an smt-compliant nonlinear real arithmetic toolbox - (tool presentation).In Theory and Applications of Satisfiability Testing - SAT 2012 - 15th International Conference,Trento, Italy, June 17-20, 2012. Proceedings, pages 442–448.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 67 / 74
References III
de Moura, L. M. and Bjørner, N. (2008).Z3: an efficient SMT solver.In Tools and Algorithms for the Construction and Analysis of Systems, 14th InternationalConference, TACAS 2008, Held as Part of the Joint European Conferences on Theory andPractice of Software, ETAPS 2008, Budapest, Hungary, March 29-April 6, 2008. Proceedings,pages 337–340.
Decker, N., Leucker, M., and Thoma, D. (2016).Monitoring modulo theories.STTT, 18(2):205–225.
Dehnert, C., Junges, S., Jansen, N., Corzilius, F., Volk, M., Bruintjes, H., Katoen, J., andAbraham, E. (2015).Prophesy: A probabilistic parameter synthesis tool.In Computer Aided Verification - 27th International Conference, CAV 2015, San Francisco, CA,USA, July 18-24, 2015, Proceedings, Part I, pages 214–231.
Deters, M., Reynolds, A., King, T., Barrett, C. W., and Tinelli, C. (2014).A tour of CVC4: how it works, and how to use it.In Formal Methods in Computer-Aided Design, FMCAD 2014, Lausanne, Switzerland, October21-24, 2014, page 7.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 68 / 74
References IV
Dutertre, B. (2014).Yices 2.2.In Computer Aided Verification - 26th International Conference, CAV 2014, Held as Part of theVienna Summer of Logic, VSL 2014, Vienna, Austria, July 18-22, 2014. Proceedings, pages737–744.
Giesl, J., Thiemann, R., Schneider-Kamp, P., and Falke, S. (2004).Automated termination proofs with aprove.In Rewriting Techniques and Applications, 15th International Conference, RTA 2004, Aachen,Germany, June 3-5, 2004, Proceedings, pages 210–220.
Giunchiglia, E. (2000).Planning as satisfiability with expressive action languages: Concurrency, constraints andnondeterminism.In KR 2000, Principles of Knowledge Representation and Reasoning Proceedings of theSeventh International Conference, Breckenridge, Colorado, USA, April 11-15, 2000., pages657–666.
Giunchiglia, E. and Maratea, M. (2007).Planning as satisfiability with preferences.In Proceedings of the Twenty-Second AAAI Conference on Artificial Intelligence, July 22-26,2007, Vancouver, British Columbia, Canada, pages 987–992.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 69 / 74
References V
Jarvisalo, M., Berre, D. L., Roussel, O., and Simon, L. (2012).The international SAT solver competitions.AI Magazine, 33(1).
Kautz, H. A., McAllester, D. A., and Selman, B. (1996).Encoding plans in propositional logic.In Proceedings of the Fifth International Conference on Principles of Knowledge Representationand Reasoning (KR’96), Cambridge, Massachusetts, USA, November 5-8, 1996., pages374–384.
Kautz, H. A. and Selman, B. (1992).Planning as satisfiability.In ECAI, pages 359–363.
Kong, S., Gao, S., Chen, W., and Clarke, E. M. (2015).dreach: δ-reachability analysis for hybrid systems.In Tools and Algorithms for the Construction and Analysis of Systems - 21st InternationalConference, TACAS 2015, Held as Part of the European Joint Conferences on Theory andPractice of Software, ETAPS 2015, London, UK, April 11-18, 2015. Proceedings, pages200–205.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 70 / 74
References VI
Kroening, D. and Tautschnig, M. (2014).CBMC - C bounded model checker - (competition contribution).In Tools and Algorithms for the Construction and Analysis of Systems - 20th InternationalConference, TACAS 2014, Held as Part of the European Joint Conferences on Theory andPractice of Software, ETAPS 2014, Grenoble, France, April 5-13, 2014. Proceedings, pages389–391.
Leofante, F., Abraham, E., Niemueller, T., Lakemeyer, G., and Tacchella, A. (2018).Integrated synthesis and execution of optimal plans for multi-robot systems in logistics.Information Systems Frontiers.
Liffiton, M. H. and Sakallah, K. A. (2008).Algorithms for computing minimal unsatisfiable subsets of constraints.J. Autom. Reasoning, 40(1):1–33.
Niemetz, A., Preiner, M., and Biere, A. (2014).Boolector 2.0.JSAT, 9:53–58.
Niemueller, T., Lakemeyer, G., and Ferrein, A. (2015).The RoboCup Logistics League as a benchmark for planning in robotics.In Proc. of PlanRob@ICAPS’15.
RCLL Technical Committee (2017).RoboCup Logistics League – Rules and regulations 2017.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 71 / 74
References VII
Rintanen, J. (2009).Planning and SAT.In Handbook of Satisfiability, pages 483–504.
Rintanen, J. (2015).Discretization of temporal models with application to planning with SMT.In Proceedings of the Twenty-Ninth AAAI Conference on Artificial Intelligence, January 25-30,2015, Austin, Texas, USA., pages 3349–3355.
Rintanen, J. (2017).Temporal planning with clock-based SMT encodings.In Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence, IJCAI2017, Melbourne, Australia, August 19-25, 2017, pages 743–749.
Rintanen, J., Heljanko, K., and Niemela, I. (2006).Planning as satisfiability: parallel plans and algorithms for plan search.Artif. Intell., 170(12-13):1031–1080.
SATO webpage.SATO solver.http://homepage.divms.uiowa.edu/˜hzhang/sato/.Accessed: 2018-06-13.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 72 / 74
References VIII
Scala, E., Ramırez, M., Haslum, P., and Thiebaux, S. (2016).Numeric planning with disjunctive global constraints via SMT.In Proceedings of the Twenty-Sixth International Conference on Automated Planning andScheduling, ICAPS 2016, London, UK, June 12-17, 2016., pages 276–284.
Shin, J. and Davis, E. (2005).Processes and continuous change in a sat-based planner.Artif. Intell., 166(1-2):194–253.
Stroder, T., Aschermann, C., Frohn, F., Hensel, J., and Giesl, J. (2015).Aprove: Termination and memory safety of C programs - (competition contribution).In Tools and Algorithms for the Construction and Analysis of Systems - 21st InternationalConference, TACAS 2015, Held as Part of the European Joint Conferences on Theory andPractice of Software, ETAPS 2015, London, UK, April 11-18, 2015. Proceedings, pages417–419.
Wolfman, S. A. and Weld, D. S. (1999).The LPSAT engine & its application to resource planning.In Proceedings of the Sixteenth International Joint Conference on Artificial Intelligence, IJCAI99, Stockholm, Sweden, July 31 - August 6, 1999. 2 Volumes, 1450 pages, pages 310–317.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 73 / 74
References IX
Zankl, H. and Middeldorp, A. (2010).Satisfiability of non-linear (ir)rational arithmetic.In Logic for Programming, Artificial Intelligence, and Reasoning - 16th International Conference,LPAR-16, Dakar, Senegal, April 25-May 1, 2010, Revised Selected Papers, pages 481–500.
Zwilling, F., Niemueller, T., and Lakemeyer, G. (2014).Simulation for the RoboCup Logistics League with real-world environment agency andmulti-level abstraction.In Robot Soccer World Cup, pages 220–232. Springer.
E. Abraham, F. Leofante ICAPS’18 June 25, 2018 74 / 74