logik für informatiker - kitbeckert/teaching/logik-ss06/10praedikatenlogiksubstitution... ·...
TRANSCRIPT
Vorlesung
Logik für Informatiker10. Prädikatenlogik
– Substitutionen und Unifikation –
Bernhard Beckert
Universität Koblenz-Landau
Sommersemester 2006 Logik für Informatiker, SS ’06 – p.1
Substitutionen
Definition: Substitution
Belegung von Variablen mit Termen
Formal: Funktion σ : Var → TermΣ
Schreibweise für σ
{x1/t1, . . . , xn/tn}
wobei σ(x) =
ti if x = xi für 1 ≤ i ≤ n
x sonst
Logik für Informatiker, SS ’06 – p.2
Substitutionen
Definition: Substitution
Belegung von Variablen mit Termen
Formal: Funktion σ : Var → TermΣ
Schreibweise für σ
{x1/t1, . . . , xn/tn}
wobei σ(x) =
ti if x = xi für 1 ≤ i ≤ n
x sonst
Logik für Informatiker, SS ’06 – p.2
Substitutionen: Anwendung auf Terme und Formeln
Definition: Anwendung auf Terme und Formeln
σ(s(t1, . . . , tn)) = s(σ(t1), . . . , σ(tn)) für s ∈ FΣ ∪ PΣ
(insbes.: σ(c) = c für Konstanten c)
σ(¬A) = ¬σ(A)
σ(A ∗ B) = σ(A) ∗ σ(B) für ∗ ∈ {∧,∨,→,↔}
σ(QxA) = Qxσ′(A) für Q ∈ {∀,∃},
wobei σ′= σ\{x/t | t ∈ TermΣ}
σ({A1, . . . , An}) = {σ(A1), . . . , σ(An)}
Logik für Informatiker, SS ’06 – p.3
Substitutionen: Anwendung auf Terme und Formeln
Definition: Anwendung auf Terme und Formeln
σ(s(t1, . . . , tn)) = s(σ(t1), . . . , σ(tn)) für s ∈ FΣ ∪ PΣ
(insbes.: σ(c) = c für Konstanten c)
σ(¬A) = ¬σ(A)
σ(A ∗ B) = σ(A) ∗ σ(B) für ∗ ∈ {∧,∨,→,↔}
σ(QxA) = Qxσ′(A) für Q ∈ {∀,∃},
wobei σ′= σ\{x/t | t ∈ TermΣ}
σ({A1, . . . , An}) = {σ(A1), . . . , σ(An)}
Logik für Informatiker, SS ’06 – p.3
Substitutionen: Anwendung auf Terme und Formeln
Definition: Anwendung auf Terme und Formeln
σ(s(t1, . . . , tn)) = s(σ(t1), . . . , σ(tn)) für s ∈ FΣ ∪ PΣ
(insbes.: σ(c) = c für Konstanten c)
σ(¬A) = ¬σ(A)
σ(A ∗ B) = σ(A) ∗ σ(B) für ∗ ∈ {∧,∨,→,↔}
σ(QxA) = Qxσ′(A) für Q ∈ {∀,∃},
wobei σ′= σ\{x/t | t ∈ TermΣ}
σ({A1, . . . , An}) = {σ(A1), . . . , σ(An)}
Logik für Informatiker, SS ’06 – p.3
Substitutionen: Anwendung auf Terme und Formeln
Definition: Anwendung auf Terme und Formeln
σ(s(t1, . . . , tn)) = s(σ(t1), . . . , σ(tn)) für s ∈ FΣ ∪ PΣ
(insbes.: σ(c) = c für Konstanten c)
σ(¬A) = ¬σ(A)
σ(A ∗ B) = σ(A) ∗ σ(B) für ∗ ∈ {∧,∨,→,↔}
σ(QxA) = Qxσ′(A) für Q ∈ {∀,∃},
wobei σ′= σ\{x/t | t ∈ TermΣ}
σ({A1, . . . , An}) = {σ(A1), . . . , σ(An)}
Logik für Informatiker, SS ’06 – p.3
Substitutionen
Notation: Substitutionsanwendung in Postfix-Schreibweise
Fσ für σ(F)
tσ für σ(t)
Konkatenation von Substitutionen
(σ ◦ τ )(x) = σ(τ (x))
Nota bene
F(σ ◦ τ ) = Fτσ
Logik für Informatiker, SS ’06 – p.4
Substitutionen
Notation: Substitutionsanwendung in Postfix-Schreibweise
Fσ für σ(F)
tσ für σ(t)
Konkatenation von Substitutionen
(σ ◦ τ )(x) = σ(τ (x))
Nota bene
F(σ ◦ τ ) = Fτσ
Logik für Informatiker, SS ’06 – p.4
Substitutionen: Anwendung auf Terme und Formeln
Achtung (I):Alle Vorkommen einer Variablen werden simultan ersetzt!
Beispiel
σ = {x/y, y/z}
dann
( f (x, y))σ = f (y, z)
Logik für Informatiker, SS ’06 – p.5
Substitutionen: Anwendung auf Terme und Formeln
Achtung (I):Alle Vorkommen einer Variablen werden simultan ersetzt!
Beispiel
σ = {x/y, y/z}
dann
( f (x, y))σ = f (y, z)
Logik für Informatiker, SS ’06 – p.5
Substitutionen: Anwendung auf Terme und Formeln
Achtung (II):Nur freie Variablenvorkommen werden ersetzt!
Beispiel
σ = {x/c, y/d}
dann
(∀y p(x, y))σ = ∀y (c, y)
Logik für Informatiker, SS ’06 – p.6
Substitutionen: Anwendung auf Terme und Formeln
Achtung (II):Nur freie Variablenvorkommen werden ersetzt!
Beispiel
σ = {x/c, y/d}
dann
(∀y p(x, y))σ = ∀y (c, y)
Logik für Informatiker, SS ’06 – p.6
Besondere Substitutionen
Definition: Variablenumbenennung
Eine Substitution ist eine Variablenumbenennung,
falls sie eine Permutation auf Var ist
Definition: Identische Substitution
id bezeichent die identische Substitution, d.h.
id (x) = x für alle x ∈ Var
Definition: Grundsubstitution
Eine Substitution, die alle Variablen mit Grundtermen(variablenfreien Termen) belegt, heißt Grundsubstitution
Logik für Informatiker, SS ’06 – p.7
Besondere Substitutionen
Definition: Variablenumbenennung
Eine Substitution ist eine Variablenumbenennung,
falls sie eine Permutation auf Var ist
Definition: Identische Substitution
id bezeichent die identische Substitution, d.h.
id (x) = x für alle x ∈ Var
Definition: Grundsubstitution
Eine Substitution, die alle Variablen mit Grundtermen(variablenfreien Termen) belegt, heißt Grundsubstitution
Logik für Informatiker, SS ’06 – p.7
Besondere Substitutionen
Definition: Variablenumbenennung
Eine Substitution ist eine Variablenumbenennung,
falls sie eine Permutation auf Var ist
Definition: Identische Substitution
id bezeichent die identische Substitution, d.h.
id (x) = x für alle x ∈ Var
Definition: Grundsubstitution
Eine Substitution, die alle Variablen mit Grundtermen(variablenfreien Termen) belegt, heißt Grundsubstitution
Logik für Informatiker, SS ’06 – p.7
Substitutionstheorem
Substitutionstheorem
I eine prädikatenlogische Interpretation
σ = {x1/t1, . . . , xn/tn} eine Substitution
F eine Formel
dann
I(Fσ) = Ix1/I(t1),...,xn/I(tn)(F)
Beweis
Einfach durch Induktion über strukturellen Aufbau von F
Logik für Informatiker, SS ’06 – p.8
Substitutionstheorem
Substitutionstheorem
I eine prädikatenlogische Interpretation
σ = {x1/t1, . . . , xn/tn} eine Substitution
F eine Formel
dann
I(Fσ) = Ix1/I(t1),...,xn/I(tn)(F)
Beweis
Einfach durch Induktion über strukturellen Aufbau von F
Logik für Informatiker, SS ’06 – p.8
Kollisionsfreie Substitution
Definition: Kollisionsfreie Substitution
(engl.: admissible substitution)
σ eine Substitution
F eine Formel
σ heißt kollisionsfrei (bzgl. F),
falls es folgendes nicht gibt:
eine freies Vorkommen einer Variablen z, das
im Skopus einer Quantifizierung ∀x oder ∃x liegt, und
x kommt in σ(z) vor
Logik für Informatiker, SS ’06 – p.9
Kollisionsfreie Substitution
Definition: Kollisionsfreie Substitution
(engl.: admissible substitution)
σ eine Substitution
F eine Formel
σ heißt kollisionsfrei (bzgl. F),
falls es folgendes nicht gibt:
eine freies Vorkommen einer Variablen z, das
im Skopus einer Quantifizierung ∀x oder ∃x liegt, und
x kommt in σ(z) vor
Logik für Informatiker, SS ’06 – p.9
Kollisionsfreie Substitution
Beispiel
{z/x} ist nicht kollisionsfrei bzgl. ∀x p(x, z)
Intuitive Bedeutung des Begriffs
Aus ∀x F
folgt F{x/t}
Dies gilt allerdings i.a. nur, wenn {x/t} kollisionsfrei für F
Logik für Informatiker, SS ’06 – p.10
Kollisionsfreie Substitution
Beispiel
{z/x} ist nicht kollisionsfrei bzgl. ∀x p(x, z)
Intuitive Bedeutung des Begriffs
Aus ∀x F
folgt F{x/t}
Dies gilt allerdings i.a. nur, wenn {x/t} kollisionsfrei für F
Logik für Informatiker, SS ’06 – p.10
Gebundene Umbenennung
Definition: Gebundene Umbenennung
Alle Vorkommen einer Variablen x
in einer Quantifizierung ∀x oder ∃x
im Skopus dieser Quantifizierung
werden durch eine neue (bisher nicht vorkommende) Variable y ersetzt
Eigenschaften
• Gebundene Umbenennung ist Äquivalenzumformung
• Gebundene Umbenennung erlaubt, Kollisionen zu beseitigen
Logik für Informatiker, SS ’06 – p.11
Gebundene Umbenennung
Definition: Gebundene Umbenennung
Alle Vorkommen einer Variablen x
in einer Quantifizierung ∀x oder ∃x
im Skopus dieser Quantifizierung
werden durch eine neue (bisher nicht vorkommende) Variable y ersetzt
Eigenschaften
• Gebundene Umbenennung ist Äquivalenzumformung
• Gebundene Umbenennung erlaubt, Kollisionen zu beseitigen
Logik für Informatiker, SS ’06 – p.11