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.

<strong>und</strong> s ′ <strong>und</strong> t ′ sind verschiedene Normalformen <strong>und</strong> damit nicht zusammenführbar. Da bei<br />

terminierenden TESen Konfluenz <strong>und</strong> lokale Konfluenz nach dem Diamond Lemma (Satz<br />

5.2.3) gleichbedeutend sind, ist das TES dann also auch nicht lokal konfluent. So ergibt sich<br />

der folgende Algorithmus zur Konfluenzüberprüfung.<br />

Algorithmus CONFLUENCE(R)<br />

Eingabe: Ein terminierendes TES R.<br />

Ausgabe: “True”, falls R konfluent ist <strong>und</strong> “False” sonst.<br />

1. Berechne alle kritischen Paare CP(R) von R (durch Verwendung von UNIFY).<br />

2. Falls CP(R) = ∅, dann gib “True” aus <strong>und</strong> breche ab.<br />

3. Wähle 〈s,t〉 ∈ CP(R).<br />

4. Reduziere s <strong>und</strong> t so lange wie möglich.<br />

Auf diese Weise entstehen die Normalformen s ′ <strong>und</strong> t ′ .<br />

5. Falls s ′ ≠ t ′ , dann gib “False” aus <strong>und</strong> breche ab.<br />

6. Setze CP(R) = CP(R)\{〈s,t〉}.<br />

7. Gehe zu Schritt 2.<br />

Satz 5.2.7 (Korrektheit des Konfluenzuntersuchungsalgorithmus)<br />

(a) Der Algorithmus CONFLUENCE terminiert <strong>und</strong> ist korrekt.<br />

(b) Für terminierende TESe ist die Konfluenz entscheidbar.<br />

Beweis.<br />

(a) Die Terminierung folgt daraus, dass UNIFY terminiert, dass CP(R) immer endlich<br />

ist, dass die Berechnung der Normalformen terminiert (weil R terminiert) <strong>und</strong> dass<br />

CP(R) in jedem Durchlauf der Schritte 2 - 7 kleiner wird. Falls der Algorithmus<br />

“True”ausgibt, so sindallekritischen Paarezusammenführbar. Nachdem Kritischen-<br />

Paar-Lemma (Satz 5.2.6) folgt daraus die lokale Konfluenz <strong>und</strong> nach dem Diamond<br />

Lemma (Satz 5.2.3) die Konfluenz. Falls der Algorithmus “False” ausgibt, so existiert<br />

s ′ ← ∗ R p →∗ R t′ für zwei verschiedene Normalformen s ′ <strong>und</strong> t ′ <strong>und</strong> somit ist R nicht<br />

konfluent.<br />

(b) Die Entscheidbarkeit folgt daraus, dass CONFLUENCE ein Entscheidungsalgorithmus<br />

ist (da auch die Bestimmung von allgemeinsten Unifikatoren berechenbar ist). ✷<br />

Beispiel 5.2.8 Um die Konfluenz in dem Gruppenbeispiel zu untersuchen, muss man die<br />

kritischen Paare (5.7) - (5.9) auf Zusammenführbarkeit untersuchen. Hierzu reduzieren wir<br />

jeweils die Terme zu einer beliebigen Normalform. Bei dem ersten kritischen Paar (5.7)<br />

ergibt sich:<br />

f(f(x,y),e) f(x,y)<br />

▼▼▼▼▼▼▼▼▼▼<br />

∗<br />

∗<br />

✉ ✉✉✉✉✉✉✉✉<br />

f(x,y)

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!