fw

Werbung
Computergestützte Verifikation
19.4.2002
1
Inhalt
Kapitel 1: Systeme
Simulation
Fehlerbeseitigung
System
Abstraktion
Gegenbeispiel
Verfeinerung
Modell
Präzisierung
Spezifikation
Formalisierung
log. Formel
Model Checker
Überlauf
2
+
Zusammenfassung Kapitel 1
Als Modell wird dem Model Checker eine
implizite Systembeschreibung übergeben
Es gibt viele Beschreibungssprachen
Hinter jeder impliziten Beschreibung steckt
ein Transitionssystem
Konstruktion des Transitionssystems
ist Aufgabe des Model Checkers
3
Kapitel 2
Temporale Logik
4
Inhalt
Kapitel 1: Systeme
Kapitel 2: Temporale Logik
Simulation
Fehlerbeseitigung
System
Abstraktion
Gegenbeispiel
Verfeinerung
Modell
Präzisierung
Spezifikation
Formalisierung
log. Formel
Model Checker
Überlauf
5
+
Warum nicht einfach PK 1?
Beispiel: Wenn Prozess A eine Nachricht an B sendet, so
wird (irgendwann spaeter) Prozess B eine Bestätigung
zurückschicken.
 t (send(A,B,t)   t’ (send(B,A,t’)))
