A Model-Constructing Satisfiability Calculus

90
A Model-Constructing Satisfiability Calculus SAT 2014 Dejan Jovanoviฤ‡ SRI International Leonardo de Moura Microsoft Research

Transcript of A Model-Constructing Satisfiability Calculus

A Model-Constructing Satisfiability Calculus SAT 2014

Dejan Jovanoviฤ‡

SRI International

Leonardo de Moura

Microsoft Research

The RISE of Model-Driven Techniques

Search x Saturation

Proof-finding Model-finding

Two procedures

Resolution DPLL

Proof-finder Model-finder

Saturation Search

CDCL: Conflict Driven Clause Learning

Resolution

DPLL

Proof

Model

Linear Arithmetic

Fourier-Motzkin Simplex

Proof-finder Model-finder

Saturation Search

Fourier-Motzkin

Very similar to Resolution

Exponential time and space

๐‘ก1 โ‰ค ๐‘Ž๐‘ฅ, ๐‘๐‘ฅ โ‰ค ๐‘ก2

๐‘๐‘ก1 โ‰ค ๐‘Ž๐‘๐‘ฅ, ๐‘Ž๐‘๐‘ฅ โ‰ค ๐‘Ž๐‘ก2

๐‘๐‘ก1 โ‰ค ๐‘Ž๐‘ก2

Polynomial Constraints

๐‘ฅ2 โˆ’ 4๐‘ฅ + ๐‘ฆ2 โˆ’ ๐‘ฆ + 8 < 1

๐‘ฅ๐‘ฆ โˆ’ 2๐‘ฅ โˆ’ 2๐‘ฆ + 4 > 1

AKA Existential Theory of the Reals

R

CAD โ€œBig Pictureโ€

1. Project/Saturate set of polynomials

2. Lift/Search: Incrementally build assignment ๐‘ฃ: ๐‘ฅ๐‘˜ โ†’ ๐›ผ๐‘˜

Isolate roots of polynomials ๐‘“๐‘–(๐œถ, ๐‘ฅ)

Select a feasible cell ๐ถ, and assign ๐‘ฅ๐‘˜ some ๐›ผ๐‘˜ โˆˆ ๐ถ

If there is no feasible cell, then backtrack

NLSAT: Model-Based Search

Start the Search before Saturate/Project

We saturate on demand

Model guides the saturation

Mo

dels

Pro

ofs

Experimental Results (1) OUR ENGINE

Experimental Results (2)

OUR ENGINE

Other examples (for linear arithmetic)

Fourier-Motzkin

Generalizing DPLL to richer logics

[McMillan et al 2009]

Conflict Resolution

[Korovin et al 2009]

X

Other examples

Array Theory by

Axiom Instantiation

Lemmas on Demand

For Theory of Array

[Brummayer-Biere 2009]

โˆ€๐‘Ž, ๐‘–, ๐‘ฃ: ๐‘Ž ๐‘– โ‰” ๐‘ฃ ๐‘– = ๐‘ฃ

โˆ€๐‘Ž, ๐‘–, ๐‘—, ๐‘ฃ: ๐‘– = ๐‘— โˆจ ๐‘Ž ๐‘– โ‰” ๐‘ฃ ๐‘— = ๐‘Ž[๐‘—]

X

Saturation: successful instances

Polynomial time procedures

Gaussian Elimination

Congruence Closure

MCSat

Model-Driven SMT

Lift ideas from CDCL to SMT

Generalize ideas found in model-driven approaches

Easier to implement

Model construction is explicit

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2

Propagations

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2

Propagations

๐‘ฅ โ‰ฅ 1

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2

Propagations

๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2

Boolean Decisions

๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2

Semantic Decisions

๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 ๐‘ฅ โ†’ 2

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2

Conflict

๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 ๐‘ฅ โ†’ 2

We canโ€™t find a value for ๐‘ฆ s.t. 4 + ๐‘ฆ2 โ‰ค 1

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2

Conflict

๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 ๐‘ฅ โ†’ 2

We canโ€™t find a value for ๐‘ฆ s.t. 4 + ๐‘ฆ2 โ‰ค 1

