1 Computergestützte Verifikation 07.6.2002. 2 Übung 1 Konstruiere den Regionengraph für folgendes...

Post on 06-Apr-2016

219 views 0 download

Transcript of 1 Computergestützte Verifikation 07.6.2002. 2 Übung 1 Konstruiere den Regionengraph für folgendes...

1

Computergestützte Verifikation

07.6.2002

2

Übung 1

Konstruiere den Regionengraph für folgendes System (Anfang: k = 0) !Identifiziere in diesem Graph einen Pfad, der EG k 1 bezeugt!

k=0 k=1 k=2c2:=0

c1 1c2 < 1

c1 1c2 < 1

c1 1c2 < 1

c1 = 1c1:=0

c1 = 1c1:=0

c2:=0

3

Übung 2

Wie groß ist die exakte Zahl von Regionen mit Uhrenstellungen, deren ganzzahligerTeil gleich Null ist, in einem System mit genau 3 Uhren?

(Hilfe: Bei zwei Uhren wäre die Antwort 6.)

4

5. Real Time Systeme

5.1 Timed Automata

5.2 TCTL

5.3 Abstraktion durch Regionen

5.4 Abstraktion durch Zonen

5

Timed Automata

aus ein hell kaputtklickklick

klickklick

Uhren c1, c2 Uhrenmenge C

lineare Constraints: ci k oder ci - cj k (k in Nat, in {=,<,>,,,} können boolesch verknüpft sein)

c1>3c1 3 c2>10000

Invarianten (gleiche Syntax)

c2 20000

Resets = Uhren, die auf 0 gesetzt werden

c1 c2

6

Semantik von Timed Automata= “richtiges” Transitionssystem

Zustand = [d,v] d – diskreter Zustand v: C R+

Zustandsübergänge:

a) diskreter Übergang [d,v] [d’,v’] dd’ im Automat, v erfüllt Constraint an dd’, 0, falls c in Resetmenge von dd’ v’(c) = v(c), sonst v’ erfüllt Invariante in d’

b) Zeitverlauf [d,v] [d,v’] es gibt ein t 0: v’(c) = v(c) + t für alle c Jedes v+t’ (0 < t’ t) erfüllt Invariante in d

7

Regionenc2

c10

1

2

1 2 3

8

Problem des Regionengraphs

Es gibt viele Regionen:

Sei #C = n und K max. Zeitkonstante in Formel und Automat.

#Reg: O( n! x 2n-1 x Kn)

symbolisches Model Checking könnte helfen, boolescheKodierung der Regionendatenstruktur (und der Übergänge)vorausgesetzt.

wenig Erfahrung dazu, weil die meistenTools Zonen verwenden

9

Beispiel

A Bc11 c2<1 c1=1 a c2

c2>0 b c1

A,c1=0, c2=0,{0,c1,c2}

c2

c10

10

Beispiel

A Bc11 c2<1 c1=1 a c2

c2>0 b c1

A,c1=0, c2=0,{0,c1,c2} A,c1=0, c2=0,{0},{c1,c2}

c2

c10

1

1

11

Beispiel

A Bc11 c2<1 c1=1 a c2

c2>0 b c1

A,c1=0, c2=0,{0,c1,c2} A,c1=0, c2=0,{0},{c1,c2}

A,c1=1, c2=1,{0,c1,c2}

c2

c10

1

1

12

Beispiel

A Bc11 c2<1 c1=1 a c2

c2>0 b c1

A,c1=0, c2=0,{0,c1,c2} A,c1=0, c2=0,{0},{c1,c2}

A,c1=1, c2=1,{0,c1,c2}B,c1=1, c2=0,{0,c1,c2}

c2

c10

1

1

a

13

Beispiel

A Bc11 c2<1 c1=1 a c2

c2>0 b c1

A,c1=0, c2=0,{0,c1,c2} A,c1=0, c2=0,{0},{c1,c2}

A,c1=1, c2=1,{0,c1,c2}B,c1=1, c2=0,{0,c1,c2}

B,c1=1, c2=0,{0},{c1,c2}

c2

c1

0

1

1

a

2

14

Beispiel

A Bc11 c2<1 c1=1 a c2

c2>0 b c1

A,c1=0, c2=0,{0,c1,c2} A,c1=0, c2=0,{0},{c1,c2}

