Logik für Informatiker

Werbung
Logik für Informatiker
3. Prädikatenlogik
Teil 2
11.06.2012
Viorica Sofronie-Stokkermans
Universität Koblenz-Landau
e-mail: [email protected]
1
Prädikatenlogik
Reichere Struktur
• Objekte (Elemente)
Leute, Häuser, Zahlen, Theorien, Farben, Jahre, ...
• Relationen (Eigenschaften)
rot, rund, prim, mehrstöckig, ...
ist Bruder von, ist größer als, ist Teil von, hat Farbe, besitzt, ..
=, ≥, ...
• Funktionen
+, Mitte von, Vater von, Anfang von, ...
2
Syntax der Prädikatenlogik: Logische Zeichen
Wie in der Aussagenlogik
⊤ Symbol für die Formel “wahr” (Formel, die immer wahr ist)
⊥ Symbol für die Formel “falsch” (Formel, die immer falsch ist)
¬ Negationssymbol (“nicht”)
∧ Konjunktionssymbol (“und”)
∨ Disjunktionssymbol (“oder”)
→ Implikationssymbol (“wenn . . . dann”)
↔ Symbol für Äquivalenz (“genau dann, wenn”)
( ) die beiden Klammern
Quantoren
Allquantor (“für alle”)
Existenzquantor (“es gibt”)
3
E
A
Syntax der Prädikatenlogik: Vokabular
Definition
Prädikatenlogische Signatur: Paar Σ = (Ω, Π) wobei:
• Ω eine Menge von Funktionssymbolen f mit Stelligkeit n ≥ 0,
geschrieben f /n,
z.B. 2/0, koblenz/0, c/0, sqrt/1, leftLegOf/1, +/2, -/2
• Π Menge von Prädikatensymbolen p mit Stelligkeit m ≥ 0, geschrieben
p/m
z.B. bruderVon/1, > /2, ≈ /2, . . .
Bemerkung: Das Gleichheitsprädikat ≈ kann (muss aber nicht) enthalten
sein. Es wird infix notiert.
4
Syntax der Prädikatenlogik: Vokabular
Definition.
Funktionssymbole mit Stelligkeit n = 0 heißen Konstante
z.B. 2, koblenz, c
Definition.
Prädikatensymbole mit Stelligkeit n = 0 heißen Aussagenvariablen
Variablen
Wir nehmen an, dass
X
eine vorgegebene Menge von abzählbar unendlich vielen Symbolen ist, die
wir für (die Bezeichnung von) Variablen verwenden.
5
Terme
Terme über Σ (bzw. Σ-Terme) werden nach folgenden syntaktischen Regeln
gebildet:
s, t, u, v
::=
|
x
,x ∈X
(Variable)
f (s1 , ..., sn )
, f /n ∈ Ω
(F-Terme)
Mit TΣ (X ) bezeichnen wir die Menge der Σ-Terme
Menge TΣ (X ) der Σ-Terme:
Die kleinste Menge mit: X ⊆ TΣ (X )
Wenn • f ∈ Ω,
• n ist die Stelligkeit von f
• t1 , . . . , tn ∈ TΣ (X )
dann
f (t1 , . . . , tn ) ∈ TΣ (X )
6
Atome
Atome (Atomare Formeln) über Σ genügen dieser Syntax:
A, B
h
::=
|
p(s1 , ..., sm )
, p/m ∈ Π
(s ≈ t)
(Gleichung)
i
Ist m = 0, so handelt es sich bei p um eine Aussagenvariable.
Wir verwenden insbesondere die Buchstaben P, Q, R, S, um Aussagenvariablen zu bezeichnen
Literale:
L
::=
|
Klauseln:
C, D
A
(positives Literal)
¬A
(negatives Literal)
::=
|
⊥
L1 ∨ . . . ∨ Lk , k ≥ 1
(leere Klausel)
(nichtleere Klausel)
7
Formeln
Formeln über Σ:
::=
⊥
(Falsum)
|
⊤
(Verum)
|
A
(atomare Formel)
|
¬F
|
(F ∧ G )
(Konjunktion)
|
(F ∨ G )
(Disjunktion)
|
(F → G )
(Implikation)
|
(F ↔ G )
(Äquivalenz)
|
|
(Negation)
A
xF
(Allquantifizierung)
E
F, G, H
xF
(Existenzquantifizierung)
8
Formeln
Menge ForΣ der Formeln über Σ:
Die kleinste Menge, die
• Alle atomare Formeln enthält,
• ⊤ ∈ ForΣ , ⊥ ∈ ForΣ ,
• Wenn F , G ∈ ForΣ , dann auch
¬F , F ∧ G , F ∨ G , F → G , F ↔ G ∈ ForΣ ,
• Wenn F ∈ ForΣ und x ∈ X , dann
E
A
xF ∈ ForΣ , xF ∈ ForΣ
9
Gebundene und freie Variablen
A E
In QxF , Q ∈ { ,
}, heißt F der Bindungsbereich des Quantors Qx.
Ein Auftreten einer Variablen x heißt gebunden, wenn es zum Bindungsbereich eines Quantors Qx gehört. Alle anderen Auftreten von Variablen
heißen frei.
Formeln ohne freie Variablen heißen Satzformen. Variablenfreie Formeln
heißen Grundformeln.
10
Beispiel
Bindungsbereich
y
Bind.
z }| {
( x p(x)
A
z
}|
{
→
q( x , y ))
|{z}
frei
11
A
Beispiel
E
A
p(z) →
x (q(x, z) ∧ z r (y , z))
12
Beispiel
E
A
p(z) →
x (q(x, z) ∧ z r (y , z))
• x gebunden
• y frei
• z frei und gebunden
13
Substitution eines Termes für eine Variable
Mit F [s/x] bezeichnen wir das Resultat der Substitution aller freien
Auftreten von x in F durch den Term s. F [s/x] sei durch strukturelle
Induktion über den Aufbau von F wie folgt definiert:
x[s/x]
′
x [s/x]
f (s1 , . . . , sn )[s/x]
⊥[s/x]
⊤[s/x]
p(s1 , . . . , sn )[s/x]
(u ≈ v )[s/x]
¬F [s/x]
(F ρG )[s/x]
(QxF )[s/x]
(QyF )[s/x]
=
=
=
=
=
=
=
=
=
=
=
s
′
′
x ; falls x 6= x
f (s1 [s/x], . . . , sn [s/x])
⊥
⊤
p(s1 [s/x], . . . , sn [s/x])
(u[s/x] ≈ v [s/x])
¬(F [s/x])
(F [s/x]ρG [s/x]) ; für alle binären Junktoren ρ ∈ {∧, ∨, →, ↔}
QxF
Qz((F [z/y ])[s/x]) ; falls y 6= x, z neue Variable
14
Problematik
Der Grund für die Umbenennung der gebundenen Variablen y in eine neue
unbenutzte“ Variable z ist die Vermeidung des Einfangens freier Variablen
”
in s.
Sollte y in s auftreten, wären sonst diese Auftreten nach erfolgter
Substitution gebunden.
15
Beispiel
Σ = (Ω, Π), mit Ω = {f /1, g /2, a/0}, Π = {p/2, ≈ /2}
E
A
( x(p(x, g (f (x), y ))) ∧ z(x ≈ g (y , z)))[g (y , z)/x]
A
=
A
E
=
A
E
=
A
E
x(p(x, g (f (x), y )))[g (y , z)/x] ∧
x(p(x, g (f (x), y ))) ∧
x(p(x, g (f (x), y ))) ∧
x(p(x, g (f (x), y ))) ∧
E
=
z(x ≈ g (y , z))[g (y , z)/x]
u(((x ≈ g (y , z))[u/z])[g (y , z)/x])
u((x ≈ g (y , u))[g (y , z)/x])
u(g (y , z) ≈ g (y , u))
16
Substitution allgemein
Definition. Substitutionen sind Abbildungen
σ : X → TΣ (X ),
so dass der Bereich von σ, d.h. die Menge
dom(σ) = {x ∈ X | σ(x) 6= x},
endlich ist. Die Menge der eingeführten Variablen, d.h. der Variablen die in einem der
Terme σ(x), für x ∈ dom(σ), auftreten, wird mit codom(σ) bezeichnet.
Substitutionen schreiben wir auch als [s1 /x1 , . . . , sn /xn ], xi pw. verschieden, und
meinen dann die Abbildung
[s1 /x1 , . . . , sn /xn ](y ) =
(
si ,
falls y = xi
y,
sonst
Ab jetzt schreiben wir für die Applikation σ(x) von Substitutionen xσ.
17
Anwendung einer Substitution
Homomorphe“ Fortsetzung von σ auf Terme und Formeln:
”
f (s1 , . . . , sn )σ = f (s1 σ, . . . , sn σ)
⊥σ = ⊥
⊤σ = ⊤
p(s1 , . . . , sn )σ = p(s1 σ, . . . , sn σ)
(u ≈ v )σ = (uσ ≈ v σ)
¬F σ = ¬(F σ)
(F ρG )σ = (F σρG σ) ; für alle binären Junktoren ρ
(QxF )σ = Qz((F [z/x])σ); wobei z neue“ Variable
”
Abänderung einer Substitution σ an x zu t:
(
t,
σ[x → t](y ) =
σ(y ),
falls y = x
sonst
18
Beispiel
Σ = (Ω, Π), mit Ω = {f /1, g /2, a/0}, Π = {p/2, ≈ /2}
E
A
( x(p(x, g (f (x), y ))) ∧ z(x ≈ g (y , z)))[g (y , z)/x, f (x)/y , a/z]
=
E
A
=
A
=
A
E
=
A
E
x(p(x, g (f (x), y )))[g (y , z)/x, f (x)/y , a/z] ∧
z(x ≈ g (y , z))[g (y , z)/x, f (x)/y , a/z]
E
u(p(u, g (f (u), f (x)))) ∧
u(p(u, g (f (u), f (x)))) ∧
u(p(u, g (f (u), f (x)))) ∧
v (((x ≈ g (y , z))[v /z])[g (y , z)/x, f (x)/y , a/z])
v ((x ≈ g (y , v ))[g (y , z)/x, f (x)/y , a/z])
v (g (y , z) ≈ g (f (x), u))
19
Semantik
Semantik geben bedeutet für logische Systeme, einen Begriff von Wahrheit
für Formeln zu definieren. Das hier für die Prädikatenlogik zu definierende
Konzept geht auf Tarski zurück.
In der klassischen Logik (zurückgehend auf Aristoteles) gibt es nur“ die
”
zwei Wahrheitswerte wahr“ und falsch“, die wir mit 1 und 0 bezeichnen.
”
”
20
Strukturen
Definition.
Eine Σ-Struktur (bzw. Σ-Interpretation bzw. Σ-Modell) ist ein Tripel
A = (U, (fA : U n → U)f /n∈Ω , (pA ⊆ U m )p/m∈Π )
wobei U 6= ∅ eine Menge, genannt Universum von A.
Oft identifizieren wir U mit A, wenn die Interpretation der Funktions- und
Prädikatensymbole eindeutig aus dem Kontext hervorgeht.
Mit Σ-Str bezeichnen wir die Menge aller Σ-Strukturen.
21
Valuationen
Variablen für sich haben keine Bedeutung. Hierfür müssen Wertebelegungen
(Valuationen) explizit oder implizit aus dem Kontext zur Verfügung stehen.
Definition.
Unter einer (Variablen-) Belegung oder einer Valuation (über einer
Σ-Struktur A) versteht man eine Abbildung
β:X →U
22
Wert eines Terms in A bzgl. β
Durch strukturelle Induktion definieren wir:
A(β)(x) = β(x),
x ∈X
A(β)(f (s1 , . . . , sn )) = fA (A(β)(s1 ), . . . , A(β)(sn )),
f /n ∈ Ω
23
Wert eines Terms in A bzgl. β
Wert eines Terms in A bzgl. β, A(β)(t):
• Falls t = x ∈ X : A(β)(t) = β(x)
• Falls t = c eine Konstante: A(β)(t) = cA
24
Wert eines Terms in A bzgl. β
Wert eines Terms in A bzgl. β, A(β)(t):
• Falls t = x ∈ X : A(β)(t) = β(x)
• Falls t = c eine Konstante: A(β)(t) = cA
• Falls t = f (t1 , . . . , tn ):
A(β)(t) = fA (A(β)(t1 ), . . . , A(β)(tn ))
25
Wert eines Terms in A bzgl. β
Wert eines Terms in A bzgl. β, A(β)(t):
• Falls t = x ∈ X : A(β)(t) = β(x)
• Falls t = c eine Konstante: A(β)(t) = cA
• Falls t = f (t1 , . . . , tn ):
A(β)(t) = fA (A(β)(t1 ), . . . , A(β)(tn ))
Beispiel: Σ = ({+/2, 0/0}, {≤, ≈})
N = (N, {0N , +N : N × N → N}, {≤N ⊆ N × N, ≈N })
0N = 0 ∈ N,
+N (n1 , n1 ) = n1 + n2 ∈ N
β : {x, y , z} → N mit β(x) = 5, β(y ) = 10, β(z) = 3
N (β)((x + (y + z)) + (z + 0)) =
= (β(x) +N (β(y ) +N β(z))) +N (β(z) +N 0N ) =
= (5 + (10 + 3)) + (3 + 0) = 21
26
Herunterladen