Kapitel 2 Temporale Logik

Werbung
Inhalt
Kapitel 1: Systeme
Computergestützte Verifikation
Simulation
19.4.2002
Fehlerbeseitigung
System
Gegenbeispiel
Verfeinerung
Modell
Abstraktion
Präzisierung
Spezifikation
Model Checker
log. Formel
Formalisierung
+
Überlauf
1
2
Zusammenfassung Kapitel 1
Als Modell wird dem Model Checker eine
implizite Systembeschreibung übergeben
Kapitel 2
Es gibt viele Beschreibungssprachen
Hinter jeder impliziten Beschreibung steckt
ein Transitionssystem
Temporale Logik
Konstruktion des Transitionssystems
ist Aufgabe des Model Checkers
3
4
Inhalt
Kapitel 1: Systeme
Kapitel 2: Temporale Logik
Warum nicht einfach PK 1?
Simulation
Fehlerbeseitigung
System
Abstraktion
Beispiel: Wenn Prozess A eine Nachricht an B sendet, so
wird (irgendwann spaeter) Prozess B eine Bestätigung
zurückschicken.
Gegenbeispiel
Verfeinerung
Modell
t (send(A,B,t)
Präzisierung
Spezifikation
Formalisierung
log. Formel
Model Checker
+
Viel zu kompliziert
Überlauf
5
t’ (send(B,A,t’)))
Rechnen zu schwer
6
1
Die Temporale Logik CTL*
Was ist Temporale Logik?
(Computation Tree Logic)
Ausgangspunkt: Eigenschaften von Zuständen
Real Time Logik
Es geht nicht um Zeit
Sei AP eine Menge von atomaren Aussagen.
Jedes Element von AP ist eine
Zustandsformel in CTL*
Es geht um Eigenschaften von Zuständen und
deren Änderung in Systemabläufen
Jeder Zustand liefert eine Belegung der atomaren
Aussagen mit Wahrheitswerten: s(p) {W,F}
Es ist (bei uns) eine Erweiterung der
Aussagenlogik
Ein Zustand s erfüllt p
s
7
p
a,c
AP gdw. s(p) = W.
c
a,c
b
8
Pfade in Transitionssystemen
Zustandseigenschaften
s1
“bin bei Anweisung k”
“Mailbox ist leer”
s4
s2
“nil dereferenziert”
“x[17] > 35”
q,n
s1 s2 s3 s1 s4 s5 s6 s4 s5 s6 ...
k,q,n
x,k
s1 s4 s5 s6 s4 s5 s6 s4 s5 s6 ...
Annahme: s(p) mit vernachlässigbarem Aufwand
berechenbar aus Repräsentation von s im Rechner
9
CTL* -Triviale Pfadformeln
a,q b
a
s5
s3
q
π:
s6
c
c
c,d
Wir betrachten nur unendliche Pfade
10
(ggf. unendliche Wiederholung des Endzustandes)
CTL* - Der NACHFOLGER-Operator
.....
π:
a,q
a,q b
a
c
c c,d
Jede Zustandsformel ist eine Pfadformel
Wenn φ eine Pfadformel ist, so auch X φ
Ein Pfad erfüllt eine Zustandsformel gdw. sein
erster Zustand sie erfüllt.
Ein Pfad (s0 s1 s2 s3 ... ) erfüllt X φ gdw.
(s1 s2 s3 s4 ... ) erfüllt φ.
π
π
a
π
c
π
true
11
X
π
a
Tautologien: X φ
X (φ ψ)
X φ
Xφ
Xψ
.....
XXXb
12
2
CTL* - Der IRGENDWANN-Operator
a ...... a,q b
π:
c
c
CTL* - Der IMMER-Operator
.....
c,d
Falls φ eine Pfadformel ist, so auch F φ
Fb
Tautologien: φ
Fφ
XFφ
FXφ
Fφ
φ XFφ
π
Xφ
Fφ
F (φ ψ)
F (φ ψ)
Xa
F( b
Fφ
Fφ
Fφ
Ein Pfad (s0 s1 s2 s3 ... ) erfüllt G φ gdw.
(s[i] s[i+1] s[i+2] s[i+3] ... ) erfüllt φ, für alle i 0.
π
X c)
FFφ
Fψ
F ψ 13
=
=
φ gilt unendlich oft
φ stabilisiert
F ψ) = φ führt zu ψ
GFφ
GFGφ
FGφ
X/
F/(
G/
U
engl. Name
nextstep
eventually
always
until
B/
S
a
a,d a,q c,q a,c q,c q
.....
q
Ein Pfad (s0 s1 s2 s3 ... ) erfüllt φ U ψ gdw.
(s[i] s[i+1] s[i+2] s[i+3] ... ) erfüllt ψ, für ein i 0,
und (s[j] s[j+1] s[j+2] ... ) erfüllt φ, für alle j < i.
aUc
Tautologien:
ψ
φUψ
ψ
φ
φUψ
Fφ
φUψ
ψ
true U φ
(φ X (φ U ψ))
16
Sicherheit und Lebendigkeit
Vergangenheitsversion
(previous)
P/
O/(
15
Temporale Operatoren auf Pfaden –
Zusammenfassung
Symbol
Wenn φ und ψ Pfadformeln sind, so auch φ U ψ
π
..........
Tautologien: F G F φ
Tautologien:
Gφ
φ
Gφ
Xφ
Gφ
Fφ
Gφ
GGφ
Gφ
F φ
G (φ ψ)
Gφ Gψ
G (φ ψ)
Gφ Gψ
14
Gφ
φ XGφ
π:
..........
G(φ
q)
CTL* - Der BIS-Operator
.......
FGφ
G (a
Kombinationen von F and G
GFφ
.....
q
Wenn φ eine Pfadformel ist, so auch G φ
Ein Pfad (s0 s1 s2 s3 ... ) erfüllt F φ gdw.
(s[i] s[i+1] s[i+2] s[i+3] ... ) erfüllt φ, für ein i 0.
π
a ...... a,q b,q a,c q,c q
π:
(once)
(always been)
Eine Pfadeigenschaft kann aufgefaßt werden als die
Menge derjenigen Pfade, die die Eigenschaft erfüllen
S ist eine Sicherheitseigenschaft, wenn zu jedem π S
ein (endl.) Anfangsstück π’ existiert, so daß jede unendliche
Fortsetzung von π’ ebenfalls S ist.
(since)
+ atomare Aussagen + Boolesche Operatoren
= Linear Time Temporal Logic (LTL)
17
Also: Verletzung einer Sicherheitseigenschaft kann
nach endlicher Zeit festgestellt werden und ist permanent.
Beispiele:
Gf
Xf
18
3
Sicherheit und Lebendigkeit
Sicherheit und Lebendigkeit
L ist eine Lebendigkeitseigenschaft, wenn zu jedem endlichen
Pfad π eine Fortsetzung π’ 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
in der Praxis: Unterteilung in Sicherheit und Lebendigkeit
sehr natürlich
Sicherheit = nichts Schlimmes kann jemals passieren
FG f
Lebendigkeit = Etwas Erwünschtes wird irgendwann passieren
Satz: Jede Pfadeigenschaft ist äquivalent zu einer Konjunktion
aus einer Sicherheits- und einer Lebendigkeitseigenschaft.19
20
Der Berechnungsbaum
Der Berechnungsbaum
s1
s4
a,b
s1
s2
c
s6
s5
s3
a,b
q
s2
s4
s3
s5
q
a,q
q
c
ist unendlich in jedem Zweig
s1
s2
s4
Berechnungsbaum hat die gleichen a,b
Pfade wie zugrundeliegendes
Transitionssystem (beim
q
c
gleichen Anfangszustand)
s6
s5
s6
a,q
Zu jedem (Anfangs-)zustand gibt es
genau einen Berechnungsbaum
s4
a,q
q
21
CTL* -Pfadquantoren
a,b
s erfüllt E φ gdw. es einen Pfad π
gibt, der bei s beginnt und π φ
22
CTL* = Atomare Zustandsaussagen
+ Boolesche Operatoren + Temporale (Pfad-)
Operatoren + Pfadquantoren
EFc
a
a
a
Wenn φ eine Pfadformel ist, so
ist A φ eine Zustandsformel
a,d
s erfüllt A φ gdw. für alle Pfade π,
die bei s beginnen, gilt: π φ
c
s
c
CTL* - Komplexe Formeln
Wenn φ eine Pfadformel ist, so
ist E φ eine Zustandsformel
s
q
s
E φ
Eφ
Tautologien: A φ
AXa
Aφ
23
a
a
a
Zustandsformel
GEFa
Pfadformel
24
4
Computation Tree Logic (CTL)
CTL* - Zusammenfassung
sehr ausdrucksstark
CTL = atomare Zustandsaussagen + Boolesche
Operatoren + Paare
[ Pfadquantor , Temporaloperator ]
Keine effizienten Algorithmen bekannt
Es gibt effiziente Algorithmen für Fragmente
von CTL*
CTL*
(invariant)
AX
(in allen Nachf.)
nur Pfadformeln
Nur Zust.formeln25
EX
EF grün
AG blau
s
s
s
s
EX grün
s
AX blau
Tautologien:
AX φ
EX
AX φ EX φ
s
AF grün
s
EG blau
(bis)
Tautologienb:
EG φ
AF φ
EG EG φ
EG φ
AF φ
AF AF φ
φ
AF φ
φ
EG φ
28
CTL –AX und EX
E( . U . )
(möglich)
CTL –EG und AF
s
EF
(bis)
26
Tautologien:
AG φ
EF φ
AG AG φ
AG φ
EF φ
EF EF φ
φ
EF φ
AG φ
φ
AG EF φ
AG EF AG EF φ
EF AG EF AG φ
EF AG27 φ
(irgendwann)
A( . U . )
(in einem Nachf.)
CTL –AG und EF
s
AF
EG (mgl.weise immer)
CTL
LTL
AG
CTL –AU und EU
s
s
s
E(grün U gelb)
A(blau U rot)
φ
29
A(φ U ψ)
Tautologien:
EF φ
E(true U φ)
AF φ
A(true U φ)
EG ψ E( ψ U ( φ
ψ))
30
5
Gegenbeispiele
Einige relevante CTL-Eigenschaften
AG sicher
- nichts Schlimmes passiert jemals
AG eine Aktion enabled
- Verklemmungsfrei
EF Menüpunkt
- man kann sich
zu ihm durchklicken
Simulation
AF Ziel
AG(req
- Irgendwann wird man es schaffen
Fehlerbeseitigung
Verfeinerung
Modell
Abstraktion
System
-
AF ack) -Auf jeden Req folgt ein Ack
AG AF verfügbar
AG EF exit
Model Checker
Präzisierung
- ...es macht Sinn zu warten
- man kann immer sauber
beenden
Gegenbeispiel
Spezifikation
log. Formel
Formalisierung
+
Überlauf
31
32
Gegenbeispiele für A-Formeln
Gegenbeispiel für... =
AG φ
EF
AF φ
EG
(AX φ)
(EX
!
A(φ U ψ)
Basen für die Temporaloperatoren
Zeugenpfad für...
LTL : X und U
φ
Fφ
Gφ
φ)
EG ψ
oder
E( ψ U (
CTL: (E/A)X und EU und AU
φ
"
true U φ
φ
"$# F #
"$#
#
AX φ
EX φ
sonst analog LTL
oder
(E/A)X und EU und EG
φ
ψ))
"
# % E(#
A(φ U ψ)
(EG ψ
#
# & # ψ)))
ψU( φ
33
Interessante Probleme
Gültigkeit in Transitionssystemen
Ein Transitionssystem erfüllt eine CTL*-Formel φ, falls
zu jedem Anfangszustand der zugehörige
Berechnungsbaum φ erfüllt.
Ein Transitionssystem erfüllt eine LTL-Formel φ, falls jeder
bei einem Anfangszustand beginnende Pfad φ erfüllt.
Ein Transitionssystem erfüllt eine CTL-Formel φ, falls
jeder Anfangszustand φ erfüllt.
Tautologie: φ
'
34
1. Erfüllbarkeit: Geg.: Formel φ
Frage: Gibt es ein Transitionssystem,
in dem φ 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 φ und Transitionssystem TS
Frage: Erfüllt TS φ?
CTL*: O(2|φ| |TS|)
Aφ
35
LTL: O(2|φ| |TS|)
LTL: O(|φ| |TS|)
36
6
Übung 1
Übung 2
Gegeben ist folgender Pfad. Die Notation ( ... ) * soll bedeuten,
daß sich die eingeklammerte Sequenz bis ins Unendliche
wiederholt. Welche Pfadeigenschaften sind erfüllt?
Welche der folgenden Formeln sind Tautologien?
Fψ
a
a,b
d
a,d
b
& d) ' X X G c)
G(a' Xb)
(#
G ((a
c
a,c ( a,c b,c
G (a
'
c) U b
c )*
"
φUψ
F b)
'
F ( φ U ψ)
G ( φ U ψ)
φUXψ
φ U (ψ U χ)
'
'
GFψ
(φ
%
ψ) U χ
(F b) U c
37
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!
7
Herunterladen