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.

zusammenführbar sind, d.h., es existiert ein Objekt q mit v → ∗ q ← ∗ t.<br />

p ❃ ❃❃❃❃❃❃❃<br />

<br />

s ′ ❄ t ′ ❂<br />

∗ ❄ ❂❂❂❂❂❂❂<br />

∗ ∗ ∗<br />

❄<br />

❄ <br />

s ❅ u t<br />

❅ ∗ ∗<br />

❅<br />

❅ 7 777<br />

∗<br />

v ❅<br />

❅ ∗<br />

❅<br />

❅ 8 88888888<br />

<br />

q<br />

Damit erhält man also s → ∗ q ← ∗ t, d.h., s <strong>und</strong> t sind zusammenführbar. Das hierbei<br />

entstandene Diagramm ähnelt (entfernt) einem Diamanten; daher der Name des Satzes. ✷<br />

Mit dem Diamond Lemma kann der Konfluenztest “lokalisiert” werden. Man muss also<br />

nur bei Verzweigungen nach einem Schritt zeigen, dass sie wieder zusammenführbar<br />

sind. Das Diamond Lemma garantiert dann, dass dies auch bei Verzweigungen nach beliebig<br />

vielen Schritten möglich ist. Dieses Resultat ist insbesondere dann von Vorteil, wenn<br />

die Relation → endlich darstellbar ist (wie bei (endlichen) Termersetzungssystemen). Wir<br />

werden nun zeigen, dass dort die lokale Konfluenz entscheidbar ist. Wenn man also die<br />

Terminierung sicher gestellt hat, ist dann sogar die Konfluenz entscheidbar. Im Rahmen<br />

unseres generellen Vorgehens (Abbildung 3.1), bei dem ja zunächst die Terminierung überprüft<br />

wird, kann also die Konfluenz nun in der Tat bestimmt werden. Es gibt darüber<br />

hinaus Kriterien, die auch für die Konfluenz bei nicht-terminierenden Regeln hinreichend<br />

sind (dies ist insbesondere bei funktionalen Programmen wichtig). Hierzu sei auf Abschnitt<br />

5.3 verwiesen.<br />

Nach dem Diamond Lemma müssen wir bei terminierenden TESen also lediglich die<br />

lokale Konfluenz untersuchen, d.h., wir müssen alle kritischen Situationen der Form<br />

p ❂ ❂❂❂❂❂❂❂<br />

l 2 →r 2<br />

<br />

s<br />

t<br />

l 1 →r 1<br />

überprüfen <strong>und</strong> feststellen, ob man s <strong>und</strong> t jeweils zusammenführen kann. Leider gibt<br />

es natürlich im allgemeinen unendlich viele Terme <strong>und</strong> daher auch unendlich viele solche<br />

kritischen Situationen. Um die (lokale) Konfluenzüberprüfung automatisch durchführen zu<br />

können,müssenwirunsdaheraufendlichvielekritischeSituationenbeschränken. UnserZiel<br />

ist also, eine derartige endliche Menge von kritischen Situationen zu finden, so dass aus der<br />

Zusammenführbarkeit von diesen kritischen Situationen bereits die Zusammenführbarkeit<br />

aller kritischen Situationen <strong>und</strong> damit die lokale Konfluenz folgt.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!