08.10.2013 Aufrufe

Download (1405Kb)

Download (1405Kb)

Download (1405Kb)

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

4.3. DIE CBN-SEMANTIK 67<br />

Seii := (ΦP,cbn) i (⊥cbn) für alle i ∈ IN.<br />

i = 0 i = 1 i = 2 . . . i = ∞ (Dfix P,cbv =i)<br />

liste1i () ⊥ [] : ⊥ [] : [] : ⊥ . . . [[], [], [], . . .]<br />

liste2i () ⊥ [[]] : ⊥ [[]] : [[]] : ⊥ . . . [[[]], [[]], [[]], . . .]<br />

headi t ↦→ ⊥<br />

⎛<br />

⎜<br />

⎝<br />

⊥ ↦→ ⊥<br />

[] ↦→ ⊥<br />

t 1:t 2 ↦→ t 1<br />

⎞<br />

⎟<br />

⎠ wie i = 1 . . . wie i = 1<br />

mit t, t 1, t 2 ∈ T ∞ C,⊥ .<br />

Somit ist<br />

[[liste1]] fix<br />

P,cbn = [[], [], [], . . .] und [[liste2]] fix<br />

P,cbn = [[[]], [[]], [[]], . . .],<br />

und<br />

[[head(liste1)]] fix<br />

P,cbn = [] und [[head(liste2)]] fix<br />

P,cbn = [[]]<br />

stellt keinen Widerspruch zur Invarianz dar. ✷<br />

Ein anderes Beispiel verdeutlicht die Ausdrucksmächtigkeit der Programme mit Pattern zusammen<br />

mit der cbn-Semantik. Wir werden in Kapitel 7 noch einmal auf dieses Beispiel eingehen.<br />

Beispiel 4.7 Paralleles And<br />

and(False,x) → False<br />

and(x,False) → False<br />

and(True,True) → True<br />

Die Operation and Dfix<br />

P,cbn wird durch die folgende Wertetabelle beschrieben.<br />

and Dfix<br />

P,cbn ⊥ False True<br />

⊥ ⊥ False ⊥<br />

False False False False<br />

True ⊥ False True<br />

Bemerkung 4.3: Überabzählbarkeit des Rechenbereichs<br />

Die Menge aller unendlichen, partiellen Konstruktorterme ist leider überabzählbar, wir wie in 2.4.2<br />

festgestellt haben. Da jedoch nur eine abzählbare Menge von syntaktischen Termen TΣ und eine<br />

abzählbare Menge von Programmen existiert, benötigen wir für deren Semantik eigentlich auch<br />

nur einen abzählbaren Rechenbereich (wir können ” abzählbar“ sogar durch ” aufzählbar“ ersetzen).<br />

Für viele Elemente t des Rechenbereichs T ∞ C,⊥ existiert kein t ∈ TΣ und kein Programm P mit<br />

[[t]] fix<br />

P,cbn = t. Es ist jedoch keine sinnvolle Charakterisierung der wirklich benötigten Teilmenge von<br />

T∞ C,⊥ bekannt. Die schlichte Definition der benötigten Teilmenge als die Menge aller durch einen<br />

beliebigen Term bei einem beliebigen Programm denotierten unendlichen, partiellen Konstruktorterme<br />

stellt keine nützliche Lösung dar. Außerdem sind alle endlichen, partiellen Konstruktorterme<br />

TC,⊥ denotierbar, und die echt unendlichen werden zumindest für die Fixpunktsemantik (und<br />

auch für die Reduktionssemantik wie wir sehen werden) aufgrund der geforderten ω-Vollständigkeit<br />

benötigt. ✷<br />

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!