Download (1405Kb)
Download (1405Kb)
Download (1405Kb)
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
4.3. DIE CBN-SEMANTIK 71<br />
zeigen, und dann daraus mit der Invarianz der algebraischen Termsemantik die Invarianz der po-<br />
Reduktionssemantik folgern.<br />
Somit können wir aber auch den Beweis der Übereinstimmung der Fixpunkt- und der po-<br />
Reduktionssemantik nicht analog zu dem entsprechenden Beweis für die cbv-Semantik führen. Dort<br />
haben wir einen speziellen Datentyp der li-Reduktionssemantik, Dli P , definiert. Für dessen Wohldefiniertheit<br />
ist die Invarianz der li-Reduktionssemantik jedoch Voraussetzung. Außerdem wäre die<br />
analoge Definition eines po-Datentyps weitaus schwieriger, da nicht nur zu ⊥, sondern auch zu<br />
vielen anderen echt partiellen und echt unendlichen Berechnungstermen im allgemeinen kein sie<br />
denotierender syntaktischer Term existiert. Dies folgt schon allein aus der Überabzählbarkeit von<br />
T∞ C,⊥ . Immerhin läßt sich leicht einsehen, daß für alle endlichen, partiellen Berechnungsterme TC,⊥<br />
jeweils ein sie denotierender syntaktischer Term aus TΣ existiert, wenn dies nur für einen einzigen<br />
echt partiellen (TC,⊥ \TC) der Fall ist. Aufgrund der geforderten ω-Stetigkeit der Operationen wäre<br />
die Fortsetzung der Operationen auf die echt unendlichen Konstruktorterme eindeutig. Die Wohldefiniertheit<br />
dieses po-Datentyps — bezüglich der Übereinstimmung mit der po-Reduktionssemantik<br />
— wäre jedoch auch noch zu zeigen. Schließlich wäre die Übereinstimmung des po-Datentyps und<br />
des cbn-Fixpunktdatentyps auch nicht analog zur cbv-Semantik beweisbar, da wir bei dieser die<br />
speziellen Eigenschaften der flachen Halbordnung ausgenutzt haben (Satz 4.5, S. 62). Wir werden<br />
daher in Kapitel 5 ein anderes Beweisprinzip verwenden.<br />
Zum Schluß wollen wir noch einmal einen kurzen Blick auf die verworfene lo-Reduktionsstrategie<br />
werfen. Wir haben in Beispiel 4.8 die Unvollständigkeit der lo-Reduktionsstrategie anhand eines<br />
Programms mit Pattern aufgezeigt. Folgendes Beispiel zeigt, daß die Unvollständigkeit auch bei<br />
Programmen mit Hilfsfunktionen gegeben ist.<br />
Beispiel 4.10 Unvollständigkeit der lo-Reduktionsstrategie, II<br />
und aus<br />
folgt auch<br />
aber<br />
und somit wäre<br />
liste → undef:liste<br />
undef → undef<br />
[[liste]] fix<br />
P,cbn = [⊥, ⊥, . . .]<br />
liste −−→<br />
P,po undef : liste −−→<br />
P,po undef : undef : liste −−→<br />
P,po . . .<br />
[[liste]] po<br />
P = {⊥, ⊥ : ⊥, ⊥ : ⊥ : ⊥, . . .} = [⊥, ⊥, ⊥, . . .],<br />
liste −−→<br />
P,lo undef : liste −−→<br />
P,lo undef : liste −−→<br />
P,lo . . . ,<br />
[[liste]] lo P = ⊥ : ⊥.<br />
Diese unvollständige Approximation ergibt sich jedoch nur bei Termen mit echt partiellen oder echt<br />
unendlichen Konstruktortermen als Semantik. Für Terme, die eine (po-)Konstruktornormalform<br />
besitzten, sind diese bei Programmen mit Hilfsfunktionen wirklich mit der lo-Reduktionsstrategie<br />
berechenbar. Auf den Beweis dieser Aussage wollen wir jedoch verzichten. Dennoch erklärt dies<br />
✷