Learning that ยฌ ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ยฌ(๐‘ฅ= 2) is not productive

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2 ๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1

Learning that ยฌ ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ยฌ(๐‘ฅ= 2) is not productive

ยฌ(๐‘ฅ = 2)

ยฌ ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ยฌ(๐‘ฅ = 2)

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2 ๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1

Learning that ยฌ ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ยฌ(๐‘ฅ= 2) is not productive

ยฌ(๐‘ฅ = 2)

ยฌ ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ยฌ(๐‘ฅ = 2)

๐‘ฅ โ†’ 3

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2 ๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1

Learning that ยฌ ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ยฌ(๐‘ฅ= 2) is not productive

ยฌ(๐‘ฅ = 2)

ยฌ ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ยฌ(๐‘ฅ = 2)

๐‘ฅ โ†’ 3

โ€œSameโ€ Conflict

We canโ€™t find a value for ๐‘ฆ s.t. 9 + ๐‘ฆ2 โ‰ค 1

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2

Conflict

๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 ๐‘ฅ โ†’ 2

๐‘ฆ

๐‘ฅ

๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 ๐‘ฅ โ†’ 2

โˆ’1 โ‰ค ๐‘ฅ, ๐‘ฅ โ‰ค 1

ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1) โˆจ ๐‘ฅ โ‰ค 1

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2 ๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 ๐‘ฅ โ‰ค 1

ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1) โˆจ ๐‘ฅ โ‰ค 1

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2 ๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 ๐‘ฅ โ‰ค 1

ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1) โˆจ ๐‘ฅ โ‰ค 1

Conflict

ยฌ ๐‘ฅ โ‰ฅ 2 โˆจ ยฌ(๐‘ฅ โ‰ค 1)

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2 ๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1

ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1) โˆจ ๐‘ฅ โ‰ค 1

Learned by resolution

ยฌ ๐‘ฅ โ‰ฅ 2 โˆจ ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1)

MCSat

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2 ๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1)

ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1) โˆจ ๐‘ฅ โ‰ค 1 ยฌ ๐‘ฅ โ‰ฅ 2 โˆจ ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1)

MCSat: FM Example

โˆ’๐‘ฅ + ๐‘ง + 1 โ‰ค 0, ๐‘ฅ โˆ’ ๐‘ฆ โ‰ค 0 ๐‘ง โ†’ 0, ๐‘ฆ โ†’ 0

๐‘ง + 1 โ‰ค ๐‘ฅ, ๐‘ฅ โ‰ค ๐‘ฆ

โ‰ก

1 โ‰ค ๐‘ฅ, ๐‘ฅ โ‰ค 0

โˆ’๐‘ฅ + ๐‘ง + 1 โ‰ค 0 ๐‘ง โ†’ 0 ๐‘ฆ โ†’ 0 ๐‘ฅ โˆ’ ๐‘ฆ โ‰ค 0

We canโ€™t find a value of ๐‘ฅ

MCSat: FM Example

โˆ’๐‘ฅ + ๐‘ง + 1 โ‰ค 0, ๐‘ฅ โˆ’ ๐‘ฆ โ‰ค 0 ๐‘ง โ†’ 0, ๐‘ฆ โ†’ 0

โˆƒ๐‘ฅ:โˆ’๐‘ฅ + ๐‘ง + 1 โ‰ค 0 โˆง ๐‘ฅ โˆ’ ๐‘ฆ โ‰ค 0

๐‘ง + 1 โˆ’ ๐‘ฆ โ‰ค 0

โˆ’๐‘ฅ + ๐‘ง + 1 โ‰ค 0 ๐‘ง โ†’ 0 ๐‘ฆ โ†’ 0 ๐‘ฅ โˆ’ ๐‘ฆ โ‰ค 0

ยฌ โˆ’๐‘ฅ + ๐‘ง + 1 โ‰ค 0 โˆจ ยฌ ๐‘ฅ โˆ’ ๐‘ฆ โ‰ค 0 โˆจ ๐‘ง + 1 โˆ’ ๐‘ฆ โ‰ค 0

