Kapitel 4.

Werbung
Kapitel 4.
Weitere Logiken
Die Aussagenlogik und die Prädikatenlogik sind die
klassischen Logiken:
– Zweiwertigkeit der Wahrheitswerte ( wahr“, falsch“)
”
”
– Operatoren ¬, ∧, ∨ (und → und ↔)
– Quantoren ∀ und ∃.
Erweiterungen dieser klassischen Logiken:
(a) Dreiwertige Logik: wahr“, falsch“ und unbekannt“.
”
”
”
(b) Fuzzy-Logik:
Belegung A : {A1, . . . , An} → [0, 1] ⊆ R:
A(Ai) := Maß dafür, wie sehr Ai wahr ist.
(c) Konstruktive Logik: Ai ist wahr“, wenn es einen
”
konstruktiven Beweis dafür gibt, dass Ai wahr“
”
ist.
141
4.1 Temporale Logik
Eine Erweiterung der Aussagenlogik, die es ermöglicht,
zeitliche Aspekte zu berücksichtigen.
Definition (Syntax der temporalen Logik)
Sei Var eine abzählbare Menge von Variablen Ai
(i = 1, 2, . . .). Die Menge der temporalen aussagenlogischen Ausdrücke Tausd ist induktiv definiert:
1. Jede Variable Ai ist ein Ausdruck.
2. Sind u und v Ausdrücke, so auch
(u ∧ v), (u ∨ v), (u → v), (u ↔ v) und ¬u.
3. Sind u und v Ausdrücke, so auch
F u, Gu, F ∞u, G∞u, (uU v), (uBv) und Xu.
Beispiele:
(a) ( (A1 ∨ ¬A2)U A3 )
(b) ( (¬F ∞¬A2) ∨ (A1BA2) )
142
Definition
Eine Zeitlinie ist ein Paar Z = (M, x), wobei
– M ein Paar M = (S, L) ist mit
(i) S ist eine Menge von Zuständen,
(ii) L : S → 2Var ist eine Abbildung.
– x : N0 → S ist eine Funktion.
Beispiel:
S = N0 × N0 und L : S → 2Var liefert für jeden
Zustand (n, m) ∈ S die Menge der Variablen, die
im Zustand (n, m) wahr sind.
Definiere αs : Var → {0, 1} (s ∈ S) durch
(
αs(Ai) :=
1 falls Ai ∈ L(s),
0 sonst.
Dann ist αs eine Belegung für Var.
143
Die Funktion x : N0 → S wird als unendliche
Folge (x(0), x(1), x(2), . . .) über S angesehen.
Dabei ist x(t) ∈ S der Zustand zum Zeitpunkt t.
Die Belegung αx(t) gibt dann an, welche Variablen
zum Zeitpunkt t wahr sind.
Bezeichnung:
Für x = (x(0), x(1), x(2), . . .) und j ∈ N ist
xj := (x(j), x(j + 1), x(j + 2), . . .).
144
Definition (Semantik der temporalen Logik)
Sei (M, x) eine Zeitlinie. Der Wert wxM (u) eines
Ausdrucks u bezüglich dieser Zeitlinie wird induktiv
definiert:
1. Ist u = Ai ∈(Var, so gilt
1 falls Ai ∈ L(x(0)),
wxM (u) :=
0 sonst.
2. Seien wxM (v1) und wxM (v2) bereits definiert.
(
• wxM (¬v1) :=
1 falls wxM (v1) = 0,
0 falls wxM (v1) = 1.
(
1 falls wxM (v1) = 1 = wxM (v2),
0 sonst.
(
0 falls wxM (v1) = 0 = wxM (v2),
1 sonst.
• wxM ((v1∧v2)) :=
• wxM ((v1∨v2)) :=

M

 0 falls wx (v1) = 1
und wxM (v2) = 0,
• wxM ((v1 → v2)) :=


1 sonst.
(
1 falls wxM (v1) = wxM (v2),
M
• wx ((v1 ↔ v2)) :=
0 sonst.
145
3. Seien wxM (v1) und wxM (v2) bereits definiert.
• wxM (F v1) :=
• wxM (Gv1) :=
• wxM (F ∞v1)
• wxM (G∞v1)

M (v ) = 1

1
falls
w


xj 1
für ein j ≥ 0,


 0 sonst.

M


 1 falls wxj (v1) = 1
für alle j ≥ 0,


 0 sonst.


 1 falls zu jedem j ≥ 0 ein k ≥ j
existiert mit wMk (v1) = 1,
:=
x


0 sonst.


 1 falls es ein j ≥ 0 gibt, so dass
für alle k ≥ j wMk (v1) = 1 gilt ,
:=
x


0 sonst.
Interpretation der temporalen Operatoren F, G, F ∞, G∞:
Fu
Gu
F ∞u
G∞ u
: u wird irgendwann wahr sein.
: u ist immer wahr.
: u ist unendlich oft wahr.
: u wird ab einem Zeitpunkt immer wahr sein.
146

1 falls es ein j ≥ 0 gibt,





so dass für alle 0 ≤ k < j


wMk (v1) = 1
• wxM ((v1U v2)) :=
x



und wxMj (v2) = 1 gelten,




0 sonst.


1 falls es zu jedem j ≥ 1 mit



M (v ) = 1 ein k < j gibt

w
xj 2
• wxM ((v1Bv2)) :=
M (v ) = 1

mit
w

1
k

x


0 sonst.
(
1 falls wxM1 (v1) = 1 gilt,
M
• wx (Xv1) :=
0 sonst.
Interpretation der temporalen Operatoren U, B, X:
(uU v) : u ist solange wahr, bis v wahr wird.
(uBv) : bevor v wahr wird, ist u einmal wahr.
Xu
: im nächsten Moment wird u wahr sein.
147
Beispiel 1:
Zeitlinie Z1 = (M1, x1) mit M1 = (S1, L1):
S1 := {s1, s2},
L1(s1) := {A1} und L1(s2) := {A2},
(
x1(t) :=
s1, für t gerade,
s2, für t ungerade.
Also: x1 = (x1(0), x1(1), x1(2), . . . , ) = (s1, s2, s1, . . .).
Seien u := (A1 → F A2) und v := G(A1 → F A2).
Behauptung 1:
M
wx11 (u) = 1.
Beweis:
M
wx11 (A1) = 1, da A1 ∈ L1(s1) = L1(x1(0)) ist.
M1
(A2) = 1, da A2 ∈ L1(s2) = L1(x1(1)).
x1
1
M
Damit folgt wx11 (F A2) = 1,
M
2
d.h. wx11 (A1 → F A2) = 1.
w
148
Behauptung 2:
M
wx11 (v) = 1.
Beweis:
M1
j (A1 → F A2 ) = 1 für alle j ≥ 0,
x1
z.z.: w
Aus dem Beweis zu Behauptung 1 folgt:
M
w j 1 (A1 → F A2) = 1 für alle j ≡ 0 mod 2.
x1
Sei nun j ≡ 1 mod 2:
M
w j 1 (A1) = 0, da A1 6∈ L1(s2) = L1(x1(j)).
x1
M1
j (A1 → F A2 ) = 1.
x1
M
Damit folgt wx11 (v) = 1.
Also ist w
2
149
Beispiel 2:
Zeitlinie Z2 = (M2, x2) mit M2 = (S2, L2):
S2 := {s1, s2, s3},
L2(s1) := {A1}, L2(s2) := {A1, A2}, L2(s3) := {A2},


 s3, für t = 0,
x2(t) := s2, für t = 1,

 s , für t ≥ 2.
1
Also: x2 = (s3, s2, s1, s1, . . .).
Seien u := (A1 → F A2) und v := G(A1 → F A2).
Behauptung 1:
M
wx22 (u) = 1.
Beweis:
M
wx22 (A1) = 0, da A1 6∈ L2(s3) = L2(x2(0)).
M
2
Also gilt wx22 (A1 → F A2) = 1.
150
Behauptung 2:
M
wx22 (v) = 0.
Beweis:
M2
(A1) = 1, da A1 ∈ L2(s1) = L2(x2(2)).
x2
2
M2
w 2+j (A2) = 0, da A2 6∈ L2(s1) = L2(x2(2+j))
x2
w
für alle j ≥ 0.
M
M
Also gilt w 22 (F A2) = 0, d.h. w 22 (A1 → F A2) = 0.
x2
M
x2
2
Damit folgt wx22 (G(A1 → F A2)) = 0.
151
Beispiel 3:
Zeitlinie Z3 = (M3, x3) mit M3 = (S3, L3):
S3 := {s1, s2}, L3(s1) := L3(s2) := {A1},
(
x3(t) :=
s1, für t gerade,
s2, für t ungerade.
Also: x3 = (s1, s2, s1, s2 . . .).
Seien u := (A1 → F A2) und v := G(A1 → F A2).
Behauptung 1:
M
wx33 (u) = 0.
Beweis:
M
wx33 (A1) = 1, da A1 ∈ L3(s1) = L3(x3(0)).
M3
j (A2 ) = 0, da A2 6∈ L3 (s2 ) = L3 (x3 (j))
x2
w
für alle j ≥ 0.
M
Also folgt wx33 (F A2) = 0, d.h.
M
2
wx33 (A1 → F A2) = 0.
Behauptung 2:
M
wx33 (v) = 0.
Beweis:
M
M
M
wx33 (v) = wx33 (Gu) = 0, da wx33 (u) = 0 ist. 2
152
Definition
(a) Zwei Ausdrücke u, v ∈ Tausd heißen semantisch äquivalent, wenn wxM (u) = wxM (v) für
alle Zeitlinien (M, x) gilt.
(b) Ein Ausdruck u ∈ Tausd heißt erfüllbar, wenn
es eine Zeitlinie (M, x) gibt mit wxM (u) = 1.
(c) Ein Ausdruck u ∈ Tausd ist eine Tautologie
(in der temporalen Aussagenlogik), wenn
wxM (u) = 1 für alle Zeitlinien (M, x) gilt.
Notation:
u ≡t v für die semantische Äquivalenz von u und v.
153
Satz 1
Für u, v ∈ Tausd gelten folgende semantische Äquivalenzen:
(a) F u ≡t ((u ∨ ¬u)U u).
(b) Gu ≡t ¬F ¬u.
(c) F ∞u ≡t GF u.
(d) G∞u ≡t ¬F ∞¬u.
(e) (uBv) ≡t ¬(¬uU v).
Beweis zu (b):
Sei (M, x) eine Zeitlinie. Dann gilt:
wxM (¬F ¬u) = 1 gdw. wxM (F ¬u) = 0
gdw. wxMj (¬u) = 0 für alle j ≥ 0
gdw. wxMj (u) = 1 für alle j ≥ 0
2
gdw. wxM (Gu) = 1.
154
Satz 2
Zu jedem Ausdruck u ∈ Tausd gibt es einen semantisch äquivalenten Ausdruck v ∈ Tausd, der
nur die Operatoren ¬, ∧, U und X enthält.
Beweis:
→, ↔ und ∨ können durch ¬ und ∧ ersetzt werden.
F, G, F ∞, G∞ und B können durch U , ¬ und ∧ ersetzt werden.
2
Satz 3
Für u, v, w ∈ Tausd gelten die folgenden Äquivalenzen:
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(i)
HHU ≡t Hu für alle H ∈ {F, G, F ∞, G∞}.
XHu ≡t HXu für alle H ∈ {F, G, F ∞, G∞}.
X(uU v) ≡t (Xu U Xv).
H(u ∨ v) ≡t (Hu ∨ Hv) für alle H ∈ {F, F ∞}.
H(u ∧ v) ≡t (Hu ∧ Hv) für alle H ∈ {G, G∞}.
¬Xu ≡t X¬u.
X(u ◦ v) ≡t (Xu ◦ Xv) für alle ◦ ∈ {∨, ∧, →, ↔}.
((u ∧ v)U w) ≡t ((uU w) ∧ (vU w)).
(uU (v ∨ w)) ≡t ((uU v) ∨ (uU w)).
155
Satz 4
Für u, v ∈ Tausd sind die folgenden Ausdrücke
Tautologien der temporalen Aussagenlogik:
(a) (u → F u), (Gu → u), (Gu → F u).
(b) (Xu → F u), (Gu → Xu), (Gu → XGu).
(c)
((uU v) → F v).
(d) ((Gu ∨ Gv) → G(u ∨ v)), (F (u ∧ v) → (F u ∧ F v)).
(e) (((uU w) ∨ (vU w)) → ((u ∨ v)U w)).
(f)
((uU (v ∧ w)) → ((uU v) ∧ (uU w))).
(g) ((u ∧ G(u → Xu)) → Gu).
Satz 5 (Rescher,Urquhart 1971)
Das folgende Erfüllbarkeitsproblem der temporalen
Aussagenlogik ist entscheidbar:
Eingabe: Ein Ausdruck u ∈ Tausd.
Frage:
Ist u erfüllbar ?
156
4.2 Dynamische Logik
Dynamische Logik erlaubt es, das Verhalten einzelner Befehle (eines Programms) zur Basis der Semantik zu machen. In dieser Logik kann dann das
Verhalten eines Programms beschrieben werden.
Definition
Die Menge Dausd der Ausdrücke der dynamischen
Aussagenlogik und die Menge P der Programme
der dynamischen Aussagenlogik sind induktiv wie
folgt definiert. Dabei seien Var eine (abzählbare)
Menge von Variablen und Anw eine (abzählbare)
Menge von Grundanweisungen.
– Jede Variable aus Var ist ein Element von Dausd.
Jede Anweisung aus Anw ist ein Programm
in P .
– Sind A und B Ausdrücke aus Dausd und p und
q Programme aus P , so sind auch
{p; q}, (p ∪ q), p∗ und A?
Programme in P und
¬A, (A∧B), (A∨B), (A → B), (A ↔ B) und hpiA
Ausdrücke in Dausd.
157
Intuitive Bedeutung der Operatoren:
– {p; q} : sequentielle Verkettung von p und q
– (p ∪ q) : nicht-deterministische Auswahl
– p∗
: Iteration von p
– A?
: Test, ob A wahr ist
– hpiA
: nach Abarbeitung von p ist A wahr
Beispiel:
{ {A?; p}∗; ¬A? }
entspricht dem Programmstück while (A) do p;
158
Definition
Ein Kripke-Modell der dynamischen Aussagenlogik
ist ein Tripel M = (S, K, R), wobei
– S eine beliebige Menge (von Zuständen) ist,
– K : Var → 2S eine Funktion ist, die jeder Variablen eine Menge von Zuständen zuordnet,
– R : Anw → 2S×S eine Funktion ist, die jeder
Anweisung eine binäre Relation über S zuordnet.
Für x ∈ Var ist K(x) ⊆ S die Menge der Zustände,
in denen x wahr ist.
Wird im Zustand s ∈ S die Anweisung a ∈ Anw
ausgeführt, so wird ein Zustand s0 ∈ S mit
(s, s0) ∈ R(a) erreicht.
Die Funktionen K und R lassen sich nun induktiv auf alle Ausdrücke und Programme der dynamischen Aussagenlogik erweitern.
159
Definition
Sei M = (S, K, R) ein Kripke-Modell. Wir erweitern K zu einer Abbildung K : Dausd → 2S und R
zu einer Abbildung R : P → 2S×S :
– K(¬A)
:= S r K(A)
– K((A ∨ B)) := K(A) ∪ K(B)
– K((A ∧ B)) := K(A) ∩ K(B)
– K((A → B)):= (S r K(A)) ∪ K(B)
– K((A ↔ B)):= ((S r K(A)) ∪ K(B)) ∩
((S r K(B)) ∪ K(A))
– K(hpiA)
:= { s | (s, s0) ∈ R(p) und s0 ∈ K(A) }
– R({p; q})
:= R(p) ◦ R(q)
= { (s, s0) | (s, s00) ∈ R(p) und
(s00, s0) ∈ R(q) für ein s00 ∈ S }
– R((p ∪ q))
:= R(p) ∪ R(q)
– R(p∗)
:= { (s, s) | s ∈ S } ∪ R(p) ∪
(R(p) ◦ R(p)) ∪ . . .
S
=
(R(p))i
i≥0
– R(A?)
:= { (s, s) | s ∈ K(A) }
160
Beispiel
Seien A := (haix ∧ hai¬x) ∈ Dausd
und p := { {x?; a}∗; ¬x? } ∈ P .
Ferner sei K = (S, K, R) das Kripke-Modell, das
gegeben wird durch S := {r, s, t}, K(x) := {r, s}
und R(a) := {(r, s), (r, t), (s, t), (t, s)}.
K(haix) = {r, t}, denn (r, s), (t, s) ∈ R(a) und
K(x) = {r, s}, aber es gibt in R(a) kein Paar mit r
als 2. Komponente.
K(¬x) = {t}
K(hai¬x) = {r, s}, denn (r, t), (s, t) ∈ R(a) und
K(¬x) = {t}.
Also gilt
K((haix∧hai¬x)) = K(haix)∩K(hai¬x) = {r}.
R(x?) = {(r, r), (s, s)} und R(¬x?) = {(t, t)}.
Damit erhalten wir
R({x?; a}) = {(r, s), (r, t), (s, t)},
R({x?; a}) ◦ R({x?; a}) = {(r, t)},
R({x?.a}j ) = ∅ für alle j ≥ 3,
R({x?; a}∗) = {(r, r), (s, s), (t, t), (r, s), (r, t), (s, t)},
R({{x?; a}∗; ¬x?}) = {(t, t), (r, t), (s, t)}.
161
Definition
(a) Zwei Ausdrücke A und B der dynamischen Aussagenlogik heißen semantisch äquivalent, wenn
K(A) = K(B) für jedes Kripke-Modell (S, K, R)
gilt.
(b) Ein Ausdruck A der dynamischen Aussagenlogik heißt erfüllbar, wenn es ein Kripke-Modell
(S, K, R) gibt mit K(A) 6= ∅.
Notation: ≡d für die semantische Äquivalenz.
Satz 1
Für beliebige Ausdrücke A, B ∈ Dausd und beliebige Programme p, q ∈ P gelten die folgenden
Äquivalenzen:
(a) hpi(A ∪ B) ≡d (hpiA ∨ hpiB).
(b) h(p ∪ q)iA ≡d (hpiA ∨ hqiB).
(c) h{p; q}iA ≡d hpihqiA.
(d) hA?iB
≡d (A ∧ B).
162
Beweis:
(a) Sei (S, K, R) ein Kripke-Modell.
K(hpi(A ∨ B))
= { s | (s, s0) ∈ R(p) und s0 ∈ K((A ∨ B)) }
= { s | (s, s0) ∈ R(p) und s0 ∈ K(A) ∪ K(B) }
= { s | (s, s0) ∈ R(p) und s0 ∈ K(A) }
∪ { s | (s, s0) ∈ R(p) und s0 ∈ K(B) }
= K(hpiA) ∪ K(hpiB)
= K((hpiA ∨ hpiB)).
(d) K(hA?iB) = { s | (s, s0) ∈ R(A?) und s0 ∈ K(B) }
Es ist R(A?) = { (s, s) | s ∈ K(A) }, d.h.
K(hA?iB) = { s | (s, s) ∈ R(A?), s ∈ K(A)
und s ∈ K(B) }
= K((A ∧ B)).
2
163
Satz 2 (Fischer,Ladner 1977)
Das folgende Erfüllbarkeitsproblem der dynamischen
Aussagenlogik ist entscheidbar:
Eingabe: Ein Ausdruck A ∈ Dausd.
Frage:
Ist A erfüllbar ?
Beweisidee:
Hat A ein Kripke-Modell (S, K, R) mit K(A) 6= ∅,
so hat A auch ein Kriple-Modell (S 0, K 0, R0) mit
K 0(A) 6= ∅ und |S 0| ≤ 2|A|.
2
Einige weitere Logiken:
– Modale Logik:
Operatoren 3w (w gilt möglicherweise)
2w (w gilt notwendigerweise)
– Prozesslogik:
Aussagen über Zustände, die während einer/aller
Ausführungen eines Programms gelten.
164
Herunterladen