Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... ·...
Transcript of Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... ·...
![Page 1: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/1.jpg)
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
![Page 2: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/2.jpg)
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
![Page 3: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/3.jpg)
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
![Page 4: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/4.jpg)
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
![Page 5: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/5.jpg)
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
![Page 6: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/6.jpg)
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
![Page 7: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/7.jpg)
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
![Page 8: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/8.jpg)
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
![Page 9: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/9.jpg)
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
![Page 10: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/10.jpg)
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
![Page 11: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/11.jpg)
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
![Page 12: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/12.jpg)
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
![Page 13: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/13.jpg)
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
![Page 14: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/14.jpg)
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
![Page 15: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/15.jpg)
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
![Page 16: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/16.jpg)
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
![Page 17: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/17.jpg)
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
![Page 18: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/18.jpg)
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
![Page 19: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/19.jpg)
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
![Page 20: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/20.jpg)
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
![Page 21: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/21.jpg)
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
![Page 22: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/22.jpg)
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
![Page 23: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/23.jpg)
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
![Page 24: Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... · Besondere Substitutionen Denition: Variablenumbenennung Eine Substitution ist eine Variablenumbenennung,](https://reader030.fdocuments.net/reader030/viewer/2022040218/5e036d70b62c5b551b257153/html5/thumbnails/24.jpg)
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