Fourier-Motzkin

MCSat: FM Example

โˆ’๐‘ฅ + ๐‘ง + 1 โ‰ค 0 ๐‘ง โ†’ 0 ๐‘ง + 1 โˆ’ ๐‘ฆ โ‰ค 0 ๐‘ฅ โˆ’ ๐‘ฆ โ‰ค 0

ยฌ โˆ’๐‘ฅ + ๐‘ง + 1 โ‰ค 0 โˆจ ยฌ ๐‘ฅ โˆ’ ๐‘ฆ โ‰ค 0 โˆจ ๐‘ง + 1 โˆ’ ๐‘ฆ โ‰ค 0

MCSat: FM Example

โˆ’๐‘ฅ + ๐‘ง + 1 โ‰ค 0 ๐‘ง โ†’ 0 ๐‘ง + 1 โˆ’ ๐‘ฆ โ‰ค 0 ๐‘ฅ โˆ’ ๐‘ฆ โ‰ค 0

ยฌ โˆ’๐‘ฅ + ๐‘ง + 1 โ‰ค 0 โˆจ ยฌ ๐‘ฅ โˆ’ ๐‘ฆ โ‰ค 0 โˆจ ๐‘ง + 1 โˆ’ ๐‘ฆ โ‰ค 0

๐‘ฆ โ†’ 1

โˆ’๐‘ฅ + ๐‘ง + 1 โ‰ค 0, ๐‘ฅ โˆ’ ๐‘ฆ โ‰ค 0 ๐‘ง โ†’ 0, ๐‘ฆ โ†’ 1

๐‘ง + 1 โ‰ค ๐‘ฅ, ๐‘ฅ โ‰ค ๐‘ฆ

โ‰ก

1 โ‰ค ๐‘ฅ, ๐‘ฅ โ‰ค 1

MCSat: FM Example

โˆ’๐‘ฅ + ๐‘ง + 1 โ‰ค 0 ๐‘ง โ†’ 0 ๐‘ง + 1 โˆ’ ๐‘ฆ โ‰ค 0 ๐‘ฅ โˆ’ ๐‘ฆ โ‰ค 0

ยฌ โˆ’๐‘ฅ + ๐‘ง + 1 โ‰ค 0 โˆจ ยฌ ๐‘ฅ โˆ’ ๐‘ฆ โ‰ค 0 โˆจ ๐‘ง + 1 โˆ’ ๐‘ฆ โ‰ค 0

๐‘ฆ โ†’ 1

โˆ’๐‘ฅ + ๐‘ง + 1 โ‰ค 0, ๐‘ฅ โˆ’ ๐‘ฆ โ‰ค 0 ๐‘ง โ†’ 0, ๐‘ฆ โ†’ 1

๐‘ง + 1 โ‰ค ๐‘ฅ, ๐‘ฅ โ‰ค ๐‘ฆ

โ‰ก

1 โ‰ค ๐‘ฅ, ๐‘ฅ โ‰ค 1

๐‘ฅ โ†’ 1

MCSat โ€“ Finite Basis

Every theory that admits quantifier elimination has a finite basis (given a fixed assignment order)

๐น[๐‘ฅ, ๐‘ฆ1, โ€ฆ , ๐‘ฆ๐‘š] ๐‘ฆ1 โ†’ ๐›ผ1, โ€ฆ , ๐‘ฆ๐‘š โ†’ ๐›ผ๐‘š

โˆƒ๐‘ฅ: ๐น[๐‘ฅ, ๐‘ฆ1, โ€ฆ , ๐‘ฆ๐‘š]

๐ถ1[๐‘ฆ1, โ€ฆ , ๐‘ฆ๐‘š] โˆง โ‹ฏโˆง ๐ถ๐‘˜[๐‘ฆ1, โ€ฆ , ๐‘ฆ๐‘š]

ยฌ๐น ๐‘ฅ, ๐‘ฆ1, โ€ฆ , ๐‘ฆ๐‘š โˆจ ๐ถ๐‘˜[๐‘ฆ1, โ€ฆ , ๐‘ฆ๐‘š]

