SAT Modulo Monotonic Theories Sam Bayless , Noah Bayless , Holger - - PowerPoint PPT Presentation

sat modulo monotonic theories
SMART_READER_LITE
LIVE PREVIEW

SAT Modulo Monotonic Theories Sam Bayless , Noah Bayless , Holger - - PowerPoint PPT Presentation

SAT Modulo Monotonic Theories Sam Bayless , Noah Bayless , Holger H. Hoos , Alan J. Hu University of British Columbia Point Grey Secondary School Sam Bayless (UBC) SAT Modulo Monotonic Theories 1 / 0 Procedural Content


slide-1
SLIDE 1

SAT Modulo Monotonic Theories

Sam Bayless∗, Noah Bayless†, Holger H. Hoos∗, Alan J. Hu∗

∗University of British Columbia †Point Grey Secondary School

Sam Bayless (UBC) SAT Modulo Monotonic Theories 1 / 0

slide-2
SLIDE 2

Procedural Content Generation

Sam Bayless (UBC) SAT Modulo Monotonic Theories 2 / 0

slide-3
SLIDE 3

MonoSAT Applications

Circuit Layout Data Center Allocation

Sam Bayless (UBC) SAT Modulo Monotonic Theories 3 / 0

slide-4
SLIDE 4

MonoSAT Applications

Finite State Machine Synthesis

q0 q3 b q4 a b q1 a b q2 a a b a,b

CTL Controller Synthesis

{p} {~p} {~p} {p}

Sam Bayless (UBC) SAT Modulo Monotonic Theories 4 / 0

slide-5
SLIDE 5

MonoSAT

MonoSAT is a SAT Modulo Theory Solver for: Graph Predicates:

▶ Reachability ▶ Shortest paths ▶ Maximum s − t flow ▶ Minimum Spanning Tree ▶ Acyclicity Sam Bayless (UBC) SAT Modulo Monotonic Theories 5 / 0

slide-6
SLIDE 6

MonoSAT

MonoSAT is a SAT Modulo Theory Solver for: Graph Predicates:

▶ Reachability ▶ Shortest paths ▶ Maximum s − t flow ▶ Minimum Spanning Tree ▶ Acyclicity

Collision Detection for Convex Hulls Finite State Machine String Acceptance L-Systems, Boolean Geometry, CTL checking (soon) These are all monotonic theories

Sam Bayless (UBC) SAT Modulo Monotonic Theories 5 / 0

slide-7
SLIDE 7

Boolean Monotonic Theories

A function p is a Boolean monotonic predicate iff: . .

1 : p returns a Boolean

. .

2 : All arguments are of p are Boolean

. .

3 : p(. . . , F, . . .) =

⇒ p(. . . , T, . . .) . . . . . . . . . . . .

Sam Bayless (UBC) SAT Modulo Monotonic Theories 6 / 0

slide-8
SLIDE 8

Boolean Monotonic Theories

A function p is a Boolean monotonic predicate iff: . .

1 : p returns a Boolean

. .

2 : All arguments are of p are Boolean

. .

3 : p(. . . , F, . . .) =

⇒ p(. . . , T, . . .) .

Definition (Boolean Monotonic Theory)

. . A theory T with signature Σ is Boolean monotonic if and

  • nly if:

. .

1 The only sort in Σ is Boolean;

. .

2 all predicates in Σ are monotonic; and

. .

3 all functions in Σ are monotonic. Sam Bayless (UBC) SAT Modulo Monotonic Theories 6 / 0

slide-9
SLIDE 9

Graph Constraints in SMMT

A formula over Booleans, edges, and monotonic predicates: (a ∨ ¬b) ∧ (b ∨ c) ∧ (¬c ∨ ¬d) ∧ (reaches1,3 ∨ reaches1,4) And 1 or more symbolic graphs: c d 1 2 3 4 a b

