Substitutionen

Werbung
Vorlesung
Logik für Informatiker
10. 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 Σ
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 , . . . , x n / t n }


 ti if x = xi für 1 ≤ i ≤ n
wobei
σ (x) =

 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 ))
(insbes.:
σ (c) = c
für s ∈ FΣ ∪ PΣ
für Konstanten c)
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 ))
(insbes.:
σ (c) = c
für s ∈ FΣ ∪ PΣ
für Konstanten c)
σ (¬ A) = ¬σ (A)
σ (A ∗ B) = σ (A) ∗ σ (B)
für ∗ ∈ {∧, ∨, →, ↔}
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 ))
(insbes.:
σ (c) = c
für s ∈ FΣ ∪ PΣ
für Konstanten c)
σ (¬ A) = ¬σ (A)
σ (A ∗ B) = σ (A) ∗ σ (B)
σ (QxA) = Qxσ 0 (A)
wobei
für ∗ ∈ {∧, ∨, →, ↔}
für Q ∈ {∀, ∃},
σ 0 = σ\{x/t | t ∈ Term Σ }
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 ))
(insbes.:
σ (c) = c
für s ∈ FΣ ∪ PΣ
für Konstanten c)
σ (¬ A) = ¬σ (A)
σ (A ∗ B) = σ (A) ∗ σ (B)
σ (QxA) = Qxσ 0 (A)
wobei
für ∗ ∈ {∧, ∨, →, ↔}
für Q ∈ {∀, ∃},
σ 0 = σ\{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)
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!
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!
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
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
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)
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:
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)
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
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
Herunterladen