MCSat โ€“ Finite Basis

๐น1[๐‘ฅ1]

๐น2[๐‘ฅ1,๐‘ฅ2]

๐น๐‘›[๐‘ฅ1,๐‘ฅ2, โ€ฆ , ๐‘ฅ๐‘›โˆ’1, ๐‘ฅ๐‘›]

๐น๐‘›โˆ’1[๐‘ฅ1,๐‘ฅ2, โ€ฆ , ๐‘ฅ๐‘›โˆ’1]

โ€ฆ

MCSat โ€“ Finite Basis

๐น1[๐‘ฅ1]

๐น2[๐‘ฅ1,๐‘ฅ2]

๐น๐‘›[๐‘ฅ1,๐‘ฅ2, โ€ฆ , ๐‘ฅ๐‘›โˆ’1, ๐‘ฅ๐‘›]

๐น๐‘›โˆ’1[๐‘ฅ1,๐‘ฅ2, โ€ฆ , ๐‘ฅ๐‘›โˆ’1]

โ€ฆ

MCSat โ€“ Finite Basis

๐น1[๐‘ฅ1]

๐น2[๐‘ฅ1,๐‘ฅ2]

๐น๐‘›[๐‘ฅ1,๐‘ฅ2, โ€ฆ , ๐‘ฅ๐‘›โˆ’1, ๐‘ฅ๐‘›]

๐น๐‘›โˆ’1[๐‘ฅ1,๐‘ฅ2, โ€ฆ , ๐‘ฅ๐‘›โˆ’1]

โ€ฆ

MCSat โ€“ Finite Basis

๐น1[๐‘ฅ1]

๐น2[๐‘ฅ1,๐‘ฅ2]

๐น๐‘›[๐‘ฅ1,๐‘ฅ2, โ€ฆ , ๐‘ฅ๐‘›โˆ’1, ๐‘ฅ๐‘›]

๐น๐‘›โˆ’1[๐‘ฅ1,๐‘ฅ2, โ€ฆ , ๐‘ฅ๐‘›โˆ’1]

โ€ฆ

MCSat โ€“ Finite Basis

Every โ€œfiniteโ€ theory has a finite basis Example: Fixed size Bit-vectors

๐น[๐‘ฅ, ๐‘ฆ1, โ€ฆ , ๐‘ฆ๐‘š] ๐‘ฆ1 โ†’ ๐›ผ1, โ€ฆ , ๐‘ฆ๐‘š โ†’ ๐›ผ๐‘š

ยฌ๐น ๐‘ฅ, ๐‘ฆ1, โ€ฆ , ๐‘ฆ๐‘š โˆจ ยฌ(๐‘ฆ1 = ๐›ผ1) โˆจ โ‹ฏโˆจ ยฌ(๐‘ฆ๐‘š= ๐›ผ๐‘š)

MCSat โ€“ Finite Basis

Theory of uninterpreted functions has a finite basis

Theory of arrays has a finite basis [Brummayer- Biere 2009]

In both cases the Finite Basis is essentially composed of equalities between existing terms.

MCSat: Uninterpreted Functions

๐‘Ž = ๐‘ + 1, ๐‘“ ๐‘Ž โˆ’ 1 < ๐‘, ๐‘“ ๐‘ > ๐‘Ž

๐‘Ž = ๐‘ + 1, ๐‘“ ๐‘˜ < ๐‘, ๐‘“ ๐‘ > ๐‘Ž, ๐‘˜ = ๐‘Ž โˆ’ 1

๐‘Ž = ๐‘ + 1, ๐‘“ ๐‘˜ < ๐‘, ๐‘“ ๐‘ > ๐‘Ž, ๐‘˜ = ๐‘Ž โˆ’ 1

Treat ๐‘“(๐‘˜) and ๐‘“(๐‘) as variables Generalized variables

MCSat: Uninterpreted Functions

๐‘Ž = ๐‘ + 1, ๐‘“ ๐‘˜ < ๐‘, ๐‘“ ๐‘ > ๐‘Ž, ๐‘˜ = ๐‘Ž โˆ’ 1