Sam Bayless (UBC) SAT Modulo Monotonic Theories 7 / 0

slide-10
SLIDE 10

Graph Constraints in SMMT

‘Reachability’ is Boolean monotonic: 1 2 3 4 reaches1,3 → False reaches1,4 → False

Sam Bayless (UBC) SAT Modulo Monotonic Theories 8 / 0

slide-11
SLIDE 11

Graph Constraints in SMMT

‘Reachability’ is Boolean monotonic: 1 2 3 4 reaches1,3 → False reaches1,4 → False

Sam Bayless (UBC) SAT Modulo Monotonic Theories 8 / 0

slide-12
SLIDE 12

Graph Constraints in SMMT

‘Reachability’ is Boolean monotonic: 1 2 3 4 reaches1,3 → True reaches1,4 → False

Sam Bayless (UBC) SAT Modulo Monotonic Theories 8 / 0

slide-13
SLIDE 13

Graph Constraints in SMMT

‘Reachability’ is Boolean monotonic: 1 2 3 4 reaches1,3 → True reaches1,4 → False

Sam Bayless (UBC) SAT Modulo Monotonic Theories 8 / 0

slide-14
SLIDE 14

Graph Constraints in SMMT

‘Reachability’ is Boolean monotonic: 1 2 3 4 reaches1,3 → True reaches1,4 → True

Sam Bayless (UBC) SAT Modulo Monotonic Theories 8 / 0

slide-15
SLIDE 15

Theory Propagation in SMMT

Formula: (a ∨ ¬b) ∧ (b ∨ c) ∧ (¬c ∨ ¬d) ∧ (reaches1,3 ∨ reaches1,4) Assignment: 1 2 3 4 c d 1 2 3 4 a b Underapproximation Overapproximation reaches1,3 reaches1,4

Sam Bayless (UBC) SAT Modulo Monotonic Theories 9 / 0

slide-16
SLIDE 16

Theory Propagation in SMMT

Formula: (a ∨ ¬b) ∧ (b ∨ c) ∧ (¬c ∨ ¬d) ∧ (reaches1,3 ∨ reaches1,4) Assignment: ¬b 1 2 3 4 c d 1 2 3 4 a Underapproximation Overapproximation reaches1,3 reaches1,4

Sam Bayless (UBC) SAT Modulo Monotonic Theories 9 / 0

slide-17
SLIDE 17

Theory Propagation in SMMT

Formula: (a ∨ ¬b) ∧ (b ∨ c) ∧ (¬c ∨ ¬d) ∧ (reaches1,3 ∨ reaches1,4) Assignment: ¬b, a 1 2 3 4 a c d 1 2 3 4 a Underapproximation Overapproximation reaches1,3 reaches1,4

Sam Bayless (UBC) SAT Modulo Monotonic Theories 9 / 0

slide-18
SLIDE 18

Theory Propagation in SMMT

Formula: (a ∨ ¬b) ∧ (b ∨ c) ∧ (¬c ∨ ¬d) ∧ (reaches1,3 ∨ reaches1,4) Assignment: ¬b, a, c c 1 2 3 4 a c d 1 2 3 4 a Underapproximation Overapproximation reaches1,3 → True reaches1,4

Sam Bayless (UBC) SAT Modulo Monotonic Theories 9 / 0

slide-19
SLIDE 19

Theory Propagation in SMMT

Formula: (a ∨ ¬b) ∧ (b ∨ c) ∧ (¬c ∨ ¬d) ∧ (reaches1,3 ∨ reaches1,4) Assignment: ¬b, a, c, ¬d c 1 2 3 4 a c 1 2 3 4 a Underapproximation Overapproximation reaches1,3 → True reaches1,4 → False

Sam Bayless (UBC) SAT Modulo Monotonic Theories 9 / 0

slide-20
SLIDE 20

Theory Propagation in SMMT

