20.01.2015 Aufrufe

Skript (Fassung vom 4.4.2011) - Lehr- und Forschungsgebiet ...

Skript (Fassung vom 4.4.2011) - Lehr- und Forschungsgebiet ...

Skript (Fassung vom 4.4.2011) - Lehr- und Forschungsgebiet ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

fikator von g(f(x),y) <strong>und</strong> g(y,f(z)). Wir lassen im Folgenden das Kompositionszeichen “◦”<br />

oft weg. Dann bezeichnet “σδ” die Substitution “σ◦δ” <strong>und</strong> man hat tσδ = (tσ)δ = t(σ◦δ).<br />

Definition 5.1.2 (Allgemeinster Unifikator) Eine Substitution σ ist allgemeiner als<br />

eine Substitution σ ′ gdw. es eine Substitution δ mit σ ′ = σ ◦ δ gibt. Eine Substitution σ<br />

ist allgemeinster Unifikator (engl. most general unifier, mgu) eines Unifikationsproblems S<br />

gdw. σ ∈ U(S) ist <strong>und</strong> σ allgemeiner als alle σ ′ ∈ U(S) ist.<br />

In der Tat ist im obigen Beispiel auch σ 3 ein allgemeinster Unifikator von g(f(x),y) <strong>und</strong><br />

g(y,f(z)).Der allgemeinste Unifikator eines Unifikationsproblems ist aber bisauf Variablenumbenennungen<br />

eindeutig.<br />

Lemma 5.1.3 (Eindeutigkeit allgemeinster Substitutionen) Seien σ <strong>und</strong> σ ′ zwei<br />

Substitutionen. Falls σ allgemeiner als σ ′ <strong>und</strong> σ ′ allgemeiner als σ ist, so existiert eine<br />

Variablenumbenennung δ mit σ ′ = σδ. Hierbei wird eine Substitution δ als Variablenumbenennung<br />

bezeichnet, falls δ injektiv ist <strong>und</strong> xδ ∈ V für alle x ∈ V gilt.<br />

Beweis. Da σ allgemeiner als σ ′ <strong>und</strong> umgekehrt ist, existieren Substitutionen ρ <strong>und</strong> ρ ′<br />

mit σ ′ = σρ <strong>und</strong> σ = σ ′ ρ ′ . Hierbei kann man offensichtlich ρ so wählen, dass DOM(ρ) ⊆<br />

VRAN(σ) ist. Hierbei bezeichnet VRAN(σ) die Variablen im Range von σ, d.h., VRAN(σ)<br />

= V({yσ|y ∈ V}). (Üblicherweise wird beim Range nur yσ für alle y ∈ DOM(σ) betrachtet;<br />

wir benötigen hier jedoch yσ für alle y ∈ V.)<br />

Man erhält σ = σ ′ ρ ′ = σρρ ′ <strong>und</strong> damit x = xρρ ′ für alle x ∈ VRAN(σ). Damit gilt:<br />

xρ ∈ V für alle x ∈ V (5.1)<br />

Hierzu betrachten wir die beiden Fälle x ∈ DOM(ρ) <strong>und</strong> x ∉ DOM(ρ). Für x ∈ DOM(ρ)<br />

gilt x ∈ VRAN(σ). Wäre xρ ∉ V, so wäre auch xρρ ′ ∉ V <strong>und</strong> somit xρρ ′ ≠ x. Für<br />

x ∉ DOM(ρ) gilt xρ = x ∈ V.<br />

Außerdem ist ρ injektiv auf VRAN(σ). Es gilt also<br />

Aus uρ = vρ folgt u = v für alle u,v ∈ VRAN(σ). (5.2)<br />

Der Gr<strong>und</strong> ist, dass aus uρ = vρ dann auch uρρ ′ = vρρ ′ folgt. Damit ergibt sich u = uρρ ′ =<br />

vρρ ′ = v.<br />

Allerdings ist ρ nicht unbedingt auf ganz V injektiv <strong>und</strong> somit noch nicht unbedingt<br />

eine Variablenumbenennung. Die Substitution ρ hat die Gestalt<br />

ρ = {x 1 /y 1 ,...,x n /y n }<br />

wobei alle y i Variablen sind (nach (5.1)) <strong>und</strong> aufgr<strong>und</strong> der Injektivität (5.2) sind alle y i<br />

paarweise verschieden. Außerdem gilt DOM(ρ) = {x 1 ,...,x n } ⊆ VRAN(σ).<br />

Die Verletzung der Injektivität liegt daran, dass es Variablen y i geben kann, die nicht in<br />

{x 1 ,...,x n } auftreten. Dann gilt nämlich x i ρ = y i <strong>und</strong> y i ρ = y i <strong>und</strong> somit ist ρ nicht injektiv.<br />

Aus diesem Gr<strong>und</strong> müssen wir ρ so zu einer Substitution δ erweitern (bzw. verändern),<br />

dass auch solche Variablen y i in den Domain mit aufgenommen werden. Seien y i1 ,...,y ik<br />

die Variablen aus {y 1 ,...,y n }, die nicht im Domain {x 1 ,...,x n } von ρ auftreten. Hierbei<br />

seien die y il paarweise verschieden, d.h., es gibt k solche Variablen y i .

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!