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.

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 />

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!