A,c1=1, c2=1,{0,c1,c2}B,c1=1, c2=0,{0,c1,c2}

B,c1=1, c2=0,{0},{c1,c2}

A,c1=0, c2=0,{0,c1},{c2}

c2

c10

1

1

b

a

15

Beispiel

A Bc11 c2<1 c1=1 a c2

c2>0 b c1

A,c1=0, c2=0,{0,c1,c2} A,c1=0, c2=0,{0},{c1,c2}

A,c1=1, c2=1,{0,c1,c2}B,c1=1, c2=0,{0,c1,c2}

B,c1=1, c2=0,{0},{c1,c2}

A,c1=0, c2=0,{0,c1},{c2}

A,c1=0, c2=0,{0},{c1},{c2}

c2

c10

1

1

b

a

16

Beispiel

A Bc11 c2<1 c1=1 a c2

c2>0 b c1

A,c1=0, c2=0,{0,c1,c2} A,c1=0, c2=0,{0},{c1,c2}

A,c1=1, c2=1,{0,c1,c2}B,c1=1, c2=0,{0,c1,c2}

B,c1=1, c2=0,{0},{c1,c2}

A,c1=0, c2=0,{0,c1},{c2}

A,c1=0, c2=0,{0},{c1},{c2} A,c1=0, c2=1,{0,c2},{c1}

c2

c10

1

1

b

a

17

Beispiel

A Bc11 c2<1 c1=1 a c2

c2>0 b c1

A,c1=0, c2=0,{0,c1,c2} A,c1=0, c2=0,{0},{c1,c2}

A,c1=1, c2=1,{0,c1,c2}B,c1=1, c2=0,{0,c1,c2}

B,c1=1, c2=0,{0},{c1,c2}

A,c1=0, c2=0,{0,c1},{c2}

A,c1=0, c2=0,{0},{c1},{c2} A,c1=0, c2=1,{0,c2},{c1}

A,c1=0, c2=1,{0},{c2},{c1}

c2

c11

2

1

b

a

0

18

Beispiel

A Bc11 c2<1 c1=1 a c2

c2>0 b c1

A,c1=0, c2=0,{0,c1,c2} A,c1=0, c2=0,{0},{c1,c2}

A,c1=1, c2=1,{0,c1,c2}B,c1=1, c2=0,{0,c1,c2}

B,c1=1, c2=0,{0},{c1,c2}

A,c1=0, c2=0,{0,c1},{c2}

A,c1=0, c2=0,{0},{c1},{c2} A,c1=0, c2=1,{0,c2},{c1}

A,c1=0, c2=1,{0},{c2},{c1}

A,c1=1, c2=1,{0,c1},{c2}

c2

c11

2

1

b

a

0

19

Beispiel

A Bc11 c2<1 c1=1 a c2

c2>0 b c1

A,c1=0, c2=0,{0,c1,c2} A,c1=0, c2=0,{0},{c1,c2}

A,c1=1, c2=1,{0,c1,c2}B,c1=1, c2=0,{0,c1,c2}

B,c1=1, c2=0,{0},{c1,c2}

A,c1=0, c2=0,{0,c1},{c2}

A,c1=0, c2=0,{0},{c1},{c2} A,c1=0, c2=1,{0,c2},{c1}

A,c1=0, c2=1,{0},{c2},{c1}

A,c1=1, c2=1,{0,c1},{c2}

c2

c10

1

1

b

a

a

20

5.4 Abstraktion durch Zonen

Problem des Regionengraphs: Zu viele Regionen neue Idee: größere Einheiten

Zone = Menge von Uhrenstellungen, die durch eine Konjunktionvon Uhrenconstraints (ci k oder ci - cj k, in {=,<,>,,,}) beschreibbar ist

Vereinfachende Annahmen: Constraints und Invarianten imTimed Automaton seien nur per Konjunktion verknüpft sind ihreserseits Zonen

21

geometrische Veranschaulichung

0 c1

c2

c1>2

c2 – c1 0

c1 – c2 < 4

c2 > 1

c2 3

c1 4

22

Zonen

Zonen sind konvexe Polyeder

Ränder können, müssen aber nicht dazugehören ( </)

manche Seiten können bis ins Unendliche offen sein

Jede Region ist eine Zone

Jede Zone ist Vereinigung von Regionen