๐‘˜ โ†’ 0 ๐‘ โ†’ 0 ๐‘“(๐‘˜) โ†’ 0 ๐‘“(๐‘) โ†’ 2

Conflict: ๐‘“ ๐‘˜ and ๐‘“ ๐‘ must be equal

ยฌ ๐‘˜ = ๐‘ โˆจ ๐‘“ ๐‘˜ = ๐‘“(๐‘)

MCSat: Uninterpreted Functions

๐‘Ž = ๐‘ + 1, ๐‘“ ๐‘˜ < ๐‘, ๐‘“ ๐‘ > ๐‘Ž, ๐‘˜ = ๐‘Ž โˆ’ 1

๐‘˜ โ†’ 0 ๐‘ โ†’ 0 ๐‘“(๐‘˜) โ†’ 0

ยฌ ๐‘˜ = ๐‘ โˆจ ๐‘“ ๐‘˜ = ๐‘“(๐‘)

๐‘˜ = ๐‘

(Semantic) Propagation

MCSat: Uninterpreted Functions

๐‘Ž = ๐‘ + 1, ๐‘“ ๐‘˜ < ๐‘, ๐‘“ ๐‘ > ๐‘Ž, ๐‘˜ = ๐‘Ž โˆ’ 1

๐‘˜ โ†’ 0 ๐‘ โ†’ 0 ๐‘“(๐‘˜) โ†’ 0

ยฌ ๐‘˜ = ๐‘ โˆจ ๐‘“ ๐‘˜ = ๐‘“(๐‘)

๐‘˜ = ๐‘ ๐‘“ ๐‘˜ = ๐‘“(๐‘)

MCSat: Uninterpreted Functions

๐‘Ž = ๐‘ + 1, ๐‘“ ๐‘˜ < ๐‘, ๐‘“ ๐‘ > ๐‘Ž, ๐‘˜ = ๐‘Ž โˆ’ 1

๐‘˜ โ†’ 0 ๐‘ โ†’ 0 ๐‘“(๐‘˜) โ†’ 0

ยฌ ๐‘˜ = ๐‘ โˆจ ๐‘“ ๐‘˜ = ๐‘“(๐‘)

๐‘˜ = ๐‘ ๐‘“ ๐‘˜ = ๐‘“(๐‘) ๐‘“(๐‘) โ†’ 0

MCSat: Termination

Propagations

Boolean Decisions

Semantic Decisions

MCSat

โ‰ป

Propagations

Boolean Decisions

Semantic Decisions

MCSat

โ‰ป

Propagations

Boolean Decisions

Semantic Decisions

MCSat

|๐น๐‘–๐‘›๐‘–๐‘ก๐‘’๐ต๐‘Ž๐‘ ๐‘–๐‘ |

โ€ฆ

Maximal Elements

โ€ฆ

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2 ๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 ๐‘ฅ โ‰ค 1

ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1) โˆจ ๐‘ฅ โ‰ค 1 Conflict

ยฌ ๐‘ฅ โ‰ฅ 2 โˆจ ยฌ(๐‘ฅ โ‰ค 1)

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2 ๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 ๐‘ฅ โ‰ค 1

ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1) โˆจ ๐‘ฅ โ‰ค 1 Conflict

ยฌ ๐‘ฅ โ‰ฅ 2 โˆจ ยฌ(๐‘ฅ โ‰ค 1)

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2 ๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1)

ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1) โˆจ ๐‘ฅ โ‰ค 1 ยฌ ๐‘ฅ โ‰ฅ 2 โˆจ ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1)

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2 ๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 ๐‘ฅ โ‰ค 1

ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1) โˆจ ๐‘ฅ โ‰ค 1 Conflict

ยฌ ๐‘ฅ โ‰ฅ 2 โˆจ ยฌ(๐‘ฅ โ‰ค 1)

๐‘ฅ โ‰ฅ 2, ยฌ๐‘ฅ โ‰ฅ 1 โˆจ ๐‘ฆ โ‰ฅ 1 , (๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1 โˆจ ๐‘ฅ๐‘ฆ > 1)

