185
SMT Solving for AI Planning: Theory, Tools and Applications Erika ´ Abrah ´ am Francesco Leofante RWTH Aachen University, Germany RWTH Aachen University, Germany University of Genoa, Italy ICAPS 2018 Delft, The Netherlands 25 June 2018

SMT Solving for AI Planning: Theory, Tools and Applications · SMT Solving for AI Planning: Theory, Tools and Applications Erika Abrah´ am Francesco Leofante´ RWTH Aachen University,

  • Upload
    others

  • View
    9

  • 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

E. Abraham, F. Leofante ICAPS’18 June 25, 2018 20 / 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

The need for compact encodings

(???

?

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