Download (1405Kb)
Download (1405Kb)
Download (1405Kb)
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
78 KAPITEL 5. DIE ς-SEMANTIKEN<br />
Unsere früheren Definitionen 4.4 und 4.8 der cbv- respektive cbn-Transformation beinhalten diese<br />
Bedingung nicht; sie ist in beiden Fällen schon automatisch durch die Gültigkeit der restlichen<br />
Bedingung erfüllt, wie wir gleich in Abschnitt 5.2.2 zeigen werden.<br />
Die Definition des ς-Fixpunktdatentyps und der ς-Fixpunktsemantik ist erwartungsgemäß.<br />
Definition 5.7 ς-Fixpunktdatentyp und ς-Fixpunktsemantik<br />
Der ς-Fixpunktdatentyp Dfix des Programms P ist definiert als der kleinste Fixpunkt der ς-<br />
Transformation ΦP,ς:<br />
P,ς<br />
D fix<br />
P,ς := Fix(ΦP,ς) = <br />
i∈IN<br />
(ΦP,ς) i (⊥ς).<br />
Die ς-Fixpunktsemantik [[t]] fix<br />
P,ς des Grundterms t ∈ TΣ bezüglich P ist definiert als die algebraische<br />
Grundtermsemantik von t bezüglich des ς-Fixpunktdatentyps:<br />
[[t]] fix<br />
P,ς := [[t]] alg<br />
Dfix .<br />
P,ς<br />
Wie wir schon bei der cbv-Fixpunktsemantik erwähnten, definieren wir die Hilfsoperationen genauso<br />
wie die Funktionsoperationen durch die ς-Transformation und nicht schon in der ς-Interpretation,<br />
weil diese Betrachtung der Programme mit Hilfsfunktionen als spezielle Programme mit Pattern die<br />
Definition der (ς-)Fixpunktsemantik vereinfacht. Die Hilfsoperationen gehören jedoch zum Basisdatentyp<br />
und sind von dem konkreten Programm unabhängig. Daher geben wir diese Operationen<br />
hier noch einmal direkt an.<br />
Lemma 5.1 Hilfsoperationen in der ς-Fixpunktsemantik<br />
Ist P ein Programm mit Hilfsfunktionen, so ergeben sich die Hilfsoperationen wie folgt:<br />
cond Dfix<br />
P,ς<br />
G (t 1, t 2, t 3) =<br />
sel Dfix<br />
P,ς<br />
(t) =<br />
G,i<br />
⎧<br />
⎪⎨<br />
⎪⎩<br />
⎧<br />
⎪⎨<br />
für alle condG, selG,i ∈ H und t, t 1, t 2, t 3 ∈ TC,ς.<br />
⎪⎩<br />
⊥ , falls t 1 = ⊥ oder für ein i ∈ {2, 3}<br />
(ς(condG(i) = tt und t i = ⊥)<br />
t 2 , falls eine Variablenbelegung β : {x1, . . .,xn}→TC,ς<br />
mit [[G(x1, . . . , xn)]] alg<br />
⊥ς,β = t 1 = ⊥ existiert<br />
und (ς(condG(3) = ff oder t 3 = ⊥)<br />
t 3 , andernfalls<br />
β(xi) , falls eine Variablenbelegung β : {x1, . . .,xn}→TC,ς<br />
mit [[G(x1, . . .,xn)]] alg<br />
⊥ς,β = t1 = ⊥ existiert<br />
⊥ , andernfalls<br />
Unabhängig von der erzwungenen Striktheit ς sind die Operationen sel Dfix<br />
P,ς<br />
ihren ersten Argumentstellen strikt.<br />
✷<br />
G,i immer und cond Dfix<br />
P,ς<br />
G an<br />
Beweis:<br />
Dies folgt direkt aus der ς-Transformation und den Reduktionsregeln der Hilfssymbole unter Vereinfachung<br />
der Bedingungen des semantischen ς-Matchens bei Ausnutzung der Lemmata in 5.2.2.<br />
✷