๐‘ฅ โ‰ฅ 2 ๐‘ฅ โ‰ฅ 1 ๐‘ฆ โ‰ฅ 1 ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1)

ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1) โˆจ ๐‘ฅ โ‰ค 1 ยฌ ๐‘ฅ โ‰ฅ 2 โˆจ ยฌ(๐‘ฅ2 + ๐‘ฆ2 โ‰ค 1)

๐‘ฅ < 1 โˆจ ๐‘, ยฌ๐‘ โˆจ ๐‘ฅ = 2

๐‘ฅ โ†’ 1

MCSat

๐‘ฅ < 1 โˆจ ๐‘, ยฌ๐‘ โˆจ ๐‘ฅ = 2

๐‘ฅ โ†’ 1

MCSat

๐‘

๐‘ฅ < 1 โˆจ ๐‘, ยฌ๐‘ โˆจ ๐‘ฅ = 2

๐‘ฅ โ†’ 1

MCSat

๐‘

Conflict (evaluates to false)

๐‘ฅ < 1 โˆจ ๐‘, ยฌ๐‘ โˆจ ๐‘ฅ = 2

๐‘ฅ โ†’ 1

MCSat

๐‘

New clause

๐‘ฅ < 1 โˆจ ๐‘ฅ = 2

๐‘ฅ < 1 โˆจ ๐‘, ยฌ๐‘ โˆจ ๐‘ฅ = 2

๐‘ฅ โ†’ 1

MCSat

๐‘

New clause

๐‘ฅ < 1 โˆจ ๐‘ฅ = 2

๐‘ฅ < 1

๐‘ฅ < 1 โˆจ ๐‘, ยฌ๐‘ โˆจ ๐‘ฅ = 2

๐‘ฅ โ†’ 1

MCSat

๐‘

New clause

๐‘ฅ < 1 โˆจ ๐‘ฅ = 2

๐‘ฅ < 1

MCSat: Architecture

Arithmetic

Boolean Lists

Arrays

MCSat prototype: 7k lines of code Deduction Rules

Boolean Resolution

Fourier-Motzkin

Equality Split

Ackermann expansion aka Congruence

Normalization

MCSat: preliminary results prototype: 7k lines of code

QF_LRA

MCSat: preliminary results prototype: 7k lines of code

QF_UFLRA and QF_UFLIA

Check Modulo Assignment

Given a CNF formula ๐น and a set of literals ๐‘†

๐‘โ„Ž๐‘’๐‘๐‘˜(๐น, ๐‘†)

Check Modulo Assignment

Given a CNF formula ๐น and a set of literals ๐‘†

๐‘โ„Ž๐‘’๐‘๐‘˜(๐น, ๐‘†)

Output:

SAT, assignment ๐‘€ โŠ‡ ๐‘† satisfying ๐น

UNSAT, ๐‘™1, โ€ฆ , ๐‘™๐‘˜ โŠ† ๐‘† s.t. ๐น โ‡’ ยฌ๐‘™1 โˆจ โ‹ฏโˆจ ยฌ๐‘™๐‘˜

Check Modulo Assignment

Given a CNF formula ๐น and a set of literals ๐‘†

๐‘โ„Ž๐‘’๐‘๐‘˜(๐น, ๐‘†)

Output:

SAT, assignment ๐‘€ โŠ‡ ๐‘† satisfying ๐น

UNSAT, ๐‘™1, โ€ฆ , ๐‘™๐‘˜ โŠ† ๐‘† s.t. ๐น โ‡’ ยฌ๐‘™1 โˆจ โ‹ฏโˆจ ยฌ๐‘™๐‘˜

Check Modulo Assignment

๐น โ‰ก ๐‘ โˆจ ๐‘ž โˆจ ๐‘Ÿ, ยฌ๐‘ โˆจ ๐‘ž, ๐‘ โˆจ ๐‘ž

๐‘โ„Ž๐‘’๐‘๐‘˜(๐น, {ยฌ๐‘ž, ๐‘Ÿ})

Check Modulo Assignment

