28
1 Computergestützte Verifikation 28.5.2002

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

Embed Size (px)

Citation preview

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?