Digitaalsüsteemide verifitseerimise kursus1 Formal verification: SAT SAT applied in equivalence...

23
Digitaalsüsteemide verifitseerimise kursus 1 Formal verification: SAT SAT applied in equivalenc e checking

Transcript of Digitaalsüsteemide verifitseerimise kursus1 Formal verification: SAT SAT applied in equivalence...

Digitaalsüsteemide verifitseerimise kursus 1

Formal verification: SAT

SAT applied in equivalence

checking

Digitaalsüsteemide verifitseerimise kursus 2

Equivalence Checking

• Two principal approaches:

• Transform implementation and spec (reference implementation) to a canonical form

• Search for an input assignment that would distinguish the responses of the implementation and reference implementation.

• SAT applied for the latter

Digitaalsüsteemide verifitseerimise kursus 3

Satisfiability aka SAT

• SAT: Boolean function is satisfiable if there exists a variable assignment for which the function is TRUE

Digitaalsüsteemide verifitseerimise kursus 4

Equivalence checking with SAT

• Equivalence Checking can be reduced to SAT:

d = f g

• Iff d is satisfiable then f and g are NOT equivalent.

Digitaalsüsteemide verifitseerimise kursus 5

Miter circuit

+

1

+

Specification(reference implementation)

Implementation

SAT?

Digitaalsüsteemide verifitseerimise kursus 6

Satisfiability aka SAT

• SAT is transformed to CNF

(i.e. product of sums).

• Sums are called terms.

• If terms have max 2 literals then 2-SAT

2-SAT solved in a polynomial time 3-SAT is an NP complete task

Digitaalsüsteemide verifitseerimise kursus 7

Satisfiability aka SAT

• Is this CNF satisfiable?

• Yes: a = 1, b = 0, c = 0!

• Worst case: 2n combinations to try

Digitaalsüsteemide verifitseerimise kursus 8

Some terminology

• If x in the formula alwaysin one phase (i.e.

always inverted or always noninverted then x

is unate.

• If x in the formula in both phases then x is

binate.

• Term having just one literal called unit term.

Digitaalsüsteemide verifitseerimise kursus 9

Resolvent-algorithm

• Resolvent:

f = (x+A)(¬x+B) = (x +A)(¬x+B)(A+B)

• Consensus:

f = xC + ¬xD = xC + ¬xD + CD

• Since SAT is in CNF we use resolvent.

Digitaalsüsteemide verifitseerimise kursus 10

Resolvent-algorithm

1. Choose another variable x.2. If x is unate, apply unate rule.3. If x is unit term, apply unit term rule.4. If x is unate, solve resolvent of x.5. Repeat the steps until all resolvents solved.6. If the result is 1, then function satisfiable;

otherwise not satisfiable (unit term).

Digitaalsüsteemide verifitseerimise kursus 11

Resolvent-algorithm example

a binate terms resolvent solved

Digitaalsüsteemide verifitseerimise kursus 12

Resolvent-algorithm: summary

• Resolvent-algorithm mathematically elegant but...

• ... Designed for small SAT problems

• In the worst case 2n resolvents to solve

• In order to solve complex SAT instances, search based

algorithms needed

Digitaalsüsteemide verifitseerimise kursus 13

Search-based SAT

Digitaalsüsteemide verifitseerimise kursus 14

SolveSAT()

input: a formula

output: SAT or UNSAT

forever {

state = select_branch(); // choose and assign a variable

if (state == EXHAUSTED) return UNSAT;

result = infer(); // infer variable values

if ( result == SAT)

return SAT;

else if (result == UNSAT)

backtrack(); // backtrack to a prior decision

else // result == INDETERMINATE

continue; // need further assignment

}

Search-based SAT

Digitaalsüsteemide verifitseerimise kursus 15

Implication Graph

• Directed acyclic graph:

• Nodes labeled by variable names, followed by the rank of the decision

• Variables preceded by minus were assigned 0, not preceded by minus were assigned 1

• Directed arcs show from which assignments what new assignments imply

• Decision nodes (grey) and implication nodes (white)

Digitaalsüsteemide verifitseerimise kursus 16

• decisions: k = 1, j = 1, a = 0, b = 1.• reach a conflict: x = 1 ja x = 0!• learning: add a new term (¬e + h + ¬d)

Implication Graph

Digitaalsüsteemide verifitseerimise kursus 17

It implies that c = 0; the function is simplified:

Since e is a unit term then e = 1; first decision: a = 1

If we choose b=1, then conflict!Two possibilities to handle this:1) Invert the last decision(backtrack)2) Add a new term(learning):

Implication Graph Example

Digitaalsüsteemide verifitseerimise kursus 18

Equivalence checking with SAT

• Equivalence Checking can be reduced to SAT:

d = f g

• Iff d is satisfiable then f and g are NOT equivalent.

Digitaalsüsteemide verifitseerimise kursus 19

Miter circuit

+

1

+

Specification(reference implementation)

Implementation

SAT?

Digitaalsüsteemide verifitseerimise kursus 20

SAT for schematics: characteristic formula

• Build CNFs corresponding to logic gates using logic implication:

• ab = ¬a + ba b ab

0 0 1

0 1 1

1 0 0

1 1 1

Digitaalsüsteemide verifitseerimise kursus 21

• Implications for describing the AND gate: ¬a¬c & ¬b ¬c & ¬c ¬a ¬b

• Characteristic formula for AND in CNF: (a+ ¬c) (b+ ¬c) (c+ ¬a+ ¬b)

&a

bc

SAT for schematics: characteristic formula

Digitaalsüsteemide verifitseerimise kursus 22

• Implications for describing the OR-gate: ac & b c & c a b

• Characteristic formula for OR in CNF: (¬a + c) (¬b + c) (¬c + a + b)

1a

bc

SAT for schematics: characteristic formula

Digitaalsüsteemide verifitseerimise kursus 23

Characteristic formula for a schematic:

(a+¬d)(b+¬d)(d+¬a+¬b)(¬c+¬e)(c+e)(¬d+f)(¬e+f)(¬f+d+e)

1c e f

&a

bd

SAT for schematics: characteristic formula