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 ...
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 .