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.

Hierbei bezeichnet ≽ lpo die reflexive Hülle von ≻ lpo , d.h., die Relation mit s ≽ lpo t gdw.<br />

s ≻ lpo t oder s = t.<br />

Der dritte Fall der obigen Definition lässt sich auch wie folgt schreiben:<br />

• s = f(s 1 ,...,s n ), t = f(t 1 ,...,t n ), (s 1 ,...,s n ) (≻ lpo ) n lex (t 1,...,t n ) <strong>und</strong> s ≻ lpo t j für<br />

alle j ∈ {1,...,n}.<br />

Man erkennt also, dass man in der Tat die Argumente von gleichen Funktionssymbolen auf<br />

lexikographische Weise miteinander vergleicht.<br />

Die lexikographische Pfadordnung lässt sich ebenfalls für Terminierungsbeweise verwenden,<br />

denn da die verwendete Präzedenz ❂ f<strong>und</strong>iert ist, handelt es sich wieder um eine<br />

Reduktionsordnung. Die F<strong>und</strong>iertheit der Präzedenz ist hierbei natürlich notwendig, um<br />

die F<strong>und</strong>iertheit der lexikographischen Pfadordnung zu garantieren. (Da wir nur endliche<br />

Signaturen betrachten <strong>und</strong> da ❂ transitiv ist, ist die F<strong>und</strong>iertheit von ❂ gleichbedeutend zu<br />

der Irreflexivität von ❂, die sich natürlich leicht überprüfen lässt.) Bevor wir zeigen, dass<br />

es sich in der Tat um eine Simplifikations- <strong>und</strong> damit um eine Reduktionsordnung handelt,<br />

wollen wir die lexikographische Pfadordnung zuerst mit zwei Beispielen illustrieren.<br />

Beispiel 4.4.7 Mit der lexikographischen Pfadordnung kann man die Terminierung vieler<br />

Termersetzungssysteme <strong>und</strong> Programme zeigen. Betrachten wir das TES mit den Regeln<br />

für plus <strong>und</strong> times.<br />

plus(O,y) → y<br />

plus(succ(x),y) → succ(plus(x,y))<br />

times(O,y) → O<br />

times(succ(x),y) → plus(y,times(x,y))<br />

Um seine Terminierung zu beweisen, muss eine Präzedenz ❂ gef<strong>und</strong>en werden, so dass<br />

die folgenden Ungleichungen für die zugehörige lexikographische Pfadordnung erfüllt sind.<br />

plus(O,y) ≻ lpo y (4.8)<br />

plus(succ(x),y) ≻ lpo succ(plus(x,y)) (4.9)<br />

times(O,y) ≻ lpo O (4.10)<br />

times(succ(x),y) ≻ lpo plus(y,times(x,y)) (4.11)<br />

Die erste <strong>und</strong> die dritte Ungleichung (4.8) <strong>und</strong> (4.10) gelten bereits bei der Einbettungsordnung<br />

<strong>und</strong> somit bei jeder lexikographischen Pfadordnung (denn wir werden in Satz 4.4.9<br />

zeigen, dass jede lexikographische Pfadordnung auch eine Simplifikationsordnung ist). Die<br />

zweite Ungleichung (4.9) kann nur gelten, falls plus ❂ succ ist. Dann reicht es, zu zeigen,<br />

dass plus(succ(x),y) ≻ lpo plus(x,y) gilt. Dies folgt jedoch sofort aus succ(x) ≻ lpo x <strong>und</strong><br />

plus(succ(x),y) ≻ lpo y. Die letzte Ungleichung (4.11) erzwingt die Präzedenz times ❂ plus.<br />

Dann ist nur noch times(succ(x),y) ≻ lpo y <strong>und</strong> times(succ(x),y) ≻ lpo times(x,y) zu zeigen,<br />

was offensichtlich erfüllt ist. Wenn man eine Präzedenz mit times ❂ plus ❂ succ wählt, sind<br />

also die vier Ungleichungen (4.8) - (4.11) erfüllt <strong>und</strong> damit terminiert das Termersetzungssystem.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!