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