1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze...

28
1 Computergestützte Verifikation 28.5.2002

Transcript of 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze...

Page 1: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

1

Computergestützte Verifikation

28.5.2002

Page 2: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

2

4.2 SAT-basiertes Model Checking

Ansatz: Übersetze das Model Checking Problem inein aussagenlogisches Erfüllbarkeitsproblem undlöse dieses.

Inhalt4.2.1 Ein effizienter SAT-Solver4.2.2 Noch ein effizienter SAT-Solver4.2.3 LTL Model Checking als SAT-Problem

Page 3: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

3

Das Problem SAT

geg: aussagenlogischer Ausdruck

Frage: Ist erfüllbar?

NP-vollständig

Viele Algorithmen setzen in bestimmter Form voraus,meist CNF (Klauselmenge) ( 4.2.1). Manche Algorithmen arbeiten auf beliebigen Ausdrücken( 4.2.2)

Page 4: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

4

4.2.1 SAT-Solver für CNF

(Suche nach erfüllender Belegung)

Ausgangspunkt: Algorithmus von Davis-Putnam aus den 60ern

(xyz) (¬xy) (¬yz) (¬x¬y¬z)

(y) (¬yz) (¬y¬z) (yz) (¬yz)

x ¬x decide

(z) (¬z) yunit

propagationz

leere Klauselmenge= SAT!

pure literalpropagation

z

()leere Klausel = Konflikt Backtracking zur letzten offenen Entscheidung

Page 5: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

5

Davis-Putnam-Algorithmus

DP(K) K – Klauselmenge IF K = ø THEN RETURN SAT IF () K THEN RETURN UNSAT IF = ( ...1...) K THEN RETURN DP(K \ {}) IF (0...0[¬]xi) K THEN RETURN DP(K/ xi1[0]) IF K enthält Literal l, aber nicht seine Negation THEN RETURN DP(K \ { | l }) choose i IF DP(K/ xi 1) = SAT THEN RETURN SAT RETURN DP(K/ xi 0)

Tautologie

unit

pure literal

decide/backtrack

Page 6: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

6

1. Trick: Schnelles Finden von Unit Klauseln

Unit-Klausel = Klausel mit n-1 Literalen auf 0, 1 Literal auf ?

Lösung (z.B. in chaff): Pro Klausel 2 Beobachter, die auf?-Literale zeigen

Solange beide Beobachter auf ?-Literale zeigen, wird Klauselnicht angerührt

Page 7: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

7

Beispiel

x1 x2 x3 x4 x5 x2=0

x1 x2 x3 x4 x5 x1=0

x1 x2 x3 x4 x5 x4,5=0

x1 x2 x3 x4 x5 backtrackx4,x5:= ? x1 := 1

x1 x2 x3 x4 x5

Beim Backtracking bleibenBeobachter, wo sie sind konst. Zeit

Beobachter “wandern” zuselten gesetzten LiteralenKlausel muß seltenerbesucht werden “Lernstrategie”

Page 8: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

8

2. Trick: Konfliktanalyse

Konflikt = leere Klausel = Literal, für das sowohl 0 als auch 1propagiert wird

Idee: “Grund” für den Widerspruch wird explizit als Klauselzur Klauselbasis hinzugefügt “Lernen”

“denselben Fehler nicht noch mal machen”Suchraum einschränken

“Grund” wird durch Analyse des Implikationsgraphengeneriert, der Ursache/Wirkung von Wertzuweisungendokumentiert

Page 9: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

9

3. Trick: Nichtchronologisches Backtracking,Zufällige Restarts

Auf Grund der Konfliktanalyse nicht die letzte, sondern einefrühere Entscheidung rückgängig machen

Von Zeit zu Zeit einfach von vorn anfangen, und(randomisiert) an anderen Variablen verzweigen

Wissen über bisherige Suche in Form der gelernten Klauseln verfügbar

Möglichkeit, komplizierten Teilen des Suchraums zu entfliehen

Page 10: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

10

4. Trick: Heuristiken für Entscheidungen

Grasp: Setze die Variable, die in den meisten offenen Klauselnvorkommt

Chaff: Setze Variable, die häufig in gelernten Klauselnvorkommt

Page 11: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

11

4.2.2 Der Stålmarck-Algorithmus

patentierter Algorithmus, um Tautologie/Erfüllbarkeitbeliebiger Formeln zu entscheiden

weicht vom üblichen Decide/Deduce/Backtrack ab

Page 12: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

12

Datenstruktur: Triplets

nehme für jede Teilformel von eine frische Variable x her,substituiere jede Benutzung von durch x, und nehmex in die Formelmenge auf

1. Beseitige Negationen: de Morgan + ¬ x (x )

p (q p)

x1 (q p)x2 (p x1)

Beispiel:

wird zu

Triplet: <var> (<var> <op> <var>)

Page 13: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

13

Start des Algorithmus

Tautologie:Setze Top-Level-Variable auf 0, suche konsistente Belegung

SAT:Setze Top-Level-Variable auf 1, suche konsistente Belegung

Page 14: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

14

Simple Rules

0 (y z)

y/1 z/0

x (0 z)

x/1

x (x z)