manchmal in der Literatur: Zone = Region, Region = atomare Region

23

Operationen auf Zonen: DurchschnittDer Durchschnitt zweier Zonen ist eine Zone

Benutzung: Bestimmung der Menge aller Uhrenstellungenin einer Zone die ein Constraint/ eine Invariante erfüllen

0

c2

24

Operationen auf Zonen: ProjektionWenn Z eine Zone ist, so auch{[x1,....,xi-1,0,xi+1,...,xn] | [x1,....,xi,....,xn] Z}

0 c1

Benutzung: Uhr auf 0 setzen

25

Operationen auf Zonen: ÖffnungWenn Z Zone ist, so auch{ [x1+t,....,xi+t,....,xn+t] | [x1,...,xn] Z, t R+}

0

Benutzung: Zeitverlauf

26

Nachfolgezone

geg: [d,Z] Nachfolger: [d’,Z’] so, daß

-Zu jedem v’ in Z’ ex. ein v in Z mit - [d,v] [d’,v1] (diskreter Übergang) - [d’,v1] [d’,v’] (Zeitverlauf)

Lösung:1. Schneide z mit Constraint am Übergang2. Projiziere für alle Uhren in der Resetmenge3. Schneide mit Invariante am neuen diskreten Zustand4. falls entstandene Zone nicht leer, Öffne5. Schneide mit Invariante am neuen diskreten Zustand

Startzone: 0-Zone +Öffnung + Schnitt mit Invariante desAnfangszustandes

27

Beispiel

A Bc11 c2<1 c1=1 a c2

c2>0 b c1

0

c2

s0: [A, Z1]

s1: [B,Z2]

s2: [A,Z3]

Zonengraph:Von [d,Z1],[d,Z2] mit Z1Z2,behalte nur [d,Z2]

28

Zonengraph: bewahrte Eigenschaften

Für jede Eigenschaft aus ACTL* gilt:

Wenn im Zonengraph gilt, so gilt im originalen Transitionssystem

ACTL*: Nur A als Pfadquantor keine Negation (bzw.: Negation nur auf elementaren Zustandseigenschaften)

ACTL*: “universelle Eigenschaften” >90% der Spezifikationen in der Praxis sind in ACTL*

Die im Zonengraph repräsentierten Zustände sind genau dieerreichbaren

29

Beziehung zwischen den Logiken

CTL*

CTL LTL

ACTL*

30

Implementation von Zonen

bisher: Zone = Konjunktion von Constraints

Problem: Eine Zone hat viele Darstellungen

Lösung: Normalform

=- für jedes c1,c2 C{0} genau ein Constraint der Form c1 – c2 k oder c1 – c2 < k ( K aus Int {} )

-jeweils das “engstmögliche” Constraint (kleinstmögliches k, das engstmögliche Relationszeichen)

Normalform ist eindeutig!

31

geometrische Veranschaulichung

0 c1

c2

0 - c1< -2

c2 – c1 0

c1 – c2 < 4

0 - c2 < -1

c2 - 0 3

c1 – 0 4

c1 – c2 < 3

32

Berechnung engerer Constraints

c1

c1 – c2 < 4

0 - c2 < -1c1 – 0 4

c1 – c2 < 3

c1 – 0 4+ 0 - c2 < -1 c1 – c2 < 3

33

Normalisierung

Algorithmus: 1. Wandle Constraints ci k in Constraints ci – 0 </ k und/oder 0 – ci </ -k um2. Für jedes ci,cj aus C {0} behalte das engste Constraint bzw. füge ci – cj < ein3. Wiederhole, bis nix Neues: Für jedes ci – cj k1 , cj – ck ’ k2, füge ci – ck ” k1+k2 ein, falls es enger ist als das vorhandene Constraint für ci – ck; ” = ‘’, falls , ’ = ‘’, sonst ‘<‘

Algorithmus führt zu Normalform

34

Shortest Path Closure= Graphalgorithmus für Normalisierung

ci

cj

ck

k1 k2

k

ci - cj

min(k,k1+k2)

Algorithmus von Floyd & WarshallO(n3)

geg: Graph G mit “Kosten” für jede Kanteges: Graph G’, wo an jeder Kante [a,b] die Kosten des billigstenWeges von a nach b in G stehen

anzuwenden auf difference bound matrix:

c1

c3

0

c2

