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