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 ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
abgearbeitet werden können. Die Terminierung dieses rekursiven Programms folgt daraus,<br />
dass die rekursiven Argumente (s i <strong>und</strong> t bei der ersten Bedingung <strong>und</strong> s i <strong>und</strong> t i bzw. s j <strong>und</strong><br />
t j bei der zweiten Bedingung) immer kleinere Terme werden. Die Einbettungsordnung lässt<br />
sich daher als zugr<strong>und</strong>e liegende Reduktionsrelation in einem Terminierungsverfahren wie<br />
oben skizziert verwenden. Dieses Beweisverfahren ist bereits in der Lage, die Terminierung<br />
einfacher Programme nachzuweisen.<br />
Beispiel 4.3.5 Betrachten wir ein TES zur Subtraktion zweier natürlicher Zahlen.<br />
minus(x,O) → x<br />
minus(O,succ(y)) → O<br />
minus(succ(x),succ(y)) → minus(x,y)<br />
Wenn wir die Einbettungsordnung ≻ emb als zugr<strong>und</strong>e liegende Reduktionsrelation verwenden,<br />
so müssen wir nun nachweisen, dass bei jeder Regel die linke Seite größer als die rechte<br />
ist, d.h.<br />
minus(x,O) ≻ emb x<br />
minus(O,succ(y)) ≻ emb O<br />
minus(succ(x),succ(y)) ≻ emb minus(x,y)<br />
Dies lässt sich sofort (automatisch) zeigen, so dass die Terminierung des TES bewiesen ist.<br />
Allerdings ist unser Terminierungsverfahren noch recht schwach. Die Terminierung des<br />
plus-TES lässt sich beispielsweise mit der Einbettungsordnung nicht zeigen. Wie üblich ist<br />
plus durch die folgenden Regeln definiert.<br />
plus(O,y) → y<br />
plus(succ(x),y) → succ(plus(x,y))<br />
Man müsste also die folgenden Ungleichungen beweisen:<br />
plus(O,y) ≻ emb y<br />
plus(succ(x),y) ≻ emb succ(plus(x,y))<br />
Es gilt aber plus(succ(x),y) ⊁ emb succ(plus(x,y)), denn succ(plus(x,y)) ist weder in succ(x)<br />
noch in y eingebettet <strong>und</strong> die beiden Terme haben auch nicht das gleiche äußere Funktionssymbol.<br />
Das Beispiel plus zeigt, dass die Verwendung der Einbettungsordnung eine zu große<br />
Einschränkung ist, um ein praktisch einsetzbares Terminierungsverfahren zu erhalten. Im<br />
nächsten Abschnitt werden wir daher weitere Reduktionsrelationen einführen, die ebenfalls<br />
entscheidbar sind <strong>und</strong> mit denen das Terminierungsverfahren wesentlich leistungsfähiger<br />
wird.