VII. Variablen und Substitution

Werbung
Logik für Informatik
Sommersemester 2003
Mathias Kegelmann
Technische Universität Darmstadt
Fachbereich Mathematik
3. Juni 2003
VII. Variablen und Substitution
A
Heute beschäftigen wir uns mit weiteren syntaktischen Details der Prädikatenlogik: Zunächst mit Variablen
und deren Geltungsbereich und dann mit der Substitution von Termen für Variablen.
1
1.1
Variablen
Geltungsbereich
Vergleichen wir die beiden folgende Formeln
∀x. P (x) ∨ ∀x. Q(x)
∀x. P (x) ∨ Q(x)
so sagen sie etwas deutlich unterschiedliches aus: Das kann man sich z.B. dadurch klar machen, wenn man
P in N als “gerade” und Q als “ungerade” interpretiert. Die Quantoren haben also in den Beispielen unterschiedliche Geltungsbereiche, d.h. Teile der Formel in der das Vorkommen der quantifizierten Variablen
durch den Quantor gebunden wird. Man kann sich das auch dadurch veranschaulichen, dass man — wie in
formalen Sprachen üblich — den Syntaxbaum der Ausdrücke zeichnet:
∨
∀x
@
@
∀x
∀x
∨
@
@
P (x)
Q(x)
P (x)
Q(x)
Im Syntaxbaum ist der Geltungsbereich gerade der Teilbaum unterhalb des Quantors. Betrachten wir nun
noch ein verwandtes Beispiel:
∀x. P (x) ∨ Q(x)
(1)
Hier bindet der Allquantor nur das erste Vorkommen von x; in Q(x) ist x nicht gebunden, man sagt dafür
auch frei. Dass die gleiche Variable sowohl gebunden als auch frei vorkommt, kann man immer vermeiden,
wie wir bald sehen werden. Eine noch merkwürdigere Formel ist:
∃x.∀x. P (x) ∨ Q(x)
(2)
Hier liegt x in P (x) und Q(x) im Geltungsbereich des Allquantors; das spätere Binden “überschreibt” sozusagen das erste. Auch hier sind die Variablennamen ungünstig gewählt. Wie wir in Abschnitt 1.3 diskutieren
werden kann man solche Konflikte immer vermeiden, und der Verständlichkeit wegen sollte man dies auch
tun!
1.2
Freie Variablen
Jetzt wollen wir formal definieren, welche Variablen in einer Formel frei vorkommen. Dazu definieren wir
zunächst induktiv über den Aufbau der Terme einer Signatur Σ = (Ω, R, α), welche Variablen in solch
einem Term vorkommen, also eine Funktion F V : TΣ (X) → Pfin (X) von Termen zu endlichen Mengen
von Variablen:
F V (x) := {x}
F V f(t1 , . . . ,tα(f ) ) := F V (t1 ) ∪ . . . ∪ F V (tα(f ) )
Nun setzt man diese Funktion auf Formeln, also zu F V : FΣ (X) → Pfin (X), fort. Dabei geht man wieder
induktiv vor, wobei der einzige interessante Fall der für die Quantoren ist:
F V R(t1 , . . . ,tα(R) ) := F V (t1 ) ∪ . . . ∪ F V (tα(f ) )
F V (t1 = t2 ) := F V (t1 ) ∪ F V (t2 )
F V (⊥) := ∅
F V (A ∧ B) = F V (A ∨ B) = F V (A → B) := F V (A) ∪ F V (B)
F V (∀x. A) = F V (∃x. A) := F V (A) \ {x}
Eine Formel, in der keine Variablen frei vorkommen, bezeichnet man als geschlossene Formel. Man
kann zu jeder Formel den universellen Abschluss bilden: Ist F V (A) = {x1 , . . . , xn } für eine Formel
A ∈ FΣ (X), dann ist dieser gerade
∀x1 ∀x2 · · · ∀xn . A.
Dieser Begriff ist wegen der folgenden Beobachtung interessant.
Proposition 7.1. Eine Formel A gilt genau dann in einem Modell M, wenn ihr universeller Abschluss in
M gilt.
Beweis. Folgt unmittelbar aus der Definition von .
Die Semantik JAKρ einer Formel A hängt nur von den Werten ab, die ρ auf den freien Variablen von A
annimmt:
Proposition 7.2. Sei A ∈ FΣ (X) eine Formel, M ein Modell für die Signatur Σ und ρ, ρ0 : X → M
Belegungen, die auf den freien Variablen von A übereinstimmen, d.h. für alle x ∈ F V (A) gilt ρ(x) = ρ0 (x).
Dann gilt JAKρ = JAKρ0 .
Beweis. Per Induktion über der Aufbau von A. (Übung!)
Bemerkung. Insbesondere hängt für eine geschlossene Formel A die Semantik JAKρ überhaupt nicht von ρ
ab. Deshalb schreiben wir in einem solchen Fall auch einfach JAK.
1.3
Gebundene Variablen
Die Variable, die nach einem Quantor kommt, heißt im Geltungsbereich des Quantors gebunden. Wie
R bei
formalen Parametern einer Funktion bei Programmiersprachen oder bei Integrationsvariablen wie x2 dx
kommt es auf den eigentlichen Namen der gebunden Variablen nicht an. So sehen wir z.B. die Formeln
∀x.P (x) und ∀y.P (y) als im Prinzip gleich an; wenn man Formeln in einem Programm repräsentiert, wählt
man oft für deren Darstellung einen Datentyp, bei dem diese beiden Formeln tatsächlich gleich repräsentiert
werden.
Man kann gebundene Variablen in Formeln deshalb umbenennen. Wie man das technisch durchführt,
werden wir im nächsten Abschnitt im Detail behandeln. Damit kann man es immer vermeiden, dass in einer
Formel eine Variable wie in (1) sowohl frei als auch gebunden vorkommt. Ebenso sollte man mehrfaches
verschachteltes Binden der gleichen Variable wie in (2) dadurch vermeiden.
2
Substitution
Variablen stehen für beliebige konkrete Werte. Deshalb macht es Sinn, für Variablen andere Terme einzusetzen. Diese so genannte Substitution von Termen für Variablen haben wir bereits in der Allgemeinen
Algebra in Abschnitt A.13.4 kennengelernt. Damals haben wir für eine Abbildung σ : X → TΣ (X) die
simultane Substitution t[σ] aller Variablen x im Term t durch ihre Bilder σ(x) definiert (siehe Definition A.13.7).
In der Logik substituiert man üblicherweise zu einem Zeitpunkt nur Terme für eine Variable, und für
diesen Spezialfall wiederholen wir die Definition. Sei t ∈ TΣ (X) ein Term und x ∈ X ein Variable. Für die
Substitution von t für x in einem anderen Term s ∈ TΣ (X) schreiben wir s[t/x], und wir definieren dies
induktiv über den Aufbau von s:
x[t/x] := t
y[t/x] := y, wobei x 6= y ∈ X
f(s1 , . . . ,sα(f ) ) [t/x] := f(s1 [t/x], . . . ,sα(f ) [t/x])
Nun setzen wir die Substitution auf Formeln fort. Wieder definiert man induktiv, dass x überall, wo es
in einer Formel A vorkommt, durch t ersetzt wird, aber nur wenn x an dieser Stelle nicht gebunden ist.
Gebundene Variablen werden also nie substituiert. Hier ist die formale Definition:
R(s1 , . . . ,sα(R) ) [t/x] := R(s1 [t/x], . . . ,sα(R) [t/x])
(s1 = s2 )[t/x] := s1 [t/x] = s2 [t/x]
⊥[t/x] := ⊥
(A ∧ B)[t/x] := A[t/x] ∧ B[t/x]
(A ∨ B)[t/x] := A[t/x] ∨ B[t/x]
(A → B)[t/x] := A[t/x] → B[t/x]
(∀x. A)[t/x] := ∀x. A
(∀y. A)[t/x] := ∀y. A[t/x], für x 6= y ∈ X
(∃x. A)[t/x] := ∃x. A
(∃y. A)[t/x] := ∃y. A[t/x], für x 6= y ∈ X
2.1
Zulässige Substitutionen
Es gibt leider noch eine zusätzliche Komplikation bei der Substitution. Zur Illustration betrachten wir die
Formel
∃x. x = y,
die in jedem Modell gilt. Wenn wir nun, z.B. in der Sprache der Arithmetik, x + 1 für y darin substituieren,
so erhalten wir
(∃x. x = y)[x + 1/y] ≡ ∃x. x = x + 1,
was in N offensichtlich nicht gilt. Hätten wir aber die statt ∃x. x = y die Formel ∃z. z = y verwendet, die
sich nur durch Umbenennen der freien Variablen von der ersten unterscheidet, so erhalten wir
(∃z. z = y)[x + 1/y] ≡ ∃z. z = x + 1.
Diese Formel gilt in N.
Das Problem bei der ersten Substitution ist, dass die freie Variable x in x + 1 durch die Substitution in
den Geltungsbereich von ∃x gerät und dadurch gebunden wird. Hätte man aber einen anderen Namen für die
gebundene Variable gewählt, so wäre das nicht passiert. Diese Phänomen will man deshalb ausschließen.
Um das zu formalisieren sagt man t sei frei für x in A, wenn bei der Substitution A[t/x] keine freie
Variable von t gebunden wird. Wir nennen eine Substitution A[t/x] zulässig, wenn t frei für x in A ist, und
im folgenden werden wir immer nur zulässige Substitutionen betrachten.
Umbenennung gebundener Variabler. Mit der Substitution können wir nun auch das Umbenennen von
gebunden Variablen formal erklären. Haben wir eine Formel ∀x. A, die die Variable y nicht enthält, dann
ist y allemal frei für x in A und wir können die gebundene Variable x durch die Substitution
∀y. A[y/x]
in y umbenennen. Analog macht man das für den Existenzquantor und wenn die Quantoren weiter innen in
einer Formel vorkommen.
Man beweist leicht folgende Aussage, die belegt, dass unsere Intuition richtig ist, dass die Namen der
gebundenen Variablen keine Rolle spielen.
Proposition 7.3. Sei A ∈ FΣ (X) eine Formel, die y ∈ X nicht enthält und x ∈ X eine Variable. Dann
gelten
(∀x.A) ↔ (∀y.A[y/x]) und (∃x.A) ↔ (∃y.A[y/x]).
Implizite Umbenennung. Um es zu vermeiden, bei jeder Substitution dazusagen zu müssen, dass wir
annehmen, dass der Term frei für die Variable in der Formel ist vereinbaren wir folgende Konvention. Ist
in einer Formel A ∈ FΣ = FΣ (V ) über einer unendlichen Variablenmenge V der Term t nicht frei für x,
dann fassen wir A[t/x] als
A0 [t/x]
auf, wobei A0 aus A durch Umbenennen der gebundenen Variablen so entsteht, dass t in A0 frei für x ist.
Man kann z.B. immer alle gebundenen Variablen umbenennen und ihnen völlig neue Namen geben, die
weder in A noch in t vorkommen.
2.2
Substitutionslemma
Wie bei der Substitution in der Allgemeinen Algebra, gibt es auch in der Prädikatenlogik ein wichtiges
Substitutionslemma (vergleiche Lemma A.13.9). Es besagt informell, dass sich Substitution mit der semantischen Auswertung verträgt.
Lemma 7.4 (Substitutionslemma). Sei A ∈ FΣ (X) eine Formel, t ∈ TΣ (X) ein Term, der frei für x in A
ist, M ein Modell für die Signatur Σ und ρ : X → M eine Variablenbelegung. Dann gilt
q
y
A[t/x] ρ = JAKρ x 7→ JtKρ .
Daraus erhält man unmittelbar, dass sich Substitution in folgender Weise mit Gültigkeit verträgt:
Korollar 7.5. Sei A ∈ FΣ (X) eine Formel, t ∈ TΣ (X) ein Term, der frei für x in A ist und M ein Modell
für die Signatur Σ, für das
MA
gilt. Dann gilt auch
M A[t/x].
Beweis. Um M A[t/x] zu zeigen, betrachten wir eine beliebige Belegung ρ : X → M und rechnen
q
y
A[t/x] ρ = JAKρ x 7→ JtKρ
= w,
0
0
wobei der letzte Schritt aus M
A folgt,
da dies gerade bedeutet, dass JAKρ = w für alle Belegungen ρ ,
0
also insbesondere für ρ = ρ x 7→ JtKρ , gilt.
Herunterladen