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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!