๐น โ‰ก ๐‘ โˆจ ๐‘ž โˆจ ๐‘Ÿ, ยฌ๐‘ โˆจ ๐‘ž, ๐‘ โˆจ ๐‘ž

๐‘โ„Ž๐‘’๐‘๐‘˜(๐น, {ยฌ๐‘ž, ๐‘Ÿ})

UNSAT, {ยฌ๐‘ž}

Check Modulo Assignment

Many Applications:

UNSAT Core generation

MaxSAT

Interpolant generation

Introduced in MiniSAT

Implemented in many SMT solvers

Extending Check Modulo Assignment for MCSAT

๐น ๐‘ฅ , ๐‘ฆ ๐‘ฆ โ†’ ๐‘ฃ

Extending Check Modulo Assignment for MCSAT

๐น ๐‘ฅ , ๐‘ฆ ๐‘ฆ โ†’ ๐‘ฃ

SAT, ๐‘ฅ โ†’ ๐‘ค , ๐น ๐‘ค , ๐‘ฃ is true

Extending Check Modulo Assignment for MCSAT

๐น ๐‘ฅ , ๐‘ฆ ๐‘ฆ โ†’ ๐‘ฃ

SAT, ๐‘ฅ โ†’ ๐‘ค , ๐น ๐‘ค , ๐‘ฃ is true

UNSAT, ๐‘†[๐‘ฆ ] s.t. ๐น ๐‘ฅ , ๐‘ฆ โ‡’ ๐‘†[๐‘ฆ ], ๐‘†[๐‘ฃ ] is false

NLSAT/MCSAT

๐น ๐‘ฅ , ๐‘ฆ

๐‘ฆ1 โ†’ ๐‘ค1 ๐‘ฆ๐‘˜ โ†’ ๐‘ค๐‘˜ โ€ฆ

NLSAT/MCSAT

๐ถโ„Ž๐‘’๐‘๐‘˜(๐‘ฅ2 + ๐‘ฆ2 < 1, ๐‘ฆ โ†’ โˆ’2 )

NLSAT/MCSAT

๐ถโ„Ž๐‘’๐‘๐‘˜(๐‘ฅ2 + ๐‘ฆ2 < 1, ๐‘ฆ โ†’ โˆ’2 )

UNSAT, ๐‘ฆ > โˆ’1

๐‘ฆ

๐‘ฅ

No-good sampling

๐ถโ„Ž๐‘’๐‘๐‘˜ ๐น ๐‘ฅ , ๐‘ฆ , ๐‘ฆ โ†’ ๐›ผ1 = unsat ๐‘†1 ๐‘ฆ , ๐บ1 = ๐‘†1 ๐‘ฆ ,

๐›ผ2 โˆˆ ๐บ1, ๐ถโ„Ž๐‘’๐‘๐‘˜ ๐น ๐‘ฅ , ๐‘ฆ , ๐‘ฆ โ†’ ๐›ผ2 = unsat ๐‘†2 ๐‘ฆ , ๐บ2 = ๐บ1 โˆง ๐‘†2 ๐‘ฆ ,

๐›ผ3 โˆˆ ๐บ2, ๐ถโ„Ž๐‘’๐‘๐‘˜ ๐น ๐‘ฅ , ๐‘ฆ , ๐‘ฆ โ†’ ๐›ผ3 = unsat ๐‘†3 ๐‘ฆ , ๐บ3 = ๐บ2 โˆง ๐‘†3 ๐‘ฆ ,

โ€ฆ

๐›ผ๐‘› โˆˆ ๐บ๐‘›โˆ’1, ๐ถโ„Ž๐‘’๐‘๐‘˜ ๐น ๐‘ฅ , ๐‘ฆ , ๐‘ฆ โ†’ ๐›ผ๐‘› = unsat ๐‘†๐‘› ๐‘ฆ , ๐บ๐‘› = ๐บ๐‘›โˆ’1 โˆง ๐‘†๐‘› ๐‘ฆ ,

โ€ฆ

Finite decomposition property:

The sequence is finite

๐บ๐‘– approximates