x/1

x (y 1)

x/1

x (y 0)

x/¬y

x (y y)

x/1

x (1 z)

x/z

Page 15: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

15

Wirkung der simple rules

0 1

naiv:

?

Stålmarck:

0 1? ? ? ?

Page 16: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

16

Dilemma rule

12

(x/0) (x/1)

1 2

Ableitung 1 Ableitung 2

= Eine der Subst., falls andere zu Konflikt führt;= diejenigen Subst., die in beiden Zweigen gleich sind, sonst

Zusammenführen derZweige Vermeideredundante Arbeit inverschiedenen Zweigen

Page 17: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

17

Ableitungsstufen

Stufe 0 x

y

x

Stufe 1

x

Stufe 2

y z

z y

usw.

Stålmarcks Algorithmus:

for k = 0, ..., #Var doex.? Abl der Stufe k

end

Page 18: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

18

Härte von Formeln

ist k-hart, wenn Algorithmus frühestens in Runde k terminiert

Die meisten Formeln aus industriellem Kontext sind 1-leicht

ist k-leicht, wenn Algorithmus spätestens in Runde k terminiert

2-hard = too hard

Laufzeit von Stålmarcks Algorithmus hängt viel mehr von derHärte des Ausdrucks ab als von seiner Länge

Page 19: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

19

Zusammenfassung SAT-Checker

arbeiten hevorragend auf Problemen “mit Struktur”

einige 10.000 – 100.000 Variablen

neben den vollständigen Checkern ex. noch viele unvollständige Verfahren

Page 20: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

20

4.2.3 SAT-basiertes Model Checking

Idee: Übersetze Model Checking Problem in ein Erfüllbarkeitsproblem

Ausgangspunkt:

boolesche Kodierung des Zustandsraums, analogzu BDD-basiertem Model Checking

Zustandsüberführungsrelation als boolesche Formel

T(x , x’), ebenfalls analog BDD-Methode

Page 21: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

21

Beispiel:3-bit-Zähler

x0’ x0 x1’ (¬ x1 x0)x2’ (¬x2 (x1 x0))

Page 22: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

22

Symbolische Pfade

Zustand mit Eigenschaft E ist von einem Zustand mit Eigenschaft I in genau k Schritten erreichbar:

I(x(0)) T(x(0),x(1)) ... T(x(k-1),x(k)) E(x(k))

Suche bis zum kleinsten k, das erfüllt

x(0) ...x(k)y(0)... y(j-1)

I(x(0)) T(x(0),x(1)) ... T(x(k-1),x(k))

[ I(y(0)) T(y(0),y(1)) ... T(y(j-1),x(k)) ]j<k

Page 23: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

23

Beschränkte Semantik von LTL

Idee: beschreiben Gegenbeispiel der Länge k

1 k 1l

k

Ziel: Wenn beschränkter Pfad erfüllt, so auch jede unendlicheFortzsetzung

Lassopfade: beschr. Semantik = originale Semantikkreisfrei: k F i k: (i) k-i k G false

die anderen Operatoren so, wie man es sich denkt

Page 24: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

24

Übersetzung der Semantik

I(x(0)) T(x(0),x(1)) ... T(x(k-1),x(k)) 0k

pik := p(x(i))

ik := i

k ik ¬ i

k := ¬ ik

G ik := false

F ik := j=i

k jk

X ik := falls i < k, dann i+1

k sonst false

U ik := j=i

k ( jk n=j

knk)

kreisfrei:

Page 25: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

25

Übersetzung der Semantik

I(x(0)) T(x(0),x(1)) ... T(x(k-1),x(k)) T(x(k),x(l)) l = 0k l0

k

lpik := p(x(i))

lik := li

k ik l¬ i

k := ¬ l ik

lG ik := n=min(j,l)

klnk

lF ik := j=min(i,l)

k lj

k

lX ik := lk

succ(i) succ(i) = i+1 falls i < k, sonst l

lU ik := j=i

k (ljk n=j

j-1lnk)

j=li-1(lj

k n=jkln

k n=lj-1ln

k)

Lasso:

Page 26: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

26

Übung 1

Löse folgendes Erfüllbarkeitsproblem mit dem Davis-Putnam-Algorithmus!

(rs) (¬pq) (¬rs) (¬qp) (¬r¬sp) (¬p¬qr) (¬p¬q¬r)

Page 27: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

27

Übung 2

Konstruiere unter Verwendung des Stålmarck-Algorithmuseine Belegung, die jede der folgenden Formeln erfüllt!

(p q) , (p r) , ((q r) p) , (q (s t)) ,(q (s u)) , (q ((t u) s))

Page 28: 1 Computergestützte Verifikation 28.5.2002. 2 4.2 SAT-basiertes Model Checking Ansatz: Übersetze das Model Checking Problem in ein aussagenlogisches Erfüllbarkeitsproblem.

28

Übung 3

Generiere die aussagenlogische Formel, die einen kreisfreienPfad der Länge 2 für den 3-Bit-Zähler (Anfangszustand: alleBits auf Null) beschreibt, der die Formel F (x1 U ¬ x0) bezeugt!

Ist diese Formel erfüllbar?