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

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

✔<br />

✔<br />

✔<br />

✔❚<br />

✔ ❚<br />

✔ ❚<br />

✔ π ❚<br />

✔ l 1 . ❚<br />

✔ ✡❏<br />

❚<br />

✔ ✡ ❏ ❚<br />

✔ ✡ l 2 ❏ ❚<br />

✔ ✡ ❏ ❚<br />

σ 1 ✡ ❏ σ ❚<br />

✡ ❏ 1<br />

σ 2<br />

✡ ❏<br />

Dieser Fall wird als kritische Überlappung bezeichnet. Wie aus der Betrachtung der anderen<br />

Fälle deutlich wurde, sind dies die einzigen Situationen, die man für die Untersuchung<br />

der lokalen Konfluenz betrachten muss, denn nur hier kann der Fall auftreten, dass die<br />

resultierenden Terme tatsächlich nicht zusammenführbar sind.<br />

Allgemeinentsteht einsolcher Fallimmerdann,wenneszwei Regelnl 1 → r 1 <strong>und</strong>l 2 → r 2<br />

(die nicht notwendigerweise verschieden sein müssen), Substitutionen σ 1 <strong>und</strong> σ 2 <strong>und</strong> eine<br />

Stelle π ∈ Occ(l 1 ) gibt, so dass l 1 | π ∉ V <strong>und</strong> l 1 | π σ 1 = l 2 σ 2 gilt. Wenn wir die Variablen<br />

in l 1 → r 1 <strong>und</strong> in l 2 → r 2 so umbenennen, dass sie paarweise disjunkt sind, so können<br />

wir σ 1 = σ 2 wählen. Eine kritische Überlappung entsteht also dann, wenn es zwei linke<br />

Regelseiten l 1 ,l 2 <strong>und</strong> eine Substitution σ gibt, die l 2 <strong>und</strong> einen Nicht-Variablen-Teilterm<br />

l 1 | π identisch macht (d.h., l 1 | π σ = l 2 σ). Mit anderen Worten, σ ist ein Unifikator von l 1 | π<br />

<strong>und</strong> l 2 σ. Auf diese Weise entsteht die kritische Situation<br />

❚<br />

❚<br />

l 1 σ = l 1 [l 2 ] π σ<br />

❖❖❖❖❖❖❖❖❖❖❖<br />

r 1 σ<br />

l 1 [r 2 ] π σ<br />

Esgenügt,hierbei jeweils nur allgemeinste Unifikatorenvonlinken Regelseiten l 2 <strong>und</strong>Nicht-<br />

Variablen-Teiltermen l 1 | π zu betrachten, denn wenn die jeweils durch einen Auswertungsschritt<br />

entstehenden Terme r 1 σ <strong>und</strong> l 1 [r 2 ] π σ bei der allgemeineren Substitution σ zusammenführbar<br />

sind, danngilt diesauchbei jeder Substitution, diespezieller alsσ ist (aufgr<strong>und</strong><br />

der Abgeschlossenheit der Ersetzungsrelation unter Substitutionen). Wir müssen also nur<br />

alle diejenigen Paare 〈r 1 σ,l 1 [r 2 ] π σ〉 auf Zusammenführbarkeit überprüfen, die mit solch<br />

einem Unifikator σ entstehen. Man bezeichnet diese Paare daher als kritische Paare.<br />

Definition 5.2.4 (Kritisches Paar [KB70]) Sei R ein TES mit l 1 → r 1 ,l 2 → r 2 ∈ R.<br />

Hierbei seien die Variablen der beiden Regeln so umbenannt, dass V(l 1 ) ∩ V(l 2 ) = ∅ gilt.<br />

Sei π ∈ Occ(l 1 ) mit l 1 | π ∉ V <strong>und</strong> sei σ allgemeinster Unifikator von l 1 | π <strong>und</strong> l 2 . Dann<br />

ist 〈r 1 σ,l 1 [r 2 ] π σ〉 ein kritisches Paar von R (engl. critical pair). Die beiden Regeln l 1 →<br />

r 1 ,l 2 → r 2 dürfen (bis auf Variablenumbenennung) identisch sein. In diesem Fall betrachtet<br />

man jedoch nur Überlappungen mit π ≠ ǫ. Die Menge der kritischen Paare eines TES R<br />

wird mit CP(R) bezeichnet.<br />

Jedes (endliche) TES hat nur endlich viele kritische Paare, da man immer nur die<br />

(endlich vielen) linken Regelseiten auf Überlappungen überprüfen muss. CP(R) kann durch<br />

Verwendung des Unifikationsalgorithmus UNIFY aus dem vorigen Abschnitt automatisch<br />

berechnet werden.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!