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

nen der auf den linken Reduktionsregelseiten befindlichen Funktions- und Hilfssymbole werden<br />

durch ihre jeweiligen rechten Regelseiten spezifiziert. Zwar ergibt sich daraus noch keine direkte<br />

Definition der Operationen, da die Funktions- und Hilfssymbole im allgemeinen auch auf den<br />

rechten Regelseiten auftauchen, aber das gesamte Programm ist als eine Abbildung auffaßbar: Ist<br />

eine cbv-Interpretation zur Interpretation der Symbole der rechten Regelseiten gegeben, so werden<br />

durch das Programm die Operationen der Symbole der linken Regelseiten und somit eine neue<br />

cbv-Interpretation bestimmt.<br />

Definition 4.4 cbv-Transformation<br />

Die cbv-Transformation des Programms P über Σ,<br />

ist definiert durch<br />

⎧<br />

f ΦP,cbv()<br />

⎪⎨<br />

(t) :=<br />

⎪⎩<br />

ΦP,cbv : [IntΣ,cbv→IntΣ,cbv],<br />

[[r]] alg<br />

,β , falls eine Programmregel f(p)→r ∈ P<br />

und eine Variablenbelegung β : Var(p)→TC<br />

für alle f (n) ∈ F, t ∈ (T ⊥ C )n und∈IntΣ,cbv,<br />

und außerdem, wenn Σ = (C, H, F),<br />

cond ΦP,cbv()<br />

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

sel ΦP,cbv()<br />

G,i (t) :=<br />

mit [[p1]] alg<br />

⊥cbv,β = t 1 (= ⊥), . . .,[[pn]] alg<br />

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

⊥ , andernfalls<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

⎧<br />

⎪⎨<br />

⎪⎩<br />

⊥ , falls t 1 = ⊥<br />

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

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

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

t 3 , andernfalls<br />

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

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

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

⊥ , andernfalls<br />

für alle condG, selG,i ∈ H, t, t 1, t 2, t 3 ∈ T ⊥ C und∈IntΣ,cbv. ✷<br />

Die zu einem konkreten Operationsargument gehörende rechte Regelseite wird durch ein semantisches<br />

Patternmatching ausgewählt. Hierbei ist zu beachten, daß die Definition von der Wahl<br />

der in der algebraischen Termsemantik beim Patternmatching ([[pi]] alg<br />

⊥cbv,β = t i) verwendeten cbv-<br />

Interpretation (⊥cbv) unabhängig ist. Da pi ∈ TC ist, und die Konstruktoroperationen in allen<br />

cbv-Interpretationen gleich sind, kann dort eine beliebige cbv-Interpretation verwendet werden. Es<br />

wird hier ⊥cbv gewählt, da die Verwendung der einzigen anderen ausgezeichneten cbv-Interpretation<br />

den falschen Eindruck einer (nicht vorhandenen) Abhängigkeit schaffen würde.<br />

Wie angekündigt, werden alle Operationen als strikt definiert; nur die Verzweigungsoperationen<br />

können an der 2. und 3. Argumentstelle nicht-strikt sein. Deshalb wird die Definition der Hilfsoperationen<br />

getrennt aufgeführt. Die Selektionsoperationen werden allerdings genauso wie die Funktionsoperationen<br />

behandelt.<br />

Die Eindeutigkeit der Definition, die ω-Stetigkeit der Funktions- und Hilfsoperationen und die<br />

ω-Stetigkeit der cbv-Transformation überhaupt werden wie erwähnt erst in Kapitel 5 bewiesen.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!