1 computergestützte verifikation 30.4.2002. 2 model checking für finite state systems...

49
1 Computergestützte Verifikation 30.4.2002

Upload: ermelinda-regas

Post on 05-Apr-2015

107 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

1

Computergestützte Verifikation

30.4.2002

Page 2: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

2

Model Checking für finite state systems

explizit: symbolisch:

3.1: Tiefensuche

3.2: LTL-Model Checking

3.3: CTL-Model Checking

3.5: Reduktion durch Symmetrie3.6: Partial Order Reduction

3.7: Tools

4.1: BDD-basiertes CTL-Model Checking

4.2: SAT-basiertes Model Checking

4.3: Tools

3.4: Fairness

Kapitel 3 Kapitel 4

Page 3: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

3

Wie kann man Inklusion entscheiden?

LTS L

LTS L

LTS L¬

Agenda: 1. Automaten, die LTSund L¬

akzeptieren 2. Konstruktion eines Schnittautomaten 3. Entscheidung, ob Automat die leere Sprache akzeptiert

Problem: Wir reden über unendliche Sequenzen!

Page 4: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

4

RahmenprozedurCTL(s,)IF L(s,? THEN RETURN ENDCASE AP: berechne L(s,) END: CTL(s,) IF L(s,) THEN CTL(s,); L(s,) = L(s,); ELSE L(s,) = F END¬analogAX : FOR ALL s’: [s,s’] E DO

CTL(s’,); IF L(s’,) = F THEN L(s,) = F; RETURN; END END L(s,) = WEX : analog/* Fortsetzung folgt */

Page 5: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

5

CheckAU

s

CheckAU(s,,): Suche Gegenbeispiel

L(s’,) = W

L(s’,) = F

L(s’,A( U )) = ?

L(s’,) = W

L(s’,) = FL(s’,) = F

L(s’,A( U ) = W

L(s’,A( U ) = F

Page 6: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

6

Was hilft das?

s0

S

S1

S2 Sn

....

|| ( O(|S1|) +

.... + O(|Sn|))

O( |S2|) +

= O(||(|S1| +|S2|+...+ |Sn|))

= O((|| |TS|)

L(s,A/E( U )) ?

Page 7: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

7

Verbesserung von CheckAU

1. Fall s A ( U ) alle s’ im Suchraum: s’ A ( U )(sonst: s.....s’ + Gegenbeispiel bei s’ wäre Gegenbsp. bei s!)

2. Fall s A ( U ) Stack zum Abbruchzeitpunkt bildet Gegenbeispiel

2a) s’ auf dem Tiefensuchstack (“grau”) Stack ab s’ ist immer noch Gegenbeispiel , also s’ A ( U

2b) s’ nicht mehr auf dem Tiefensuchstack (“schwarz”) s’ A ( U ) (b.w.)

Page 8: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

8

Verbesserung von CheckAU

Ggbsp.

s

s’

1. Ggbsp. ab s’ ohne graue Knoten geht nicht, hätte ja beidfs(s’) gefunden werden müssenschwarzgrau

weiss

3. Ggbsp. ab s’ muß also graueKnoten enthalten

2. wissen: ex. Weg von s s’

s*

3a. vor s* Kreis Ggbsp,wäre früher gefunden worden

3b. nach s* Knoten ab s**wären schon bei Suche von s’aus bearbeitet worden ( Wid!)

s**

also: es kann kein Ggbsp. ab s’ geben s’ A ( U )

Page 9: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

9

CheckAU - Pseudocodeweiss := V; grau := schwarz := ø; CheckAU(s,,)

weiss := weiss \ {s}; grau := grau {s}; IF L(s,A(U)) = F THEN EXIT CheckAU; END;IF L(s,A(U)) = W THEN RETURN; END;CTL(s,);IF L(s,) = W THEN L(s,A( U )) := W; RETURN; END;L(s,A( U )) := F;CTL(s,); IF L(s,) = F THEN EXIT CheckAU; END;FOR ALL s’: [s,s’] E DO

IF s’ weiss THENCheckAU(s’,,);

ELSIF s’ grau THEN EXIT CheckAU; END;END;

END;grau := grau \{s}; schwarz := schwarz {s};L(s,A( U )) = W;

Page 10: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

10

Verbesserung von CheckEU

1. Fall s E ( U ) alle s’ im Suchraum: s’ E ( U )(sonst: s.....s’ + Zeuge bei s’ wäre Zeuge bei s!)

2. Fall s E ( U ) Stack zum Abbruchzeitpunkt bildet Zeuge

2a) s’ auf dem Tiefensuchstack (“grau”) Stack ab s’ ist immer noch Zeuge , also s’ E ( U

2b) s’ nicht mehr auf dem Tiefensuchstack (“schwarz”) (b.w.)

Page 11: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

11

Verbesserung von CheckEU

s’

s’’ s’ E( U )

(s’ in nicht beendeter SZK)

s’’ E( U )

(s’’ in beendeter SZK)Argumentation analogzu CheckAU

Page 12: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

12

CheckEU - Pseudocodemaxdfs = 0; weiss := V; T := emptystack;

CheckEU(s,,)

IF L(s,E( U) = W THEN EXIT CheckEU END;IF L(s,E( U) = F THEN

L(s,E( U )) := F; RETURN END;CTL(s,);IFL(s,) = W THEN L(s,E( U )) = W; EXIT; ENDCTL(s,);IF L(s,) = F THEN L(s,E( U )) = F; RETURN; ENDL(s,E( U )) := W; s.dfs = maxdfs; maxdfs += 1;weiss := weiss \{s}; push(T,s); s.lowlink := s.dfs;FOR s’:[s,s’] E DO

IF s’ weiss THENCheckEU(s’,,);s.lowlink := MIN(s.lowlink,s’.lowlink);

ELSEIF s’ T THEN s.lowlink := MIN(s.lowlink,s’.dfs); END

END;END

IF s.lowlink = s.dfs THEN REPEAT

s’ := pop(T);L(s’,E( U )) := F;

UNTIL s = s’END

Page 13: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

13

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FW???

FF???

FF???

WF???

WF???

WF???

WF???1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

0

1 2

3

4 5

6

Page 14: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

14

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FW???

FF???

FF???

WF???

WF???

WF???

WF???1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

Page 15: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

15

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FW???

FF???

FF???

WF???

WF???

WF???

WF???1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

CheckAU(0,a,b)

Page 16: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

16

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FW???

FF???

FF???

WF???

WF???

WF???

WF?F?1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

CheckAU(0,a,b)

Page 17: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

17

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FW???

FF???

FF?F?

WF???

WF???

WF???

WF?F?1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

CheckAU(0,a,b)

Page 18: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

18

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FW???

FF???

FF?F?

WF???

WF???

WF???

WF?F?1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

CheckEU(0,a,b)

Page 19: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

19

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FW???

FF???

FF?F?

WF???

WF???

WF???

WFWF?1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

CheckEU(0,a,b)

Page 20: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

20

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FW???

FF???

FFFF?

WF???

WF???

WF???

WFWF?1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

CheckEU(0,a,b)

Page 21: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

21

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FW???

FF???

FFFF?

WF???

WF???

WFW??

WFWF?1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

CheckEU(0,a,b)

Page 22: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

22

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FW???

FF???

FFFF?

WFW??

WFW??

WFW??

WFWF?1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

CheckEU(0,a,b)

Page 23: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

23

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FWW??

FF???

FFFF?

WFW??

WFW??

WFW??

WFWF?1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

CheckEU(0,a,b)

Page 24: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

24

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FWW??

FF???

FFFF?

WFW??

WFW??

WFW??

WFWFW1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

Page 25: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

25

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FWW??

FF???

FFFFF

WFW??

WFW??

WFW??

WFWFW1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

Page 26: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

26

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FWW??

FF???

FFFFF

WFW??

WFW??

WFW??

WFWFW1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

CheckAU(1,a,b)

Page 27: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

27

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FWW??

FF???

FFFFF

WFW??

WFW??

WFWF?

WFWFW1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

CheckAU(1,a,b)

Page 28: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

28

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FWW??

FF?F?

FFFFF

WFWF?

WFW??

WFWF?

WFWFW1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

CheckAU(1,a,b)

Page 29: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

29

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FWW??

FF?F?

FFFFF

WFWF?

WFW??

WFWFW

WFWFW1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

Page 30: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

30

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FWW??

FF?F?

FFFFF

WFWFW

WFW??

WFWFW

WFWFW1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

Page 31: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

31

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FWW??

FF?F?

FFFFF

WFWFW

WFW??

WFWFW

WFWFW1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

CheckAU(5,a,b)

Page 32: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

32

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FWWW?

FF?F?

FFFFF

WFWFW

WFWW?

WFWFW

WFWFW1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

CheckAU(5,a,b)

Page 33: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

33

Beispiel:E(E(a U b) U A (a U b))

a

b

a

a

a

FWWW?

FF?F?

FFFFF

WFWFW

WFWWW

WFWFW

WFWFW1. a2. b3. E(a U b)4. A(a U b)5. E(E(a U b) U A(a U b))

CheckEU(0,E(a U b),A(a U b))

0

1 2

3

4 5

6

Zeugenpfadgefunden!

fertig.

Page 34: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

34

CTL Model Checking - Abschluß

Der Algorithmus ist Instanz der TechnikDynamisches Programmieren

= mehrfach verwendete Zwischenresultate werden nureinmal berechnet, bei wiederholter Verwendung nurnoch abgelesen.

Page 35: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

35

Nur so zur Info: CTL*-Model Checking

= LTL-Model Checking, wobei jede mit einem Pfadquantor beginnende Teilformel als atomare Zustandsaussage angesehen wird.

Wert von quantifizierten Teilformeln wird durch rekursivenAufruf eines LTL-Model Checkers für die Pfadformelunterhalb des Quantors bestimmt

Soviele rekursive LTL-Model Checker, wie Pfadquantoren in der Formel

Page 36: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

36

3.4. Fairness

Page 37: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

37

Bestandsaufnahme

LTL Model Checking Gegenbeispiel

CTL Model Checking Zeuge (CheckEU) Gegenbeispiel (CheckAU)

mit Fairness: Gegenbeispiel/Zeuge, der alleFairnessannahmen erfüllt

Page 38: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

38

Bestandsaufnahme“unendliche” Gegenbsp. “endliche” Zeugen/Gegenbsp.

LTL-Gegenbsp.:st. zus. akzeptierende Menge

CheckAU-Gegenbsp.:

st. zus. Menge innerhalb Suchraum (EG )

Zeuge in CheckEU:

CheckAU-Gegenbsp.:

irgendeine faire Fortsetzungbei s’

Übersetzen Fairness inzusätzliche Bedingungenan die st. zus. Menge

s’

s’

Page 39: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

39

Bemerkung zu endlichen Pfaden

aktionsbasiert: Jeder endliche Pfad kann immer zu einemfairen Pfad fortgesetzt werden

Strategie: Von allen Aktionen, die enabled sind, folge der,deren letzte Benutzung am weitesten zurückliegt

zustandsbasiert: möglicherweise gibt es keine faire Fortsetzung,aber in diesem Fall sind die Fairnessannahmen unangemessen

Page 40: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

40

Schwache Fairness und st. zus. Mengen

Sei G F schwache Fairnessannahme

Pfad erfüllt gdw. die Menge der unendlich oft von durchlaufenen Zustände einen -Zustand enthält.

Pfad behandelt Aktion a schwach fair gdw. die Menge der unendlich oft von durchlaufenen Zustände einen Zustandenthält, wo entweder a nicht enabled ist, oder ein a-Nachfolgerebenfalls in der Menge enthalten ist.

Page 41: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

41

Starke Fairness und st. zus. Mengen

Sei G F G F starke Fairnessannahme

Pfad erfüllt gdw. die Menge der unendlich oft von durchlaufenen Zustände keinen -Zustand enthält odereinen -Zustand enthält

Pfad behandelt Aktion a stark fair gdw. die Menge der unendlich oft von durchlaufenen Zustände keinen Zustandenthält, wo a enabled ist, oder einen Zustand enthält, dessen a-Nachfolger ebenfalls in der Menge enthalten ist.

Page 42: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

42

Aktions- oder zustandsbasiert?

In ihrer SZM-Formulierung sind zustandsbasierteund aktionsbasierte Annahmen im Prinzip identischwir behandeln nur zustandsbasierte Fairnessannahmen;aktionsbasierte Algorithmen funktionieren analog

Page 43: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

43

Stark zusammenhängende Mengenund starke Fairness

a

0

123

(0 1 2)* (G F a)(G F b)

kein Pfad, der unendlich oft 3durchläuft, erfüllt die Annahme

es reicht nicht, Komponenten zu betrachten; alle stark zusammenhängenden Mengen müssen untersucht werden

immerhin: Jede SZM ist in einer SZK enthalten

Page 44: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

44

Algorithmus von Lichtenstein+Pnueli-Eingabe: eine SZK C, Mengen Fschw und Fst von Fairnessannahmen-Ausgabe: eine SZM, die in C enthalten ist und alle Fairnessannahmen erfüllt (bzw. ø, falls keine ex.)

0. Fall: C trivial return ø 1. Fall: alle Fairnessannahmen erfüllt (Test ist leicht, siehe vorn) return C2. Fall: eine schwache Annahme verletzt (also: kein -Zst. in C) return ø3. Fall: eine starke Annahme (G F ) (G F ) ist verletzt (also: es gibt in C -Zst., aber keine -Zst.) Streiche alle -Zst. aus C, zerlege die entstehende Menge in SZK und rufe den Algorithmus rekursiv für alle Fragmente auf, bis ein Aufruf eine nichttriviale SZM liefert

Page 45: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

45

Komplexität

Platz: kein zus. Platz notwendig, die Datenstrukturender Top-Level-Tiefensuche können recycled werden

Zeit: Jede starke Fairnessannahme kann potentiell eine Rekursionsebene verursachen, diese Annahme ist aber in allen tieferen Ebenen immer erfüllt (keine -Zst. mehr!)

Innerhalb einer Rekursionsebene sind alleSuchräume disjunkt

O( (|V| |E| |FST|)

|FST| normalerweise klein.

Der Algorithmus kann unmittelbar in den originalen Modelcheckerintegriert werden, egal ob CTL oder LTL

Page 46: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

46

Fazit 3.1 – 3.4

Explizites Model Checking basiert im wesentlichen auf Tiefensuche

Die Algorithmen sind extrem leichtgewichtig, arbeitenaber auf riesigen Graphen

wichtigstes Mittel zur Leistungssteigerung ist Verkleinerung des Transitionssystems

Dies ist Gegenstand der nächsten 2 Abschnitte

Page 47: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

47

Übung 1

Adaptiere die Prozeduren CheckEU und/oder CheckAU zuProzeduren CheckEF und CheckAF!

Page 48: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

48

Übung 2

Konstruiere ein (kleines) Transitionssystem, das jede der folgenden Formeln erfüllt....

... und keine der folgenden Formeln erfüllt!

E( (EG a) U b)

EG a

EX a

AF ¬b

EG (b ¬a)

Page 49: 1 Computergestützte Verifikation 30.4.2002. 2 Model Checking für finite state systems explizit:symbolisch: 3.1: Tiefensuche 3.2: LTL-Model Checking 3.3:

49

Übung 3

Gibt es im gegebenen Transitionssystem einen unendlichen Pfad, der alle der folgenden Fairnessannahmenerfüllt (der Initialzustand ist links unten)?G F a G F b (G F c) (G F d) (G F e) (G F d)

e

a

b

c

d