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.2. DIE CBV-SEMANTIK 61<br />

Definition 4.6 li-Datentyp<br />

Sei 〈T⊥ C , α〉 der Datentyp der li-Reduktionssemantik, dessen Operationen abgesehen von den Verzweigungsoperationen<br />

alle strikt sind, und für den<br />

⎧<br />

⎪⎨<br />

α(condG)(t1, t2, t3) :=<br />

⎪⎩<br />

für alle condG ∈ H und t1, t2, t3 ∈ T⊥ C gilt.<br />

〈T⊥ C<br />

⊥ , falls t1 = ⊥<br />

t2 , falls eine Variablenbelegung β : {x1, . . .,xn}→TC<br />

mit [[G(x1, . . .,xn)]] alg<br />

⊥cbv,β = t t3 ,<br />

1 (= ⊥) existiert<br />

andernfalls<br />

, ✂〉 sei die flache Halbordnung des Rechenbereichs.<br />

Dann heißt Dli P := 〈T⊥C , ✂, α〉 li-Datentyp ✷<br />

Die Ergänzung um die flache Halbordnung wurde einzig und allein zur Vergleichbarkeit mit dem cbv-<br />

Fixpunktdatentyp Dfix P,cbv vorgenommen. Der li-Datentyp ist damit eine geordnete Algebra. Es ist<br />

noch zu zeigen, daß Dli P wohldefiniert ist, d. h. daß die geforderte Striktheit auch gegeben ist, wenn<br />

ein t⊥ ∈ TΣ mit [[t⊥]] li P = ⊥ existiert. Außerdem haben wir für den li-Datentyp zur Vereinfachung des<br />

Übereinstimmungsbeweises die Verzweigungsoperationen vollständig neu angegeben. Wir müssen<br />

zeigen, daß diese mit der li-Reduktionssemantik übereinstimmen. Andernfalls gäbe es gar keinen<br />

li-Datentyp.<br />

Lemma 4.4 Wohldefiniertheit des li-Datentyps<br />

Der li-Datentyp, Dli P , ist wohldefiniert, d.h. es gilt<br />

[[g(t)]] li P = ⊥<br />

für alle g (n) ∈ Σ \ {condG ∈ H} und t ∈ (TΣ) n mit ⊥ ∈ {[[t1]] li P , . . . , [[tn]] li P }<br />

und<br />

[[condG(t1, t2, t3)]] li ⎧<br />

⊥ , falls t1 = ⊥<br />

⎪⎨ t2 , falls eine Variablenbelegung β : {x1, . . .,xn}→TC<br />

P =<br />

mit [[G(x1, . . .,xn)]]<br />

⎪⎩<br />

alg<br />

⊥cbv,β = t1 (= ⊥) existiert<br />

t3 , andernfalls<br />

für alle condG ∈ H und t1, t2, t3 ∈ TΣ, t 1, t 2, t 3 ∈ T ⊥ C mit [[t1]] li P = t 1, [[t2]] li P = t 2, [[t3]] li P = t 3.<br />

Beweis:<br />

Teil 1: Ist für ein i ∈ [n] [[ti]] li P = ⊥, so besitzt ti keine li-Konstruktornormalform. Dann besitzt<br />

auch g(t1, . . .,tn) keine li-Konstruktornormalform und es gilt [[g(t)]] li P = ⊥.<br />

Teil 2: Fall 1: t1 = ⊥.<br />

Somit besitzt t1 keine li-Konstruktornormalform. Also besitzt auch condG(t1, t2, t3) keine<br />

li-Konstruktornormalform und es gilt [[condG(t1, t2, t3)]] li P = ⊥.<br />

Fall 2: Es existiert eine Variablenbelegung β : {x1, . . .,xn}→TC mit [[G(x1, . . .,xn)]] alg<br />

⊥cbv,β =<br />

t1 (= ⊥).<br />

Es ist<br />

t1 ↓P,li = t1 = [[G(x1, . . .,xn)]] alg<br />

⊥cbv,β = G(. . .),

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!