Kapitel 3. Temporale Logik

Werbung
Kapitel 3. Temporale Logik
Intention bei der Modellierung: • zeitliche Reihenfolge von Zuständen
• keine Zeitdauer, Arithmetik
• Spezifikation von Programmeigenschaften und PS-Semantik [Pnueli 1977]
Inhalt des Kapitels: – Modellierung nebenläufiger Programme als Transitionssysteme
– Logiken LTL, CTL, CTL* zur Spezifikation von Programmeigenschaften
– Beweisen und Modellprüfen
Vertiefung: Stammvorlesung CAV
Vorlesung Analyse von Programmen durch ,,Model Checking”, SS2000 (Harald Ganzinger,
Andreas Podelski)
Literatur: E.A. Emerson: Temporal and Modal Logic. Handbook of Theoretical Computer Science Science,
Kap. 16, Elsevier 1990
E.M. Clarke, B.-H. Schlingloff: Model Checking (erscheint demnächst, Kopie in der Bibliothek)
E.M. Clarke, O. Grumberg, D. Long: Verification Tools for Finite-State Concurrent Systems, LNCS 803,
124–175, 1994
1
Beispielprogramm
2
3
3.1 Modellierung von nebenläufiger Berechnung
P = P1kP2k . . . kPk
• (faire) nichtdeterministische Verzahnung elementarer Schritte der Pj
P1P1P2P1P1P1P2P2 . . .
bei k = 2
• unendliche Rechnungen: die Bedeutung eines Programms ist die Folge seiner Kommunikationen (Reaktionen) mit der Umgebung
• globaler Zustandsraum S (alle Pj operieren auf gemeinsamen globalen Variablen
v1, . . . , vm):
Qk
Qm
S=
i=1 Loc(P j) ×
j=1 Dvj
Marken in P j
Wertebereich
(‘locations‘)
von vj
• brauchen Logiken, die über Mengen (insbesondere Bäume) von Zustandsfolgen Aussagen
zu formalisieren gestatten
4
3.2 Propositionale lineare TL (PLTL)
5
Pragmatik: Formalisierung von Eigenschaften von Programmen mit endlichen Zustandsräumen (Markenmengen immer endlich, aber Variablenbereiche müssen ggf. abstrahiert werden)
Syntax:
p, q ::= P ;
|p∧q
. . . entsprechend die anderen Junktoren
> = p ∧ ¬p
⊥ = p ∨ ¬p
(prop. Var.)
(Konj.)
| ¬p
(Neg.)
| Xp
(nexttime)
|pU q
Abkürzungen: p ∨ q = ¬(¬p ∧ ¬q)
P ∈Π
(until)
Weitere Abkürzungen
6
F p =df > U p
(irgendwann)
G p =df ¬F ¬p
(immer)
F∞ p =df G F p
(∞ oft)
G∞ p =df F G p
(fast überall)
p B q =df ¬((¬p) U q)
Klammereinsparung gemäß Präzedenz
F , G , X , U , B, F∞ , G∞ ¬ ∧ ∨ ⊃ ≡
(vorher)
7
Formelbeispiele
m
^
k=1
m
^
8
G ¬(atl3 ∧ atm3)
(Sicherheit)
G (atl1 ⊃ F atl3)
(Lebendigkeit)
atl0 ∧ ϕ ⊃ F (atlh ∧ ψ)
(totale Korrektheit)
request B grant
(keine ungefragte Reaktion)
(G∞ enabledk ⊃ F∞ executedk )
(schwache Fairness)
(F∞ enabledk ⊃ F∞ executedk )
(starke Fairness)
k=1
Semantik
Definition: lineare Zeitstruktur M = (S, x, L), mit
• [ S = (S, <) isomorph zu (N, <) ]1
• x : N → S (Zustandsfolge)
• L : S → 2Π (Markierungsfunktion)
(bzw. L : Π → 2S
bzw. L : S × Π → {0, 1}
bzw. L : S → (Π → {0, 1})
[L(s)=
ˆ Menge der in s wahren Propositionen]
Notation:
x = (s0, s1, . . . ) = (x(0), x(1), . . . ) = (x0, x1, . . . )
(voller) Pfad, Berechnungsfolge
1
kann implizit bleiben
9
Semantik II
Gültigkeit einer Formel p: Wir schreiben dann M, x |= p bzw. x |= p. Nachfolgend sei
xl = (xl, xl+1, . . . ) der Suffix von x ab l.
x
x
x
x
x
|=
|=
|=
|=
|=
P
p∧q
¬p
Xp
(p U q)
⇔df
⇔df
⇔df
⇔df
⇔df
P ∈ L(x0)
(für P ∈ Π)
x |= p und x |= q
nicht x |= p
x1 |= p
es gibt j ∈ N, so dass xj |= q und ∀k < j : xk |= p
NB: x |= F q gdw. x |= > U q gdw. es gibt j ∈ N, so dass xj |= q
1
Quantordualitäten
1
Tautologien
1
Tautologien II
1
Tautologien III
1
Erweiterung zu LTL erster Stufe (FOLTL)
Hier werden normale Signaturen Σ = (Ω, Π) für Logik erster Stufe zugrundegelegt, wobei
die Symbole zusätzlich in lokale und globale Symbole unterteilt sind.
Syntax:
t ::=
|
p, q ::=
|
|
|
|
|
s;
Xt
A;
p∧q
¬p
pU q
Xp
∃yp
s ∈ TΣ(X)
(normale Terme)
(erweiterte Terme)
A Σ-Atom (einschl. Gleich.) über erweit. Termen
+ übliche Abkürzungen (einschl. ∀yp = ¬∃y¬p)
1
Semantik
Lineare Zeitstrukturen erster Stufe: M = (S, x, L), wobei jetzt L : S → Σ − Alg (d.h.
L(s) ist Σ−Algebra) mit
• UL(s) = UL(s), ∀s, s0 ∈ S (gleiche Universen)
• oL(s) = oL(s0), für alle s, s0 ∈ S wenn o ∈ Π ∪ Ω globales Symbol
häufig: lokal sind höchstens 0-stellige Prädikate (und freie Variablen)
Die Auswertung von Termen und Formeln über einer gegebenen Zeitstruktur und Variablenbelegung (und
damit die Definition von Gültigkeit) ist, wie man’s sich denkt definiert (die kanonische Kombination der
Semantiken von PLTL und PL1). Eine Möglichkeit, die von bestimmten Konventionen über die Einteilung in
lokale und globale Symbole ausgeht, ist auf der nächsten Folie Aus dem Emerson-Artikel kopiert.
1
Semantik FOLTL
1
FOLTL ist nicht handhabbar
Satz 3.1 Die gültigen Formeln von FOLTL sind nicht rekursiv aufzählbar.
Beweis. Die Definitionen von Null 0, Nachfolgerfunktion s, Addition und Multiplikation aus
der Peano-Arithmetik P A, zusammen mit
Φ ≡ ∀u(z ≈ 0 ∧ G (z ≈ u ⊃ X (z ≈ s(u)))
wobei die zusätzliche Konstante z ( Zustand“) das einzige lokale Symbol der Signatur sei,
”
axiomatisiert die natürlichen Zahlen. D.h. gegeben ein Pfad x, dann ist diese Formel wahr
für x, genau dann wenn an jeder Stelle xi in x die Konstante z den Wert si(0) hat. Nun
kann man zusätzlich durch
Ψ ≡ ∀u F (u ≈ z)
spezifizieren, dass es in Modellen keine anderen Elemente als natürliche Zahlen gibt. Somit
wäre für eine Formel p in PL1 über der Signatur ΣP A (ohne z) x |= (P A ∧ Φ ∧ Ψ ⊃ p)
gdw. N |= p. 2
1
3.3 CTL und CTL*
1
Syntax
Zustandsformeln
pz , qz
::=
|
|
|
Pfadformeln (CTL*)
p, q
::=
|
|
|
Pfadformeln (CTL)
p, q
::=
|
|
|
P; P ∈ Π
(pz ∧ qz ) | ¬pz
Ep
Ap
(prop. Var.)
(Boolesche Kombinationen)
(es existiert Pfad)
(alle Pfade)
pz
Xp
pU q
(p ∧ q) | ¬p
(Zustandsformel)
(nexttime)
(until)
(Boolesche Kombinationen)
pz
X pz
pz U qz
G pz
(Zustandsformel)
(nexttime)
(until)
(globally)
LTL als Fragment von CTL*
CTL*-Formeln der Form
Ap
wobei p eine LTL-Formel, sind das LTL-Fragment von CTL*.
2
Ausdruckskraft: LTL vs. CTL vs CTL*
Sicherheit:
AG p
Lebendigkeit: AG p ⊃ AF q
Fairness:
(in CTL)
(in CTL)
A (F∞ p ⊃ F∞ q)
≡ A (G F p ⊃ G F q) (in CTL* \ CTL)
AG (EF p)
(in CTL \ LTL)
A (FG p)
(in LTL \ CTL)
Fazit: LTL und CTL sind unvergleichbare, echte Fragmente von CTL*. (Diesen Nachweis muss
man für die angegebenen Formeln natürlich semantisch führen, d.h. man muß zeigen, dass die durch die
jeweilige Formel spezifizierte Zustandsmenge nicht in der anderen Logik definierbar ist.)
2
Semantik der wesentlichen CTL-Pfadquantoren
2
Baumartige Strukturen zur Semantik von CTL(∗)
Baumartige Zeitstrukturen sind Tripel M = (S, R, L), mit
• S Zustandmenge
• R ⊆ S × S totale Relation (d.h. ∀s ∈ S∃s0 ∈ S : R(s, s0))
• L : S → 2Π
(wie früher: L(s)=
ˆ Menge der in s wahren Prop.)
o.B.d.A: Graph R von M ein Baum (Aufrollen von M zu Baum M̂ ). M und M̂ können
durch CTL*-Formeln nicht unterschieden werden.
(→ Übung)
2
Aufrollen am Beispiel
2
Interpretation von CTL(∗)-Formeln
Sei M eine Zeitstruktur M = (S, R, L).
(voller) Pfad in M: Folge x = (s0, s1, . . . ), so dass si ∈ S und für alle 0 ≤ i ist (si, si+1) ∈
R. Wie früher ist die Notation für Suffixe: xi = (si, si+1, . . . )
Zustandsformeln erhalten einen Wahrheitswert bzgl. M, s
Pfadformeln: erhalten einen Wahrheitswert bzgl. M, x
2
Berechnung der Wahrheitswerte
2
Multiprozess-Zeitstrukturen (Transitionssysteme)
Motiv: Definition konkreterer semantischer Strukturen für nebenläufige Programme, für die
Fairnessbedingungen leicht ausgedrückt werden können (theoretisch nicht essentiell).
formal: M = (S, R, L), wobei S, L wie oben, R = {R1, . . . , Rk }, mit Rj ⊆ S × S so dass
R = ∪iRi total
Pfade sind dann Folgen x = (s0, d1, s1, d2, s2, . . . ), wobei sj ∈ S, di ∈ {1, . . . , k} und
(si, si+1) ∈ Rdi+1 ; anschaulich
d
d
d
1
2
3
s0 −→
s1 −→
s2 −→
...
spezielle Propositionen enabledi, 1 ≤ i ≤ k, existieren in Π, definiert durch M, s0 |=
enabledi ⇔ s0 ∈ domRi = {s ∈ S | ∃t : (s, t) ∈ Ri} .
spezielle Pfadformeln executedi, 1 ≤ i ≤ k gibt es, definiert durch
M, x |= executedj ⇔ d1 = j
(d.h. der erste Schritt in x ist ein Schritt von Prozess j).
2
Abstrakte Modelle nebenläufiger Berechnung
Programme sind Tripel (M, ϕST ART , Φ), wobei
• M eine Multiprozess-Zeitstruktur
• ϕST ART aussagenlogischer Ausdruck, mit der Intention, dass {s | M, s |= ϕST ART }
die Menge der Startzustände angibt
• Φ eine LTL-Formel, genannt Fairnessbedingung
Beispiele für Fairnessformeln
Vk
• unbedingte Fairness: Φ =V i=1 F∞ executedi
• schwache Fairness: Φ V= i (G∞ enabledi ⊃ F∞ executedi)
• starke Fairness: Φ = i (F∞ enabledi ⊃ F∞ executedi)
2
Spezifikation von Programmeigenschaften
Definition: (M, ϕST ART , Φ) |= p, falls
im linearen Fall (p in LTL):
∀ Pfade x in M : M, x |= ϕST ART und M, x |= Φ ⇒ M, x |= p
d.h.
M |= ϕST ART ∧ Φ ⊃ p
im verzweigten Fall (p Zustandsformel in CTL*):
∀s ∈ S : M, s |= ϕST ART ⊃ pφ
wobei pφ aus p durch Relativierung
A q 7→ A (Φ ⊃ q)
E q 7→ E (Φ ∧ q)
der Quantoren auf faire Pfade (die Φ erfüllen) entstehe.
2
3.4 Modellprüfen für CTL(∗)
Problemstellung: effizientes Entscheiden von
?
M, s0 |= p,
für M = (S, R, L) eine endliche Zeitstruktur, p eine CTL(∗)-Zustandsformel und s0 ein
Zustand in S (Anfangszustand).
NB: Den verfeinerten Fall der Überprüfung von
(M, ϕST ART , Φ) |= p,
bei Transitionssystemen kann man mit dem oben Ausgeführten auf dieses einfachere
Problem reduzieren.
3
Reduzierte Definition von CTL
Wir können von folgender reduzierter CTL-Syntax ausgeben, in der es nur noch
Zustandsformeln gibt:
p, q ::= P ∈ Π | ¬p | p ∧ q | E (p U q) | EX p | EG p
Dann lassen sich die anderen Formeln wie folgt ableiten
Ap = p
(wenn p eine aussagenlog. Formel)
Ep = p
(wenn p eine aussagenlog. Formel)
EF P
= E (> U p)
AX p = ¬EX ¬p
AG p = ¬EF ¬p
AF p = ¬EG ¬p
A (p U q) = ¬E (¬q U (¬p ∧ ¬q)) ∧ ¬EG ¬q
3
Was ist Modellprüfen?
Nachfolgend als vorgegeben betrachtet sei eine Zeitstruktur M = (S, R, L), mit |S| < ∞.
Wir identifizieren jede Zustandsformel p mit der Menge
[[p]] = {s ∈ S | M, s |= p} ⊆ 2S
der Zustände, in denen p erfüllt ist.
Modellprüfen heißt nun, diese Extension [[p]] von p bei vorgegebenem endlichem M
auszurechnen.
3
Gemischte CTL-Formeln
In gemischten Formeln sind anstelle von Zustandsformeln auch explizite Zustandsmengen
Z ⊆ S erlaubt. Die Extension gemischter Formeln ist wie folgt definiert:
für Z ⊆ S
[[Z]] = Z,
[[P ]] = {s | P ∈ L(s)},
für P ∈ Π
[[¬p]] = S \ [[p]]
[[p ∧ q]] = [[p]] ∩ [[q]]
[[EX p]] = {s | ∃ s0 : R(s, s0) & s0 ∈ [[p]]}
[[E (p U q)]] = {s0 | ∃Pfad (s0, s1, s2, . . . )
∃j ≥ 0 : sj ∈ [[q]] und ∀ 0 ≤ i < j : si ∈ [[p]] }
[[EG p]] = {s0 | ∃Pfad (s0, s1, s2, . . . ) ∀j ≥ 0 : sj ∈ [[p]]
Nachfolgend identifizieren wir p mit [[p]].
3
Aus der Fixpunkttheorie (Wiederholung)
Satz 3.2 Sei |S| < ∞ und τ : 2S → 2S monoton. Dann
(i)
(ii)
(iii)
(iv)
(v)
(vi)
τ i(∅) ⊆ τ i+1(∅) , ∀i ∈ N
i+1
τ i(S)
⊇
τ
T
T(S) , ∀i ∈ N
τ (Si Pi) = Si τ (Pi), f.a. Ketten P0 ⊇ P1 ⊇ . . . , Pi ⊆ S
τ ( i PSi) = i τ (Pi),
f.a. Ketten P0 ⊆ P1 ⊆ . . .
S
∞
n0
µτ = T i=0 τ i(∅) = Ti=0
τ i(∅) = τ n0 (∅), für geeignetes n0 ≤ |S|
m0 i
∞
ντ = i=0 τ i(S) = i=0
τ (S) = τ m0 (S), für geeignetes m0 ≤ |S|
NB: τ : 2S → 2S nennt man auch Prädikatentransformer
3
Fixpunktcharakterisierung der rekursiven“ CTL-Operatoren
”
Satz 3.3
E (p U q) = µ Z . q ∨ (p ∧ EX Z)
|
{z
}
=df
µ τ mit τ : Z 7→ q ∨ (p ∧ EX Z)
EG p = νZ. p ∧ EX Z
wobei die vorkommenden Prädikatentransformer monoton sind.
Die abgeleiteten Operatoren lassen sich dann entsprechend charakterisieren, z.B.
EF p = E (> U p) = µZ. p ∨ (> ∧ EX Z) = µZ. p ∨ EX Z .
3
Beweisskizze für EG
Lemma 3.4 τ (Z) = p ∧ EX Z ist monoton.
Lemma 3.5 Falls τ (Z) = p ∧ EX Z, τ
m0
(S) =
T∞
i=0 τ
i
(S), s ∈ τ m0 (S), dann
s |= p & ∃s0 : (s, s0) ∈ R & s0 ∈ τ m0 (S)
Lemma 3.6 EG p ist Fixpunkt von τ (Z) = p ∧ EX Z
Lemma 3.7 EG p = νZ. p ∧ EX Z
3
Beweisskizze für EU
Lemma 3.8 τ (Z) = q ∨ (p ∧ EX Z) ist monoton.
Lemma 3.9 E (p U q) ist Fixpunkt von τ (Z) = q ∨ (p ∧ EX Z)
Lemma 3.10 E (p U q) = µZ.q ∨ (p ∧ EX Z)
3
Programmierung der Fixpunktiteration
3
Berechnung von E (p U q) im Beispiel
3
Explizites Modellprüfen
[[Z]] =Z
[[Q]] ={s | Q ∈ L(s)}
,Q ∈ Π
[[p ∧ q]] =[[p]] ∩ [[q]]
[[¬p]] =S \ [[p]]
[[EX p]] =R−1([[p]])
[[AX p]] =S \ (R−1(S \ [[p]]))
[[EF p]] =µZ.[[p]] ∪ R−1(Z)
[[EG p]] =νZ.[[p]] ∩ R−1(Z)
[[E (p U q)]] =µZ.[[q]] ∪ ([[p]] ∩ R−1(Z))
Satz 3.11 Explizites Modellprüfen ist möglich in O(|M | ∗ |p|)
Problem: M in der Praxis zu groß!
4
Geordnete, binäre Entscheidungsdiagramme
Engl: Ordered Binary Decision Diagram (OBDD)
• speicherökonomische Darstellung vieler“ Boolscher Funktionen
”
• kanonische Repräsentation (⇒ Äquivalenztest in 0(1))
• totale Variablenordnung
• Erzeugung durch Reduktionstransformationen
• Eliminierung duplizierter Blätter
• Eliminierung duplizierter innerer Knoten
• Eliminierung redundanter Tests
4
Beispiel: Ein Entscheidungsbaum
4
Beispiel als kleines Entscheidungsdiagramm
4
Beispiel als großes Entscheidungsdiagramm
Die Variablenordnung macht den Unterschied.
4
Implementierung von OBDDs
Hashtabelle mit Einträgen (x, u0, u1)
für Knoten mit Variable x und
Zeigern u0 und u1 zu Knoten oder Konstanten 0 oder 1
Implementierung der Reduktionsregeln:
nk(x, u0, u1) = u
(neuer Knoten)
erzeugt Knoten (x, u0, u1) und gibt Zeiger u zurück:
• Falls u0 = u1: u = u0
• Falls (x, u0, u1) schon in Tabelle: u = Position in Tabelle
• Sonst: erzeuge neuen Eintrag (x, u0, u1), u = dessen Position
4
Grundoperationen auf OBDDs
f |xi←b(x1, . . . , xn) =df f (x1, xi−1, b, xi+1, . . . , xn)
u = (x, u0, u1) Wurzel von OBDD für f
• Allgemein: maximal ein Tiefendurchlauf ;
linear in Größe des OBDD für f
• Fall xi < x: f unabhängig von xi ;
u auch OBDD für f |xi←b(x1, . . . , xn)
• Fall x = xi: ;
ub OBDD für f |xi←b(x1, . . . , xn)
Shannon-Expansion:
f = (¬x ∧ f |x←0) ∨ (x ∧ f |x←1)
4
Boolesche Operationen auf OBDDs
∗ binäre Boolesche Operation
Es gilt: (f ∗ f 0)|x←b = f |x←b ∗ f 0|x←b
Berechnung von OBDD für f ∗ f 0: Seien u = (x, u0, u1) Wurzel von OBDD für f und
u0 = (x0, u00, u01) Wurzel von OBDD für f 0. Damit:
• u, u0 Blätter ⇒ f ∗ f 0 = Wert(u) ∗ Wert(u0)
• x = x0 ⇒ f ∗ f 0 = (¬x ∧ (f |x←0 ∗ f 0|x←0)) ∨ (x ∧ (f |x←1 ∗ f 0|x←1)) (Rekursion)
u ∗ u0 = nk(x, u0 ∗ u00, u1 ∗ u01)
• x < x0 ⇒
f ∗ f 0 = (¬x ∧ (f |x←0 ∗ f 0)) ∨ (x ∧ (f |x←1 ∗ f 0))
u ∗ u0 = nk(x, u0 ∗ u0, u1 ∗ u0)
(auch für u0 Blatt)
• x0 < x analog
4
Optimierung der OBDD-Operationen
• Caching von Zwischenergebnissen
• Algebraische Gesetze anwenden
x∧0=0
x∧1=x
x∧x=x
..
4
Repräsentation von Relationen mit OBDDs
• falls R ⊆ {0, 1}n, dann ist ihre charakteristische Funktion fR:
fR(x1, . . . , xn) = 1 ⇔ R(x1, . . . , xn)
• falls R ⊆ Dn, |D| = 2m
• kodiere D durch bijektive Abbildung Φ : D → {0, 1}m
• repräsentiere R0 ⊆ {0, 1}n∗m mit
R0(x1, . . . , xn) = R(Φ−1(x1), . . . , Φ−1(xn)),
als OBDD
4
Produkte von Relationen
• Produkte von Relationen sind wichtig (z.B. für EX )
• logisch: ∃~v (f (. . . ~v . . . ) ∧ g(. . . ~v . . . ))
~v Vektor Boolescher Variablen
• spezielle Funktion zur OBDD-Berechnung lohnend
vermeidet exponentielles Aufblähen durch Fallunterscheidung bzgl. ~v
5
Berechnung von Produkten von Relationen
5
Symbolisches Modellprüfen
Idee: repräsentiere Zeitstruktur M als OBDD
berechne die Extensionen der CTL-Formeln als Operationen auf den OBDDs
Repräsentation: Sei |S| = 2m
R⊆S×S ;
OBDD für boolesche Funktion R(v, v 0)
0
mit v = v1, . . . , vm und v 0 = v10 , . . . , vm
L : S → 2Π (∼
= Π → 2S ) ;
OBDD für boolesche Funktion P (v) für jedes P ∈ Π
Z⊆S ;
OBDD für boolesche Funktion Z(v) bzw. Z(v 0)
5
Berechnung der Extension
Check : p ∈ CT L −→ [[p]] ∈ OBDD
• Propositionale Variable P : Check(P ) = P (v)
• Boolesche Verknüpfungen: gleiche Verknüpfung auf OBDD
• Check(EX p) = CheckEX (Check(p)), mit
CheckEX (Z(v)) = ∃v 0[R(v, v 0) ∧ Z(v 0)]
Z(v) 7→ Z(v 0): OBDD Kopieren mit Umbenennen der Variablen
• Check(E (p U q)) = CheckEU (Check(p), Check(q)) mit
CheckEU (Zp(v), Zq (v)) = µZ(v). (Zq (v) ∨ (Zp(v) ∧ CheckEX (Z(v))))
• Check(EG p) = CheckEG (Check(p)) mit
CheckEG (Zp(v)) = νZ(v). (Zp(v) ∧ CheckEX (Z(v)))
5
Berechnung von Fixpunkten
• Fixpunktiteration für EU :
τ (Z(v)) = Zq (v) ∨ (Zp(v) ∧ CheckEX (Z(v))))
Anfangen mit ∅ =
ˆ 0(v) = τ 0(0(v))
0(v): m-stellige 0-Funktion; repräsentiert ∅ ⊆ S
τ 1(0(v)) = Zq (v) ∨ (Zp(v) ∧ CheckEX (0(v))))
τ 2(0(v)) = Zq (v) ∨ (Zp(v) ∧ CheckEX (τ (0(v))))
..
• Termination: wenn τ i(0(v)) = τ i+1(0(v)); Test in O(1) wg. Kanonizität der OBDDs.
• Fixpunktiteration für EG :
τ (Z(v)) = (Zp(v) ∧ CheckEX (Z(v)))
Anfangen mit S =
ˆ 1(v) = τ 0(1(v))
1(v) repräsentiert S
sonst wie EU
5
Behandlung von Fairnessbedingungen
Problem: Fairness nicht in CTL ausdrückbar, also muß ∞-oft“ auf der Metaebene behan”
delt werden
Methode: Fairnessbedingungen H = {h1, . . . , hk }, hi CTL-Formeln, und Beschränkung auf
faire Pfade x, wobei x fair ⇔df jedes hi ist ∞-oft auf x erfüllt.
Beispiel: h = (AF enabled → AF executed)
Damit: Ersetze Check[EX | EU | EG ] durch CheckFair[EX | EU | EG ], wie unten angegeben
5
Behandlung von Fairnessbedingungen
• CheckFairEG (f (v)) =
νZ(v). [f (v) ∧
k
^
j=1
CheckEX (CheckEU (f (v), Z(v) ∧ Check(hj )))]
|
{z
}
=
0
µZ (v).[... ,Z(v), Z 0 (v),... ]
⇒ geschachtelte Fixpunkte ⇒ modaler µ-Kalkül
Erläuterung: wir wollen die größte Menge Z ⊆ S, so dass
1. alle s ∈ Z erfüllen f
2. ∀hj ∈ H ∀s ∈ Z gibt es einen Pfad s = s0, s1, . . . , sn = s0, n ≥ 1, so dass s0 ∈ Z
und s’ erfüllt hj und alle si erfüllen f .
• CheckFairEX (f (v)) = CheckEX (f (v) ∧ f air(v)),
mit f air(v) = CheckFairEG (Check(>))
• CheckFairEU (f (v), g(v)) = CheckEU (f (v), g(v) ∧ f air(v))
5
Entscheidungsverfahren für Implikation in CTL
?
Entscheidungsproblem: Φ |= ϕ, für Φ ⊆ CTL endlich, ϕ ∈ CTL
Motivation: Herausfinden, ob Spezifikation überhaupt erfüllbar.
Definition: Φ |= ϕ ⇔df für alle Zeitstrukturen M = (S, R, L):
(∀s ∈ S ∀ φ ∈ Φ : M, s |= φ) ⇒ (∀s ∈ S : M, s |= ϕ)
Also: Φ 6|= ϕ ⇔ es gibt M = (S, R, L) und s0 ∈ S:
∀s ∈ S ∀φ ∈ Φ : M, s |= φ und M, s0 |= ¬ϕ
5
Ideen
• endliche Modelleigenschaft, d.h. M, s |= ϕ ⇒ es gibt M 0 = (S 0, R0, L0) mit |S 0| < ∞
und es gibt s0 ∈ S 0 : M 0 so dass M 0, s0 |= ϕ
• Nachweis der endlichen Modelleigenschaft durch Filtration
• Wir beginnen mit dem Modallogik-Fragment von CTL, d.h. zunächst betrachten zunchst
nur die Quantoren EX und AX erlaubt, kein U , F , G
• Erweiterung zu vollem CTL später
5
Technische Vorbereitungen
Syntax der Modallogik K :
EX (= 3 = <R>)
AX (= 2 = [R])
2p Abkürzung für ¬3¬p
Boolesche Operatoren ⊥, ¬, ∧, ∨, ⊃
Teilformelmenge: SF = Menge der Teilformeln einer geg. Formel ϕ; w ⊆ SF repräsentiert
{p | p ∈ w} ∪ {¬p | p 6∈ w}
maximale Teilmengen von Teilformeln: w ⊆ SF heißt (aussagenlogisch) maximal konsistent
⇔df
⊥ 6∈ w
(p ⊃ q) ∈ w ⇔ (p ∈ w ⇒ q ∈ w)
(p ∧ q) ∈ w ⇔ (p ∈ w und q ∈ w)
(p ∨ q) ∈ w ⇔ (p ∈ w oder q ∈ w)
¬p ∈ w ⇔ p 6∈ w
In jedem Fall gelte ⇐“ nur dann, falls die linke (die größere) Formel auch in SF ist.
”
5
Beispiel
Sei ϕ = P ∧ ¬P . Dann ist
SF = {P, ¬P, P, ¬P, ϕ}.
Maximale aussagenlogische konsistente Teilmengen wären:
w0
w1
w2
w3
=
=
=
=
{P }
{¬P }
{P, P }
{P, ¬P }
w4
w5
w6
w7
=
=
=
=
{¬P, P }
{¬P, ¬P }
{P, P, ¬P, ϕ}
{¬P, P, ¬P, ϕ}
Z.B. ist w = {P } nicht maximal konsistent, weil es weder P noch ¬P enthält.
w0 = {P, P, ¬P } ist nicht maximal konsistent, weil p = P ∧ ¬P nicht in w0.
6
Fixpunktiteration
6
Sei SF die Mge. der Teilformeln von Φ ∪ {φ}. Betrachte den Operator
T : (U, R) 7→ (U 0, R0), wobei U und U 0 Mengen von maximal konsistenten Teilmengen von
SF mit Φ ⊆ w, für alle w ∈ U und R, R0 ⊆ SF × SF , definiert durch
R
0
= (R ∩ (U × U )) \
[
{(w, w1) ∈ R | ψ 6∈ w und ψ1 ∈ w1}
ψ=3ψ1 ∈SF
U
0
= U\
[
{w ∈ Uψ | R(w) ∩ Uψ1 = ∅}
ψ=3ψ1 ∈SF
Hierbei bezeichne Up = {w ∈ U | p ∈ w}.
D.h., bei R0 werden solche Übergänge aus Zuständen gelöscht, in denen ein 3ψ1 nicht vorkommt (also
falsch sein sollte), aber dennoch in einen ψ1-Zustand führen. Bei U 0 werden 3ψ1-Zustände gelöscht, die
keinen ψ1-Nachfolger haben.
Proposition 3.12
T ist monoton in beiden Argumenten, besitzt also einen maximalen
T
∞
Fixpunkt2 νT = i=0 T i(U0, U0 × U0), mit U0 der Menge aller maximal konsistenten
Teilmengen von SF mit Φ ⊆ U .
2
Wir benötigen hier die komponentenweise Erweiterung der Fixpunkttheorie auf Mengentupel, in der Monotonie bzw.
komponentenweise zu verstehen ist.
T
Algorithmus
1. Berechne νT = (U m, Rm) durch die übliche Iteration. Dies ist effektiv machbar und
terminiert, weil U0 endlich ist.
2. Antworte true“, falls U mφ 6= ∅, und false“, sonst.
”
”
NB: Der Algorithmus kann mit OBDDs implementiert werden.
Frage: Warum löscht man die Kante (w, w1) ∈ R wenn ψ = 3ψ1 6∈ w und ψ1 ∈ w1?
Könnte man stattdessen nicht einfach w1 aus U löschen?
6
Korrektheit des Entscheidungsverfahrens
Satz 3.13 Es gibt M = (S, R, L) und s0 ∈ S, so dass ∀s ∈ S : M, s |= Φ und M, s0 |= ϕ
gdw. Algorithmus liefert true“.
”
Beweisideen: Sei wieder SF die Mge. der Teilformeln von Φ ∪ {φ}.
⇐: Setze M = (U m, Rm, Lm), mit P ∈ Lm(w) gdw. P ∈ w (für P ∈ Π). Für jede
Formel p ∈ SF gilt M, w |= p gdw. p ∈ w. Dies folgt aus der Fixpunkteigenschaft von
(U m, Rm).
⇒: gegeben sei Struktur M = (S, R, L), so dass ∀s ∈ S : M, s |= Φ und M, s0 |= ϕ, für
ein s0 ∈ S. S ist i.allg. unendlich.
⇒ Filtration: dividiere S durch die Äquivalenzrelation
≡ = {(s, s0) | ∀p ∈ SF : s |= p ⇔ s0 |= p}
D.h. betrachte M≡ = (S/≡, R≡, L≡) mit
R≡ = {([s]≡, [s0]≡) | ∃u ≡ s
L≡([s]) = L(s) ∩ SF
∃u0 ≡ s0 : R(u, u0)}
6
Eigenschaften der Quotientenstruktur
(i)
(ii)
(iii)
(iv)
M/≡ ist wohldefiniert.
M/≡ ist endlich.
für alle s ∈ S gilt M/≡, [s]≡ |= φ, für alle φ ∈ Φ
Jede Klasse [s]≡ kann mit der maximal konsistenten Menge
ws = {p ∈ SF | M/≡, [s]≡ |= p}
identifiziert werden.
Sei US = {ws | [s] ∈ S/≡} und RS = {(ws, ws0 ) | ([s], [s0]) ∈ R≡}.
(v) (US , RS ) ist ein Fixpunkt von T , denn Kanten in R≡ und Knoten in S/≡ werden von
T nicht gelöscht
(vi) Damit ist M≡ Teilstruktur von (U m, Rm), d.h. US ⊆ U m und RS ⊆ Rm.
(vii) M/≡, [s0]≡ |= ϕ ⇒ Algorithmus terminiert mit ,,true” weil ws0 ∈ US ⊆ U m, also
U mϕ 6= ∅.
6
Komplexität
6
Satz 3.14 Das Implikationsproblem Φ |= ϕ für Modallogik K ist PSPACE-vollständig.
Beweis. PSPACE-Härte: Reduktion von QBL (quantifizierte Boolesche Logik)3 auf Modallogik: Man übersetze φ in QBL nach K gemäß
c(∃P.φ) = 3c(φ)
c(φ ∨ ψ) = c(φ) ∨ c(ψ)
c(¬φ) = ¬c(φ)
c(P ) = P.
Für jede quantifizierte Variable P erzeugt man eine globale Voraussetzung (P ∧ ¬P )
in Φ und entscheide dann, ob Φ |= c(φ) in K gilt.
PSPACE obere Schranke: Tableau-Verfahren
2
3
Das ist Aussagenlogik mit ∀P und ∃P für Aussagenvariablen P . Die Logik wird dadurch nicht ausdruckskräftiger, aber die
Shannon-Expansion ((P ∧ φ) ∨ (¬P ∧ φ)), mit der man ∃P in ∃P.φ eliminieren kann, bläht den Ausdruck exponentiell auf. Man
kann aber dennoch mit polynomialem Speicher für den Erfüllbarkeits- (oder Tautologietest) auskommen: Bei β -Expansion eines
Tableau in Zweige für (P ∧ φ) und (¬P ∧ φ) Speicher wiederverwenden!
Erweiterung auf Modallogik mit F+
6
Erweiterung auf CTL
6
Erläuterungen
U+ , F+ , G+ sind irreflexive Varianten von U , F , G . Damit gibt es die primitiven
Quantoren E U+ und A U+ , weil
EX p
AX p
EF p
AF p
EG p
AG p
=
=
=
=
=
=
E (⊥ U+ p)
A (⊥ U+ p)
p ∨ E (> U+ p)
p ∨ A (> U+ p)
¬AF ¬p
¬EF ¬p
6
Weitere Komplexitätsresultate
CTL(∗) :
Satz 3.15 (i) p ∈ CTL erfüllbar ⇔ p hat Modell der Größe O(2|p|)
(ii) Das Erfüllbarkeitsproblem für CTL ist EXPTIME-vollständig
(iii) Das Erfüllbarkeitsproblem für CTL* ist 2EXPTIME-vollständig
LTL (aussagenlogischer Fall) :
Satz 3.16 (i) Das Erfüllbarkeitsproblem für LTL ist PSPACE-vollständig.
(ii) p ∈ LTL(F ) erfüllbar4 ⇔ p hat (lineares) Modell der Größe O(|p|)
(iii) Das Erfüllbarkeitsproblem für LTL(F ) ist NP-vollständig.
4
nur F (und damit G ), aber kein allgemeines U erlaubt
6
Herunterladen