35

Implementation von Operationen:Durchschnitt

geg: Z1,Z2 als difference bound matrix in Normalform

ges: Z1Z2 als Difference bound matrix in Normalform

Lösung: Nimm das jeweils engere Constraint ausZ1 oder Z2, dann nachnormalisieren

36

Implementation von Operationen:Projektion auf c*

geg.: Z in Normalform ges: Projektion Z’ auf c*

ci – 0 k ci – c* (egal) in Z

ci – 0 kci – c* k in Z’

0 – ci k c* – ci (egal) in Z

0 – ci kc* – ci k in Z’

restliche Constraints unverändert

keine Nachnormalisierung notwendig

0 – c* (egal) c* - 0 (egal) in Z

0 – c* 0c* - 0 0 in Z’

Lösung: “alles, was vorher für 0 stimmte, stimmt jetzt auch für c*”

37

Implementation von Operationen:Öffnung

geg: Z ges: Z’

Lösung:

1. Constraints c – c’ für c,c’ 0 bleiben unverändert2. Constraints 0 – c bleiben unverändert3. Aus Constraints c – 0 k wird c – 0 <

keine Nachnormalisierung notwendig

38

Das Beispiel noch mal ordentlichA Bc11 c2<1

c1=1 a c2

c2>0 b c1

0

c2s0: [A, Z1]

s1: [B,Z2]

s2: [A,Z3]

0 c1 c2 0 0 0 0c1 0 0 0c2 0 0 0

0 c1 c2 0 0 0 0c1 < 0 0c2 < 0 0

0 c1 c2 0 0 0 0c1 1 0 0c2 1 0 0

Ö

0 c1 c2 0 0 0 0c1 1 0 1c2 << 0

=

39

Das Beispiel noch mal ordentlichA Bc11 c2<1

c1=1 a c2

c2>0 b c1

0

c2s0: [A, Z1]

s1: [B,Z2]

s2: [A,Z3]

0 c1 c2 0 0 -1-1c1 1 0 0c2 1 0 0

0 c1 c2 0 0 0 0c1 1 0 0c2 1 0 0

0 c1 c2 0 0 -10c1 1 0 1c2 << 0

=

0 c1 c2 0 0 -10c1 1 0 1c2 0 -10

P c2 usw

40

Explizites Real-Time Model Checking

Welches Reduktionstechniken greifen?

Symmetrien: no problem

Partial Order Reduction:Problem: “Zeitverlauf” kann viele...alle Aktionen aktivierenoder deaktivieren, und ist fast immer aktiviert wenig UnabhängigkeitLösung? : “Prozeßlokale” Uhren, die sich nur für Interprozeßkommunikation synchronisieren, sonst asynchron laufen

mangelnder Erfolg der Partial Order Reduction begrenztexplizites Model Checking (... obwohl schon winzige Real-Time Systeme komplex (=fehlerhaft) sein können)

...wenn, dann mit Zonen.

41

Symbolisches Real-Time Model Checking

Regionen: kein Problem, nur Frage von Kodierung undVariablenordnung

Zonen: Problem: arithmetische Operationen, speziell Normalisierung

Lösung: Datenstruktur, die wie BDD funktioniert, aber“arithmetischer”/”zoniger” ist

Clock Difference Diagrams; CDDData Decision Diagrams; DDD Multidecision Diagrams; MDD

42

Clock Difference Diagrams

ci - cj

[0,3) [3,17] (17,)

-Nachbildung aller BDD-Operationen, plus-Projektion-Öffnung-Schnitt

aber: lange Zeit offen: Normalisierung(inzwischen wohl gelöst für DDD)

43

Übung 1

Konstruiere den Zonengraph für folgendes System (Anfang: k = 0) !Identifiziere in diesem Graph einen Pfad, der EG k 1 bezeugt!

k=0 k=1 k=2c2:=0

c1 1c2 < 1

c1 1c2 < 1

c1 1c2 < 1

c1 = 1c1:=0

c1 = 1c1:=0

c2:=0

44

Übung 2

Wie kann man zu zwei in Normalform als Difference BoundMatrix gegebenen Zonen feststellen, ob eine der beideneine Teilmenge der anderen beschreibt?

45

Übung 3

Warum kann man die Regionengraphkonstruktion nichtauf Stopwatch-Automaten anwenden?