51
Satisfiability Checking Eager SMT Solving (Equality Logic, Bit-blasting) Prof. Dr. Erika Ábrahám RWTH Aachen University Informatik 2 LuFG Theory of Hybrid Systems WS 14/15 Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 1 / 51

Satisfiability Checking - Eager SMT Solving (Equality

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Satisfiability Checking - Eager SMT Solving (Equality

Satisfiability CheckingEager SMT Solving (Equality Logic, Bit-blasting)

Prof. Dr. Erika Ábrahám

RWTH Aachen UniversityInformatik 2

LuFG Theory of Hybrid Systems

WS 14/15

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 1 / 51

Page 2: Satisfiability Checking - Eager SMT Solving (Equality

Outline

1 Eager SMT Solving

2 Eager SMT Solving for Equality Logic with Uninterpreted FunctionsEquality Logic with Uninterpreted FunctionsEager SMT Solving for Uninterpreted Functions

Ackermann’s reductionBryant’s reduction

Eager SMT Solving for Equality LogicEquality GraphsThe Sparse Method

3 Eager SMT Solving for Finite-precision Bit-vector Arithmetic

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 2 / 51

Page 3: Satisfiability Checking - Eager SMT Solving (Equality

Outline

1 Eager SMT Solving

2 Eager SMT Solving for Equality Logic with Uninterpreted FunctionsEquality Logic with Uninterpreted FunctionsEager SMT Solving for Uninterpreted Functions

Ackermann’s reductionBryant’s reduction

Eager SMT Solving for Equality LogicEquality GraphsThe Sparse Method

3 Eager SMT Solving for Finite-precision Bit-vector Arithmetic

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 3 / 51

Page 4: Satisfiability Checking - Eager SMT Solving (Equality

SMT solving

We want to extend propositional logic with theories.For satisfiability checking, SAT-solving will be extended toSAT-modulo-theories (SMT) solving.SMT-LIB: language, benchmarks, tutorials, ...SMT-COMP: performance and capabilities of toolsSMT Workshop: held annually

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 4 / 51

Page 5: Satisfiability Checking - Eager SMT Solving (Equality

Eager SMT solving

How can such an extension to SMT solving look like?We will see two basically different approaches:

Eager SMT solving transforms logical formulas over some theories intosatisfiability-equivalent propositional logic formulas and applies SATsolving. (“Eager” means theory first)Lazy SMT solving uses a SAT solver to find solutions for the Booleanskeleton of the formula, and a theory solver to check satisfiability in theunderlying theory. (“Lazy” means theory later)

Today we will have a closer look at the eager approach.

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 5 / 51

Page 6: Satisfiability Checking - Eager SMT Solving (Equality

Eager vs. Lazy SMT Solving

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 6 / 51

Page 7: Satisfiability Checking - Eager SMT Solving (Equality

Theories for Eager SMT Solving

All NP-complete problems can be transformed to equivalentpropositional SAT problems (with polynomial effort).However, this is not always effective in praxis (the transformationwould sometimes solve the hardest part of the problem).Some well-suited theories for eager SMT solving:

Equalities and uninterpreted functionsFinite-precision bit-vector arithmeticQuantifier-free linear integer arithemtic (QF_LIA)Restricted λ-calculus (e.g., arrays). . .Combinations of the above theories

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 7 / 51

Page 8: Satisfiability Checking - Eager SMT Solving (Equality

Some Eager SMT Solver Implementations

UCLID: Proof-based abstraction-refinement [Bryant et al., TACAS’07]STP: Solver for linear modular arithmetic to simplify the formula[Ganesh&Dill, CAV’07]Spear: Automatic parameter tuning for SAT[Hutter et al., FMCAD’07]Boolector: Rewrites, underapproximation, efficient SAT engine[Brummayer&Biere, TACAS’09]Beaver: Equality/constant propagation, logic optimization, specialrules for non-linear operations [Jha et al., CAV’09]SONOLAR: Non-linear arithmetic [Brummayer et al., SMT’08]SWORD: Fixed-size bit-vectors [Jung et al, SMTCOMP’09]Layered eager approaches embedded in the lazy DPLL(T) framework:CVC3 [Barrett et al.], MathSAT [Bruttomesso et al.],Z3 [de Moura et al.]

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 8 / 51

Page 9: Satisfiability Checking - Eager SMT Solving (Equality

Outline

1 Eager SMT Solving

2 Eager SMT Solving for Equality Logic with Uninterpreted FunctionsEquality Logic with Uninterpreted FunctionsEager SMT Solving for Uninterpreted Functions

Ackermann’s reductionBryant’s reduction

Eager SMT Solving for Equality LogicEquality GraphsThe Sparse Method

3 Eager SMT Solving for Finite-precision Bit-vector Arithmetic

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 9 / 51

Page 10: Satisfiability Checking - Eager SMT Solving (Equality

Equality logic with uninterpreted functions

We extend propositional logic withequalities anduninterpreted functions (UFs).

Syntax:variables x over an arbitrary domain D,constants c from the same domain D,function symbols F for functions of the type Dn → D, andequality as predicate symbol.Terms: t := c | x | F (t, . . . , t)Formulas: ϕ := t = t | (ϕ ∧ ϕ) | (¬ϕ)

Semantics: straightforward

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 10 / 51

Page 11: Satisfiability Checking - Eager SMT Solving (Equality

Motivation

Equality logic and propositional logic are both NP-complete.Thus they model the same decision problems.Why to study both?

Convenience of modelingEfficiency

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 11 / 51

Page 12: Satisfiability Checking - Eager SMT Solving (Equality

Equality logic with uninterpreted functions

Notation and assumptions:

Formula with equalities: ϕE

Formula with equalities and uninterpreted functions: ϕUF

Same simplifications for parentheses as for propositional logic.Input formulas are in NNF.Input formulas are checked for satisfiability.

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 12 / 51

Page 13: Satisfiability Checking - Eager SMT Solving (Equality

Removing constants

TheoremThere is an algorithm that generates for an input formula ϕUF anequisatisfiable output formula ϕUF′ without constants, in polynomial time.

Algorithm: Exercise

In the following we assume that the formulas do not contain constants.

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 13 / 51

Page 14: Satisfiability Checking - Eager SMT Solving (Equality

Outline

1 Eager SMT Solving

2 Eager SMT Solving for Equality Logic with Uninterpreted FunctionsEquality Logic with Uninterpreted FunctionsEager SMT Solving for Uninterpreted Functions

Ackermann’s reductionBryant’s reduction

Eager SMT Solving for Equality LogicEquality GraphsThe Sparse Method

3 Eager SMT Solving for Finite-precision Bit-vector Arithmetic

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 14 / 51

Page 15: Satisfiability Checking - Eager SMT Solving (Equality

Motivation

Replacing functions by uninterpreted functions in a given formula is acommon technique to make reasoning easier.It makes the formula weaker: |= ϕUF → ϕ

Ignore the semantics of the function, but:Functional congruence: Instances of the same function return thesame value for equal arguments.

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 15 / 51

Page 16: Satisfiability Checking - Eager SMT Solving (Equality

From uninterpreted functions to equality logic

We lead back the problems of equality logic with uninterpreted functions tothose of equality logic without uninterpreted functions.

Two possible reductions:Ackermann’s reductionBryant’s reduction

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 16 / 51

Page 17: Satisfiability Checking - Eager SMT Solving (Equality

Outline

1 Eager SMT Solving

2 Eager SMT Solving for Equality Logic with Uninterpreted FunctionsEquality Logic with Uninterpreted FunctionsEager SMT Solving for Uninterpreted Functions

Ackermann’s reductionBryant’s reduction

Eager SMT Solving for Equality LogicEquality GraphsThe Sparse Method

3 Eager SMT Solving for Finite-precision Bit-vector Arithmetic

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 17 / 51

Page 18: Satisfiability Checking - Eager SMT Solving (Equality

Ackermann’s reduction

Given an input formula ϕUF of equality logic with uninterpreted functions,transform the formula to a satisfiability-equivalent equality logic formulaϕE of the form

ϕE := ϕflat ∧ ϕcong,

where ϕflat is a flattening of ϕUF, and ϕcong is a conjunction of constraintsfor functional congruence.

For validity-equivalence check

ϕE := ϕcong → ϕflat.

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 18 / 51

Page 19: Satisfiability Checking - Eager SMT Solving (Equality

Ackermann’s reduction

Input: ϕUF with m instances of an uninterpreted function F .Output: satisfiability-equivalent ϕE without any occurrences of F .

Algorithm

1 Assign indices to the F -instances.2 ϕflat := T (ϕUF) where T replaces each occurrence Fi of F by a fresh

Boolean variable fi .3 ϕcong :=

∧m−1i=1

∧mj=i+1(T (arg(Fi )) = T (arg(Fj)))→ fi = fj

4 Return ϕflat ∧ ϕcong.

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 19 / 51

Page 20: Satisfiability Checking - Eager SMT Solving (Equality

Ackermann’s reduction: Example

ϕUF := (x1 6= x2) ∨ (F (x1) = F (x2)) ∨ (F (x1) 6= F (x3))

ϕflat := (x1 6= x2) ∨ (f1 = f2) ∨ (f1 6= f3)

ϕcong := ((x1 = x2) → (f1 = f2)) ∧((x1 = x3) → (f1 = f3)) ∧((x2 = x3) → (f2 = f3))

ϕE := ϕflat ∧ ϕcong

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 20 / 51

Page 21: Satisfiability Checking - Eager SMT Solving (Equality

Ackermann’s reduction: Example

int power3 (int in){int out = in;for (int i=0; i<2; i++)

out = out * in;return out;

}int power3_b (int in){

return ((in * in) * in);}

ϕ1 := out0 = in ∧ out1 = out0 ∗ in ∧ out2 = out1 ∗ inϕ2 := outb = (in ∗ in) ∗ inϕ3 := (ϕ1 ∧ ϕ2)→ (out2 = outb)

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 21 / 51

Page 22: Satisfiability Checking - Eager SMT Solving (Equality

Ackermann’s reduction: Example

ϕ3 := (out0 = in ∧ out1 = out0 ∗ in ∧out2 = out1 ∗ in ∧ outb = (in ∗ in) ∗ in)→(out2 = outb)

ϕUF := (out0 = in ∧ out1 = G (out0, in) ∧out2 = G (out1, in) ∧ outb = G (G (in, in), in))→(out2 = outb)

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 22 / 51

Page 23: Satisfiability Checking - Eager SMT Solving (Equality

Ackermann’s reduction: Example

ϕUF := (out0 = in ∧ out1 = G (out0, in) ∧ out2 = G (out1, in) ∧outb = G (G (in, in), in))→ (out2 = outb)

ϕflat := (out0 = in ∧ out1 = G1 ∧ out2 = G2 ∧outb = G4)→ (out2 = outb) with

ϕcong := ((out0 = out1 ∧ in = in) → G1 = G2)∧((out0 = in ∧ in = in) → G1 = G3)∧((out0 = G3 ∧ in = in) → G1 = G4)∧((out1 = in ∧ in = in → G2 = G3)∧((out1 = G3 ∧ in = in) → G2 = G4)∧((in = G3 ∧ in = in) → G3 = G4)

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 23 / 51

Page 24: Satisfiability Checking - Eager SMT Solving (Equality

Outline

1 Eager SMT Solving

2 Eager SMT Solving for Equality Logic with Uninterpreted FunctionsEquality Logic with Uninterpreted FunctionsEager SMT Solving for Uninterpreted Functions

Ackermann’s reductionBryant’s reduction

Eager SMT Solving for Equality LogicEquality GraphsThe Sparse Method

3 Eager SMT Solving for Finite-precision Bit-vector Arithmetic

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 24 / 51

Page 25: Satisfiability Checking - Eager SMT Solving (Equality

Bryant’s reduction

Case expression:

F ∗i = case x1 = xi : f1x2 = xi : f2. . .xi−1 = xi : fi−1true : fi

where xi is the argument arg(Fi ) of Fi for all i .Semantics:

i∨j=1

(( j−1∧k=1

(xk 6= xi )

)∧ (xj = xi ) ∧ (F ∗i = fj)

)

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 25 / 51

Page 26: Satisfiability Checking - Eager SMT Solving (Equality

Bryant’s reduction

Input: ϕUF with m instances of an uninterpreted function F .Output: satisfiability-equivalent ϕE without any occurrences of F .

Algorithm

1 Assign indices to the F -instances.2 Return T ∗(ϕUF) where T ∗ replaces each Fi (arg(Fi )) by

case T ∗(arg(F1)) = T ∗(arg(Fi )) : f1. . .T ∗(arg(Fi−1)) = T ∗(arg(Fi )) : fi−1true : fi

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 26 / 51

Page 27: Satisfiability Checking - Eager SMT Solving (Equality

Bryant’s reduction: Example

int power3 (int in){int out = in;for (int i=0; i<2; i++)

out = out * in;return out;

}int power3_b (int in){

return ((in * in) * in);}

ϕ1 := out0 = in ∧ out1 = out0 ∗ in ∧ out2 = out1 ∗ inϕ2 := outb = (in ∗ in) ∗ inϕ3 := (ϕ1 ∧ ϕ2)→ (out2 = outb)

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 27 / 51

Page 28: Satisfiability Checking - Eager SMT Solving (Equality

Bryant’s reduction: Example

ϕ3 := (out0 = in ∧ out1 = out0 ∗ in ∧out2 = out1 ∗ in ∧ outb = (in ∗ in) ∗ in)→(out2 = outb)

ϕUF := (out0 = in ∧ out1 = G (out0, in) ∧out2 = G (out1, in) ∧ outb = G (G (in, in), in))→(out2 = outb)

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 28 / 51

Page 29: Satisfiability Checking - Eager SMT Solving (Equality

Bryant’s reduction: Example

ϕUF := (out0 = in ∧ out1 = G (out0, in) ∧ out2 = G (out1, in) ∧outb = G (G (in, in), in))→ (out2 = outb)

ϕE := (out0 = in ∧ out1 = G ∗1 ∧ out2 = G ∗2 ∧outb = G ∗4 )→ (out2 = outb) with

G ∗1 = g1G ∗2 = case out0 = out1 ∧ in = in : g1

true : g2G ∗3 = case out0 = in ∧ in = in : g1

out1 = in ∧ in = in : g2true : g3

G ∗4 = case out0 = G ∗3 ∧ in = in : g1out1 = G ∗3 ∧ in = in : g2in = G ∗3 ∧ in = in : g3true : g4

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 29 / 51

Page 30: Satisfiability Checking - Eager SMT Solving (Equality

Outline

1 Eager SMT Solving

2 Eager SMT Solving for Equality Logic with Uninterpreted FunctionsEquality Logic with Uninterpreted FunctionsEager SMT Solving for Uninterpreted Functions

Ackermann’s reductionBryant’s reduction

Eager SMT Solving for Equality LogicEquality GraphsThe Sparse Method

3 Eager SMT Solving for Finite-precision Bit-vector Arithmetic

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 30 / 51

Page 31: Satisfiability Checking - Eager SMT Solving (Equality

E-graphs

ϕE : x = y ∧ y = z ∧ z 6= x

The equality predicates: {x = y , y = z , z 6= x}Break into two sets:

E= = {x = y , y = z}, E 6= = {z 6= x}

The equality graph (E-graph) GE (ϕE ) = 〈V ,E=,E 6=〉

y

x z

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 31 / 51

Page 32: Satisfiability Checking - Eager SMT Solving (Equality

The E-graph and Boolean structure in ϕE

ϕE1 : x = y ∧ y = z ∧ z 6= x unsatisfiable

ϕE2 : (x = y ∧ y = z) ∨ z 6= x satisfiable!

Their E-graph is the same:

y

x z

=⇒ The graph GE (ϕE ) represents an abstraction of ϕE .It ignores the Boolean structure of ϕE .

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 32 / 51

Page 33: Satisfiability Checking - Eager SMT Solving (Equality

Equality and disequality paths

y

x z

Definition (Equality Path)

A path that uses E= edges is an equality path. We write x =∗ z .

Definition (Disequality Path)

A path that uses edges from E= and exactly one edge from E 6= is adisequality path. We write x 6=∗ z .

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 33 / 51

Page 34: Satisfiability Checking - Eager SMT Solving (Equality

Contradictory cycles

y

x z

Definition (Contradictory Cycle)

A cycle with one disequality edge is a contradictory cycle.

TheoremFor every two nodes x , y on a contradictory cycle the following holds:

x =∗ yx 6=∗ y

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 34 / 51

Page 35: Satisfiability Checking - Eager SMT Solving (Equality

Contradictory cycles

y

x z

DefinitionA subgraph of E is called satisfiable iff the conjunction of the predicatesrepresented by its edges is satisfiable.

TheoremA subgraph is unsatisfiable iff it contains a contradictory cycle.

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 35 / 51

Page 36: Satisfiability Checking - Eager SMT Solving (Equality

Simple cycles

Question: What is a simple cycle?

TheoremEvery contradictory cycle is either simple, or contains a simplecontradictory cycle.

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 36 / 51

Page 37: Satisfiability Checking - Eager SMT Solving (Equality

Simplifying the E-graph of ϕE

Let S be the set of edges that are not part of any contradictory cycle.

TheoremReplacing

all equations in ϕE that correspond to solid edges in S with false, andall equations in ϕE that correspond to dashed edges in S with true

preserves satisfiability.

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 37 / 51

Page 38: Satisfiability Checking - Eager SMT Solving (Equality

Simplifying the E-graph: Example

x1

x2

x3

x4

true

false

true

(x1 = x2 ∨ x1 = x4) ∧(x1 6= x3 ∨ x2 = x3)

(x1 = x2 ∨ true ) ∧(x1 6= x3 ∨ x2 = x3)

(x1 6= x3 ∨ x2 = x3)

¬false ∨ true→ Satisfiable!

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 38 / 51

Page 39: Satisfiability Checking - Eager SMT Solving (Equality

Outline

1 Eager SMT Solving

2 Eager SMT Solving for Equality Logic with Uninterpreted FunctionsEquality Logic with Uninterpreted FunctionsEager SMT Solving for Uninterpreted Functions

Ackermann’s reductionBryant’s reduction

Eager SMT Solving for Equality LogicEquality GraphsThe Sparse Method

3 Eager SMT Solving for Finite-precision Bit-vector Arithmetic

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 39 / 51

Page 40: Satisfiability Checking - Eager SMT Solving (Equality

Bryant & Velev 2000: The Sparse method

Goal: Transform equality logic to propositional logic

Step 1: Replace all equalities in the formula by Boolean variables

ϕE ↔ x1 = x2 ∧ x2 = x3 ∧ x1 6= x3ϕsk ↔ e1 ∧ e2 ∧ ¬e3

x1

x2

x3

e1

e2

e 3

This is called the propositional skeletonThis is an over-approximationTransitivity of equality is lost!→ must add transitivity constraints!

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 40 / 51

Page 41: Satisfiability Checking - Eager SMT Solving (Equality

Adding transitivity constraints

ϕE ↔ x1 = x2 ∧ x2 = x3 ∧ x1 6= x3ϕsk ↔ e1 ∧ e2 ∧ ¬e3

x1

x2

x3

e1

e2

e 3

Step 2: For each cycle in the equality graph: add a transitivity constraint

ϕtrans = (e1 ∧ e2 → e3)∧(e1 ∧ e3 → e2)∧(e3 ∧ e2 → e1)

Step 3: Check ϕsk ∧ ϕtrans

Question: Complexity?

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 41 / 51

Page 42: Satisfiability Checking - Eager SMT Solving (Equality

Optimizations

There can be an exponential number of cycles, so let’s try to improve thisidea.

TheoremIt is sufficient to constrain simple cycles only.

Only two simple cycles here.

Question: Complexity?

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 42 / 51

Page 43: Satisfiability Checking - Eager SMT Solving (Equality

Optimizations

Still, there may be an exponential number of simple cycles.

TheoremIt is sufficient to constrain chord-free simple cycles.

Question: How many simple cycles?Question: How many chord-free simple cycles?

Question: Complexity?

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 43 / 51

Page 44: Satisfiability Checking - Eager SMT Solving (Equality

Optimizations

Still, there may be an exponential number of chord-free simple cycles...

· · ·· · ·

Solution: make graph ’chordal’ by adding edges!

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 44 / 51

Page 45: Satisfiability Checking - Eager SMT Solving (Equality

Making the E-graph chordal

Definition (Chordal graph)

A graph is chordal iff every cycle of length 4 or more has a chord.

Question: How to make a graph chordal?A: Iteratively connect the neighbors of the vertices.

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 45 / 51

Page 46: Satisfiability Checking - Eager SMT Solving (Equality

Making the E-graph chordal

Once the graph is chordal, we only need to constrain the triangles.

Note that this procedure adds not more than a polynomial number ofedges, and results in a polynomial number of constraints.

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 46 / 51

Page 47: Satisfiability Checking - Eager SMT Solving (Equality

Exploiting the polarity

So far we did not consider the polarity of the edges.Claim: in the following graph, ϕtrans = e2 ∧ e3 → e1 is sufficient.

e1

e2

e3

This works because of the monotonicity of NNF.

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 47 / 51

Page 48: Satisfiability Checking - Eager SMT Solving (Equality

Equality logic to propositional logic

Input: Equality logic formula ϕE

Output: satisfiability-equivalent propositional logic formula ϕE

Algorithm

1 Construct ϕsk by replacing each equality ti = tj in ϕE by a freshBoolean variable ei ,j .

2 Construct the E-graph GE (ϕE ) for ϕE .3 Make GE (ϕE ) chordal.4 ϕtrans = true.5 For each triangle (ei ,j , ej ,k , ek,i ) in GE (ϕE ):

ϕtrans := ϕtrans ∧ (ei ,j ∧ ej ,k)→ ek,i∧ (ei ,j ∧ ei ,k)→ ej ,k∧ (ei ,k ∧ ej ,k)→ ei ,j

6 Return ϕsk ∧ ϕtrans.

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 48 / 51

Page 49: Satisfiability Checking - Eager SMT Solving (Equality

Outline

1 Eager SMT Solving

2 Eager SMT Solving for Equality Logic with Uninterpreted FunctionsEquality Logic with Uninterpreted FunctionsEager SMT Solving for Uninterpreted Functions

Ackermann’s reductionBryant’s reduction

Eager SMT Solving for Equality LogicEquality GraphsThe Sparse Method

3 Eager SMT Solving for Finite-precision Bit-vector Arithmetic

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 49 / 51

Page 50: Satisfiability Checking - Eager SMT Solving (Equality

Finite-precision bit-vector arithmetic

“Bit blasting”:Model bit-level operations (functions and predicates) by BooleancircuitsUse Tseitin’s encoding to generate propositional SAT encodingUse a SAT solver to check satisfiabilityConvert back the propositional solution to the theory

Effective solution for many applications.Example: Bounded model checking for C programs (CBMC)[Clarke, Kroening, Lerda, TACAS’04]

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 50 / 51

Page 51: Satisfiability Checking - Eager SMT Solving (Equality

Slides...

...from the Decision Procedures website.

Satisfiability Checking — Prof. Dr. Erika Ábrahám (RWTH Aachen University) WS 14/15 51 / 51