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 4<br />
Terminierung von<br />
Termersetzungssystemen<br />
Im vorigen Kapitel wurde ein Entscheidungsverfahren (der Algorithmus WORTPROBLEM)<br />
für das Wortproblem über einem Gleichungssystem E vorgestellt. Dieses Verfahren verwendet<br />
ein zu E äquivalentes Termersetzungssystem R, das konvergent ist, d.h., es muss<br />
terminieren <strong>und</strong> konfluent sein. Wie in Abschnitt 3.3 bereits skizziert, benötigt man daher<br />
insbesondere ein Verfahren, um (automatisch) zu überprüfen, ob ein gegebenes TES<br />
terminiert. Außerdem wird sich herausstellen, dass die Terminierung eines TES auch Voraussetzung<br />
für das Verfahren zur Überprüfung der Konfluenz in Kapitel 5 ist.<br />
Die Fragestellung der Terminierung ist darüber hinaus natürlich generell bei der Softwareentwicklung<br />
von großem Interesse. Von einem korrekten Programm wird (oftmals) erwartet,<br />
dass es sein Resultat in endlicher Zeit berechnet <strong>und</strong> nicht in eine “Endlosschleife”<br />
gerät. Die Terminierungsanalyse ist daher ein wichtiger Bestandteil der Programmverifikation.<br />
In diesem Kapitel werden daher Techniken vorgestellt, um die Terminierung eines<br />
TES automatisch nachzuweisen. Diese Techniken lassen sich dann auch für die Terminierungsanalyse<br />
von Programmen in anderen Programmiersprachen verwenden, vgl. [Gie03].<br />
Die Terminierung eines Programms oder eines TES hängt direkt mit dem Begriff der<br />
f<strong>und</strong>ierten Relation zusammen, denn ein TES R terminiert gdw. seine Ersetzungsrelation<br />
→ R f<strong>und</strong>iert ist. In Abschnitt 4.1 stellen wir ein gr<strong>und</strong>legendes Resultat über f<strong>und</strong>ierte<br />
Relationen vor, das im Folgenden verwendet wird. Es zeigt den Zusammenhang zwischen<br />
Terminierung <strong>und</strong> Induktion, wodurch deutlich wird, dass ein Verfahren zur automatischen<br />
Terminierungsanalyse auch benötigt wird, um rechnergestützte Induktionsbeweise durchzuführen<br />
[Gie03].<br />
Anschließend betrachten wir in Abschnitt 4.2 ein erstes Verfahren zur TerminierungsüberprüfungbeisolchenTESen,<br />
beidenenaufdenrechtenSeitenderRegelnkeineVariablen<br />
auftreten. Während hier die Frage der Terminierung entscheidbar ist, lässt sich im allgemeinen<br />
kein Verfahren angeben, das die Terminierung aller TESe entscheiden kann (dies<br />
beruht auf der Unentscheidbarkeit des Halteproblems). Im allgemeinen werden wir uns also<br />
mit einem hinreichenden <strong>und</strong> unvollständigen Verfahren zufrieden geben müssen.<br />
Hierzu entwickeln wir in Abschnitt 4.3 einen Ansatz für (automatische) Terminierungsbeweise,<br />
der darauf beruht, die linken <strong>und</strong> rechten Seiten der Regeln mit Hilfe bestimmter<br />
Relationen zu vergleichen. Eine besonders gut dafür geeignete Klasse von Relationen, die<br />
54