Viel zu kompliziert  Rechnen zu schwer
6
Was ist Temporale Logik?
Es geht nicht um Zeit
Real Time Logik
Es geht um Eigenschaften von Zuständen und
deren Änderung in Systemabläufen
Es ist (bei uns) eine Erweiterung der
Aussagenlogik
7
Die Temporale Logik CTL*
(Computation Tree Logic)
Ausgangspunkt: Eigenschaften von Zuständen
Sei AP eine Menge von atomaren Aussagen.
Jedes Element von AP ist eine
Zustandsformel in CTL*
Jeder Zustand liefert eine Belegung der atomaren
Aussagen mit Wahrheitswerten: s(p)  {W,F}
Ein Zustand s erfüllt p  AP gdw. s(p) = W.
s~p
a,c
~ c
a,c ~ b
8
Zustandseigenschaften
“bin bei Anweisung k”
“Mailbox ist leer”
“nil dereferenziert”
“x[17] > 35”
q
q,n
k,q,n
x,k
Annahme: s(p) mit vernachlässigbarem Aufwand
berechenbar aus Repräsentation von s im Rechner
9
Pfade in Transitionssystemen
s1
s1
s4
s2
s3
s6
s5
s1 s2 s3 s1 s4 s5 s6 s4 s5 s6 ...
s1 s4 s5 s6 s4 s5 s6 s4 s5 s6 ...
Wir betrachten nur unendliche Pfade
10
(ggf. unendliche Wiederholung des Endzustandes)
CTL* -Triviale Pfadformeln
p:
a
a,q b
c
c
c,d
.....
Jede Zustandsformel ist eine Pfadformel
Ein Pfad erfüllt eine Zustandsformel gdw. sein
erster Zustand sie erfüllt.
p~a
p~c
p ~ true
11
CTL* - Der NACHFOLGER-Operator
p:
a
a,q
a,q b
c
c
c,d
.....
Wenn f eine Pfadformel ist, so auch X f
Ein Pfad (s0 s1 s2 s3 ... ) erfüllt X f gdw.
(s1 s2 s3 s4 ... ) erfüllt f.
p~Xa
p~X
X bb
XX
XX
Tautologien: X  f w  X f
X (f  ) w X f  X 
12
CTL* - Der IRGENDWANN-Operator
p:
a ...... a,q b
c
c
c,d
.....
Falls f eine Pfadformel ist, so auch F f
Ein Pfad (s0 s1 s2 s3 ... ) erfüllt F f gdw.
(s[i] s[i+1] s[i+2] s[i+3] ... ) erfüllt f, für ein im0.
p~Fb
Tautologien: f u F f
XFfwFXf
Ffwf -XFf
p ~ X a - F( b  X c)
XfuFf
FfwFFf
F (f  ) u F f  F
F (f - ) w F f - 13 F
CTL* - Der IMMER-Operator
p:
a ...... a,q b,q a,c q,c q
q
.....
Wenn f eine Pfadformel ist, so auch G f
Ein Pfad (s0 s1 s2 s3 ... ) erfüllt G f gdw.
(s[i] s[i+1] s[i+2] s[i+3] ... ) erfüllt f, für alle im0.
p ~ G (a - q)
Tautologien:
Gfuf
GfuFf
GfwGGf
G f - G  u G (f - )
Gfwf XGf
GfuXf
GfwFf
G f G  w G (f 
14
Kombinationen von F and G
GFf
=
f gilt unendlich oft
.......
FGf
=
f stabilisiert
..........
G ( f u F ) = f führt zu 
..........
Tautologien: F G F f w G F f
GFGfwFGf
15
CTL* - Der BIS-Operator
p:
a
a,d a,q c,q a,c q,c q
q
.....
Wenn f und  Pfadformeln sind, so auch f U 
Ein Pfad (s0 s1 s2 s3 ... ) erfüllt f U  gdw.
(s[i] s[i+1] s[i+2] s[i+3] ... ) erfüllt , für ein im0,
und (s[j] s[j+1] s[j+2] ... ) erfüllt f, für alle j < i.
p~aUc
Tautologien:  u f U 
F f w true U f
fU uf
fU w
 - (f  X (
16
Temporale Operatoren auf Pfaden –
Zusammenfassung
Symbol
X/;
F/(
engl. Name
nextstep
eventually
G/1
always
U
until
Vergangenheitsversion
P / ; (previous)
O/(
(once)
B / 1 (always been)
S
(since)
14444444244444444444443
+ atomare Aussagen + Boolesche Operatoren
= Linear Time Temporal Logic (LTL)
17
Sicherheit und Lebendigkeit
Eine Pfadeigenschaft kann aufgefaßt werden als die
Menge derjenigen Pfade, die die Eigenschaft erfüllen
S ist eine Sicherheitseigenschaft, wenn zu jedem p  S
ein (endl.) Anfangsstück p’ existiert, so daß jede unendliche
Fortsetzung von p’ ebenfalls  S ist.
Also: Verletzung einer Sicherheitseigenschaft kann
nach endlicher Zeit festgestellt werden und ist permanent.
Beispiele:
Gf
Xf
18
Sicherheit und Lebendigkeit
L ist eine Lebendigkeitseigenschaft, wenn zu jedem endlichen
Pfad p eine Fortsetzung p’  L existiert.
Also: Für keinen Pfad kann ich mir nach endlicher Zeit
sicher sein, daß er die Eigenschaft verletzt.
Beispiele: F f
GF f
FG f
Satz: Jede Pfadeigenschaft ist äquivalent zu einer Konjunktion
aus einer Sicherheits- und einer Lebendigkeitseigenschaft.19
Sicherheit und Lebendigkeit
in der Praxis: Unterteilung in Sicherheit und Lebendigkeit
sehr natürlich
Sicherheit = nichts Schlimmes kann jemals passieren
Lebendigkeit = Etwas Erwünschtes wird irgendwann passieren
20
Der Berechnungsbaum
s1
s4
s1
s2
s3
s6
s5
s2
s4
s3
s1
s2
s5
s5
s4
s6
s6
s4
21
Der Berechnungsbaum
a,b
c
a,b
q
q
a,q
q
c
ist unendlich in jedem Zweig
a,q
Zu jedem (Anfangs-)zustand gibt es
genau einen Berechnungsbaum
Berechnungsbaum hat die gleichen a,b
Pfade wie zugrundeliegendes
Transitionssystem (beim
q
c
gleichen Anfangszustand)
a,q
q
q
c
22
CTL* -Pfadquantoren
Wenn f eine Pfadformel ist, so
ist E f eine Zustandsformel
s erfüllt E f gdw. es einen Pfad p
gibt, der bei s beginnt und p ~ f
s
a,b
a,d
c
s~EFc
Wenn f eine Pfadformel ist, so
ist A f eine Zustandsformel
s erfüllt A f gdw. für alle Pfade p,
die bei s beginnen, gilt: p ~ f
s~AXa
Tautologien: A f w  E f
A f u E 23
f
CTL* - Komplexe Formeln
CTL* = Atomare Zustandsaussagen
+ Boolesche Operatoren + Temporale (Pfad-)
Operatoren + Pfadquantoren
a
a
a
a
a
a
GEFa
123
Zustandsformel
1423
Pfadformel
24
CTL* - Zusammenfassung
sehr ausdrucksstark
Keine effizienten Algorithmen bekannt
Es gibt effiziente Algorithmen für Fragmente
von CTL*
CTL*
LTL
nur Pfadformeln
CTL
Nur Zust.formeln
25
Computation Tree Logic (CTL)
CTL = atomare Zustandsaussagen + Boolesche
Operatoren + Paare
[ Pfadquantor , Temporaloperator ]
AG
(invariant)
AX
(in allen Nachf.)
EG (mgl.weise immer)
EX
(in einem Nachf.)
AF
A( . U . )
EF
E( . U . )
(irgendwann)
(bis)
(möglich)
(bis)
26
CTL –AG und EF
s ~ EF grün
s
s ~ AG blau
Tautologien:
 AG f w EF  f
AG AG f w AG f
EF EF f w EF f
f u EF f
AG f u f
AG EF AG EF f w AG EF f
EF AG EF AG f w EF AG27 f
CTL –EG und AF
s ~ AF grün
s
s ~ EG blau
Tautologienb:
 EG f w AF  f
EG EG f w EG f
AF AF f w AF f
f u AF f
EG f u f
28
CTL –AX und EX
s ~ EX grün
s
s ~ AX blau
Tautologien:
 AX f w EX  f
AX f u EX f
29
CTL –AU und EU
s
s ~ E(grün U gelb)
s ~ A(blau U rot)
Tautologien:
EF f w E(true U f)
AF f w A(true U f)
 A(f U ) w EG   - E(  U ( f   ))
30
Einige relevante CTL-Eigenschaften
AG sicher
- nichts Schlimmes passiert jemals
AG eine Aktion enabled
- Verklemmungsfrei
EF Menüpunkt
- man kann sich
zu ihm durchklicken
AF Ziel
- Irgendwann wird man es schaffen
AG(req u AF ack) -Auf jeden Req folgt ein Ack
AG AF verfügbar
AG EF exit
- ...es macht Sinn zu warten
- man kann immer sauber
beenden
31
Gegenbeispiele
Simulation
Fehlerbeseitigung
System
Abstraktion
Gegenbeispiel
Verfeinerung
Modell
Präzisierung
Spezifikation
Formalisierung
log. Formel
Model Checker
Überlauf
32
+
Gegenbeispiele für A-Formeln
Gegenbeispiel für... =
Zeugenpfad für...
EF  f
AF f
EG  f
(AX f)
(EX  f)
A(f U )
EG  
oder
E(  U (  f   
123
AG f
33
Basen für die Temporaloperatoren
CTL: (E/A)X und EU und AU
LTL : X und U
F f w true U f
GfwFf
AX f w  EX  f
sonst analog LTL
oder
(E/A)X und EU und EG
A(f U ) w
(EG   - E(  U (f
34
Gültigkeit in Transitionssystemen
Ein Transitionssystem erfüllt eine CTL*-Formel f, falls
zu jedem Anfangszustand der zugehörige
Berechnungsbaum f erfüllt.
Ein Transitionssystem erfüllt eine LTL-Formel f, falls jeder
bei einem Anfangszustand beginnende Pfad f erfüllt.
Ein Transitionssystem erfüllt eine CTL-Formel f, falls
jeder Anfangszustand f erfüllt.
Tautologie: f u A f
35
Interessante Probleme
1. Erfüllbarkeit: Geg.: Formel f
Frage: Gibt es ein Transitionssystem,
in dem f gilt?
2. Axiomatisierbarkeit: Frage: Gibt es eine endl. Menge von
Formeln und Regeln, aus
denen sich alle Tautologien
ableiten lassen?
3. Model Checking: Geg.: Formel f und Transitionssystem TS
Frage: Erfüllt TS f?
CTL*: O(2|f| |TS|)
LTL: O(2|f| |TS|)
LTL: O(|f| |TS|)
36
Übung 1
Gegeben ist folgender Pfad. Die Notation ( ... ) * soll bedeuten,
daß sich die eingeklammerte Sequenz bis ins Unendliche
wiederholt. Welche Pfadeigenschaften sind erfüllt?
a
a,b
d
a,d
G ((a  d) u X X G c)
G(auXb)
b
c
a,c ( a,c b,c
c )*
G (a u F b)
( c) U b
(F b) U c
37
Übung 2
Welche der folgenden Formeln sind Tautologien?
F  w F ( f U )
G ( f U ) u G F 
fUufUX
f U ( U c) u (f - ) U c
38
Übung 3
Formalisiere folgende Spezifikationen in CTL* (wähle dazu
geeignete atomare Aussagen)!
Eine im Bahnhof stehende S-Bahn schließt die Türen,
bevor sie abfährt
Es ist nie möglich, vom 2. Gang in den 4. Gang zu schalten,
ohne zwischendurch in den 3. Gang geschaltet zu haben
Zwei parallele Prozesse schreiben nie gleichzeitig auf
die geteilte Variable x.
Jede Variable ist initialisiert, bevor sie das erste Mal
benutzt wird.
39
Hinweis: Man braucht wirklich keine Vergangenheitsoperatoren!
Herunterladen