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.
ei der s ≻ t genau dann gilt, wenn s = endless(x) <strong>und</strong> t = endless(succ(x)) ist. Dennoch<br />
terminiert der Algorithmus endless natürlich nicht.<br />
Der Gr<strong>und</strong> für dieses Problem ist, dass bei der Auswertung ja eine Instanz lσ der linken<br />
Seite l durch die entsprechende Instanz rσ der rechten Seite ersetzt wird. Man muss daher<br />
zusätzlich sicherstellen, dass aus l ≻ r jeweils auch lσ ≻ rσ folgt. Die Relation ≻ muss also<br />
stabil, d.h., abgeschlossen unter Substitutionen, sein.<br />
Wenn man auch die Stabilität von ≻ fordert, dann lässt sich die Terminierung des<br />
endless-TES nicht mehr fälschlicherweise “beweisen”. Mit anderen Worten, es gibt keine<br />
f<strong>und</strong>ierte <strong>und</strong> stabile Relation ≻, die endless(x) ≻ endless(succ(x)) erfüllt. Der Gr<strong>und</strong><br />
ist, dass für jede stabile Relation mit endless(x) ≻ endless(succ(x)) auch endless(x) ≻<br />
endless(succ(x)) ≻ endless(succ(succ(x))) ≻ ... gelten würde, was der F<strong>und</strong>iertheit widerspricht.<br />
Ein Beispiel für eine f<strong>und</strong>ierte Relation, die auch stabil ist, ist die echte Teiltermrelation<br />
✄. Hier gilt s ✄ t gdw. t ein echter Teilterm von s ist. Dann folgt aber auch sσ ✄ tσ für<br />
alle Substitutionen σ, da dann jeweils tσ auch ein echter Teilterm von sσ ist. Die f<strong>und</strong>ierte<br />
Relation → || , die Terme nach der Anzahl der darin vorkommenden Symbole vergleicht, ist<br />
hingegen nicht stabil. Es gilt beispielsweise succ(x) → || y, aber succ(x)σ ↛ || yσ für die<br />
Substitution σ = {y/succ(succ(x))}.<br />
Wir benötigen allerdings noch eine weitere Forderung neben der Stabilität, um sicherzustellen,<br />
dass aus (4.7) tatsächlich s ≻ t für alle Terme mit s → R t folgt. Als Beispiel<br />
betrachten wir das TES mit der folgenden Regel.<br />
infty(x) → succ(infty(x))<br />
Es existiert eine f<strong>und</strong>ierte <strong>und</strong> stabile Relation ≻, die die Bedingung (4.7) für dieses TES<br />
erfüllt, d.h., infty(x) ≻ succ(infty(x)). Ein Beispiel ist die Relation ≻, die zwei Terme nur<br />
nach ihrem äußersten Funktionssymbol vergleicht. Wir definieren also s ≻ t gdw. s =<br />
infty(...) <strong>und</strong> t = succ(...). Die F<strong>und</strong>iertheit <strong>und</strong> Stabilität der Relation ist offensichtlich.<br />
Dennoch terminiert der Algorithmus infty nicht.<br />
Der Gr<strong>und</strong> ist, dass bei der Ersetzungsrelation die Ersetzung von instantiierten linken<br />
Seiten durch instantiierte rechte Seiten ja für beliebige Teilterme möglich ist. Die Stabilität<br />
von ≻ garantiert lσ ≻ rσ für alle Substitutionen σ; wir benötigen aber darüber hinaus noch<br />
q[lσ] π ≻ q[rσ] π für alle Stellen π in allen Termen q. Eine Ungleichung wie lσ ≻ rσ muss<br />
also auch dann noch gelten, wenn lσ <strong>und</strong> rσ in einem beliebigen Kontext auftreten. Die<br />
Relation ≻ muss also auch noch monoton, d.h., abgeschlossen unter Kontexten, sein.<br />
WennwirdieMonotoniefordern,kanndieTerminierungdesinfty-TESnichtmehrfälschlicherweise<br />
nachgewiesen werden. Es existiert also keine monotone <strong>und</strong> f<strong>und</strong>ierte Relation<br />
≻, die infty(x) ≻ succ(infty(x)) erfüllt. Aus der Monotonie folgt nämlich infty(x) ≻<br />
succ(infty(x)) ≻ succ(succ(infty(x))) ≻ ..., was der F<strong>und</strong>iertheit widerspricht.<br />
Die echte Teiltermrelation ist zwar stabil, aber nicht monoton. Der Gr<strong>und</strong> ist, dass zwar<br />
x ein echter Teilterm von succ(x) ist, d.h., succ(x) ✄ x, aber es gilt nicht infty(succ(x)) ✄<br />
infty(x), denn infty(x) ist kein Teilterm von infty(succ(x)). Die Relation → || ist hingegen<br />
zwar nicht stabil, aber dafür monoton. Wenn nämlich t weniger Symbole als s enthält (d.h.<br />
s → || t), so enthält auch q[t] π weniger Symbole als q[s] π .<br />
Ein Beispiel für eine Relation, die sowohl f<strong>und</strong>iert <strong>und</strong> stabil als auch monoton ist, ist<br />
die folgende sogenannte Einbettungsordnung.