โˆƒ๐‘ฅ , ๐น ๐‘ฅ , ๐‘ฆ

Computing Interpolants using Extended Check Modulo Assignment

Given: ๐ด ๐‘ฅ , ๐‘ฆ โˆง ๐ต[๐‘ฆ , ๐‘ง ]

Ouput: ๐ผ ๐‘ฆ s.t.

๐ต[๐‘ฆ , ๐‘ง ] โ‡’ ๐ผ ๐‘ฆ ,

๐ด ๐‘ฅ , ๐‘ฆ โˆง ๐ผ ๐‘ฆ is unsat

Computing Interpolants using Extended Check Modulo Assignment

๐ผ ๐‘ฆ โˆถ= ๐‘ก๐‘Ÿ๐‘ข๐‘’

Loop

Solve ๐ด ๐‘ฅ , ๐‘ฆ โˆง ๐ผ ๐‘ฆ If UNSAT return ๐ผ ๐‘ฆ

Let solution be {๐‘ฅ โ†’ ๐‘ค , ๐‘ฆ โ†’ ๐‘ฃ }

Check(๐ต[๐‘ฆ , ๐‘ง ], {๐‘ฆ โ†’ ๐‘ฃ }) If SAT return SAT

๐ผ ๐‘ฆ := ๐ผ ๐‘ฆ โˆง ๐‘†[๐‘ฆ ]

Conclusion

Model-Based techniques are very promising

MCSat is a more faithful lift of CDCL than DPLL(T)

Prototypes:

NLSAT source code is available in Z3

http://z3.codeplex.com

MCSAT (Linear arithemetic + unintepreted functions)

https://github.com/dddejan/

New versions coming soon!

Extra Slides

Lazy SMT and DPLL(T)

Abstraction Refinement Procedure

SAT + Theory Solvers

Basic Idea x 0, y = x + 1, (y > 2 y < 1)

p1, p2, (p3 p4) p1 (x 0), p2 (y = x + 1),

p3 (y > 2), p4 (y < 1)

[Audemard et al - 2002], [Barrett et al - 2002], [de Moura et al - 2002]

SAT + Theory Solvers

Basic Idea x 0, y = x + 1, (y > 2 y < 1)

p1 (x 0), p2 (y = x + 1),

p3 (y > 2), p4 (y < 1)

p1, p2, (p3 p4)

SAT Solver

SAT + Theory Solvers

Basic Idea x 0, y = x + 1, (y > 2 y < 1)

p1 (x 0), p2 (y = x + 1),

p3 (y > 2), p4 (y < 1)

p1, p2, (p3 p4)

SAT Solver

Assignment p1, p2, p3, p4

SAT + Theory Solvers

Basic Idea x 0, y = x + 1, (y > 2 y < 1)

p1, p2, (p3 p4)

SAT Solver

Assignment p1, p2, p3, p4

p1 (x 0), p2 (y = x + 1),

p3 (y > 2), p4 (y < 1)

x 0, y = x + 1,

(y > 2), y < 1

SAT + Theory Solvers

Basic Idea x 0, y = x + 1, (y > 2 y < 1)

p1, p2, (p3 p4)

SAT Solver

Assignment p1, p2, p3, p4

p1 (x 0), p2 (y = x + 1),

p3 (y > 2), p4 (y < 1)

x 0, y = x + 1,

(y > 2), y < 1

Theory Solver

Unsatisfiable

x 0, y = x + 1, y < 1

SAT + Theory Solvers

Basic Idea x 0, y = x + 1, (y > 2 y < 1)

p1, p2, (p3 p4)

SAT Solver

Assignment p1, p2, p3, p4

p1 (x 0), p2 (y = x + 1),

p3 (y > 2), p4 (y < 1)

x 0, y = x + 1,

(y > 2), y < 1

Theory Solver

Unsatisfiable

x 0, y = x + 1, y < 1

New Lemma

p1p2p4

SAT + Theory Solvers: refinements

Incrementality

Efficient Backtracking

Efficient Lemma Generation

Theory propagation DPLL(T) [Ganzinger et all โ€“ 2004]