Theory propagation in SMMT has useful properties: Easy to implement. Can use off-the-shelf algorithms. Improved worst-case clause learning.

Sam Bayless (UBC) SAT Modulo Monotonic Theories 10 / 0

slide-21
SLIDE 21

MonoSAT Applications: Shortest Path Constraints

Dst.8- 16 Dst.16- 32 Dst.32- 48 Dst.32- 64 Dst.32- 96 Dst.32- 128 Dst.48- 64 Dst.48- 96 Dst.64- 128 1 10 100 1000

Shortest Path Runtime (s)

MonoSAT clasp MiniSat Sam Bayless (UBC) SAT Modulo Monotonic Theories 11 / 0

slide-22
SLIDE 22

MonoSAT Applications: Maximum Flow Constraints

8x8 16Flow 16x16 8Flow 16x16 16Flow 16x16 24Flow 24x24 16Flow 32x32 16Flow 1 10 100 1000

Maximum Flow Runtime (s)

MonoSAT clasp MiniSat Sam Bayless (UBC) SAT Modulo Monotonic Theories 12 / 0

slide-23
SLIDE 23

MonoSAT Applications: Convex Hull Containment

Art Gallery Synthesis MonoSAT Z3 10 points, 3 hulls, ≤3 cameras 2s 7s 20 points, 4 hulls, ≤4 cameras 36s 433s 30 points, 5 hulls, ≤5 cameras 187s > 3600s 40 points, 6 hulls, ≤6 cameras 645s > 3600s 50 points, 7 hulls, ≤7 cameras 3531s > 3600s

Sam Bayless (UBC) SAT Modulo Monotonic Theories 13 / 0

slide-24
SLIDE 24

Conclusion

Monotonic theories have many applications. Building SMT solvers for them is easy. MonoSAT supports many graph properties (and more!), and it is free & open-source:

▶ New! Bit vector support, ▶ New! Python support.

Website: cs.ubc.ca/labs/isd/Projects/monosat GitHub: github.com/sambayless/monosat

Sam Bayless (UBC) SAT Modulo Monotonic Theories 14 / 0

slide-25
SLIDE 25

MonoSAT + Python

from monosat import ∗ a = Var () b = Var () c = Or(a , Not (b )) Assert ( c ) r e s u l t = Solve ()

Sam Bayless (UBC) SAT Modulo Monotonic Theories 15 / 0

slide-26
SLIDE 26

MonoSAT + Python

from monosat import ∗ g= Graph () e1 = g . addEdge (1 ,2) e2 = g . addEdge (2 ,3) e3 = g . addEdge (1 ,3) Assert ( Not (And( e1 , e3 ) ) ) Assert ( g . reaches (1 ,3)) r e s u l t = Solve ()

Sam Bayless (UBC) SAT Modulo Monotonic Theories 16 / 0

slide-27
SLIDE 27

MonoSAT + Python

from monosat import ∗ g= Graph () e1 = g . addEdge (1 ,2) e2 = g . addEdge (2 ,3) e3 = g . addEdge (1 ,3) Assert (Or( g . reaches (1 ,3) , g . d i s t a n c e l e q (1 ,3 ,2))) r e s u l t = Solve ()

Sam Bayless (UBC) SAT Modulo Monotonic Theories 17 / 0

slide-28
SLIDE 28

MonoSAT + Python

from monosat import ∗ g= Graph () bv1 = BitVector (4) bv2 = BitVector (4) bv3 = BitVector (4) e1 = g . addEdge (1 ,2 , bv1 ) e2 = g . addEdge (2 ,3 , bv2 ) Assert ( g . d i s t a n c e l e q (1 ,3 , bv3 )) Assert ( Not ( g . d i s t a n c e l t (1 ,3 , bv3 ) ) ) Assert (( bv1 + bv3 ) == 9) r e s u l t = Solve ()

Sam Bayless (UBC) SAT Modulo Monotonic Theories 18 / 0