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.

Kapitel 6<br />

Vervollständigung von<br />

Termersetzungssystemen<br />

Um das Wortproblem für ein Gleichungssystem E zu lösen, versuchen wir, ein zu E äquivalentes<br />

konvergentes TES R zu konstruieren. Damit ist das Wortproblem (mit Hilfe des<br />

Algorithmus WORTPROBLEM) entscheidbar, da dann s ≡ E t genau dann gilt, wenn die<br />

R-Normalformen von s <strong>und</strong> t identisch sind. In Abbildung 3.1 wurde deutlich, wie man zu<br />

E ein äquivalentes konvergentes TES erhält: Man überführt zunächst die Gleichungen aus E<br />

in Regeln, indem das Gleichheitszeichen ≡ jeweils durch → oder durch ← ersetzt wird. Dies<br />

muss so geschehen, dass die Terminierung des entstehenden TES R nachgewiesen werden<br />

kann. Um die Terminierung von TESen automatisch zu untersuchen, haben wir in Kapitel<br />

4 die Technik der lexikographischen <strong>und</strong> der rekursiven Pfadordnung bzw. der rekursiven<br />

Pfadordnung mit Status kennen gelernt, die diese beiden Ordnungen verbindet. AnschließendwirddieKonfluenzdesentstandenen<br />

TESRwieinKapitel5überprüft.FallsRsowohl<br />

terminiert als auch konfluent ist, so ist hiermit ein äquivalentes konvergentes TES gef<strong>und</strong>en<br />

<strong>und</strong> damit hat man (automatisch) ein Entscheidungsverfahren für E konstruiert. Ansonsten<br />

muss man nun in einem Vervollständigungsschritt (engl. completion) R um neue Regeln<br />

ergänzen <strong>und</strong> durchläuft dann die Terminierungs- <strong>und</strong> Konfluenzüberprüfung erneut. Diese<br />

Schritte können beliebig oft wiederholt werden. Das Ziel dieses Kapitels ist, geeignete Vervollständigungsprozeduren<br />

vorzustellen, d.h., Verfahren, die automatisch einen Entscheidungsalgorithmus<br />

zu einem gegebenen Gleichungssystem konstruieren. In Abschnitt 6.1<br />

stellen wir einen ersten Vervollständigungsalgorithmus vor. Dieser wird dann in Abschnitt<br />

6.2 verbessert, wobei wir eine ganze Klasse von Vervollständigungsalgorithmen vorstellen<br />

<strong>und</strong>KriterienfürihreKorrektheit angeben. Schließlich zeigen wirinAbschnitt 6.3,dasssich<br />

der Vervollständigungsalgorithmus auch verwenden lässt, um Induktionsbeweise zu führen<br />

<strong>und</strong> dadurch Programme (bzw. Termersetzungssysteme) zu verifizieren.<br />

6.1 Der gr<strong>und</strong>legende Vervollständigungsalgorithmus<br />

Wir betrachten noch einmal unsere beiden Haupt-Beispiele.<br />

Beispiel 6.1.1 Die folgenden beiden Gleichungen stellen einen Additionsalgorithmus dar.<br />

E = {plus(O,y) ≡ y,plus(succ(x),y) ≡ succ(plus(x,y))}<br />

108

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!