Logik für Informatiker - KITbeckert/teaching/Logik-SS06/10PraedikatenlogikSubstitution... ·...

24
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

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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,

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