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.
6.2. DEKLARATIVE EIGENSCHAFTEN DER ς-SEMANTIKEN 143<br />
=⇒ Für alle f (n) (p)→r ∈ ˆ P, alle t ∈ (TC,ς) n und alle β : Var(p)→TC,ς \{⊥}, so daß t mit f(p)<br />
vermittels β semantisch ς-gematcht wird, gilt<br />
f(t) = [[r]] alg<br />
,β .<br />
⇐⇒ (Lemma 6.8 über die Charakterisierung des semantischen ς-Matchens)<br />
Für alle f (n) (p)→r ∈ ˆ P, allet ∈ (TC,ς) n und alle β : Var(p)→TC,ς \{⊥}, so daß für alle i ∈ [n]<br />
[[pi]] alg<br />
⊥cbn = t i, gilt<br />
f(t) = [[r]] alg<br />
,β .<br />
⇐⇒ Für alle f (n) (p)→r ∈ ˆ P und alle β : Var(p)→TC,ς \ {⊥} gilt<br />
⇐⇒ (Weil [[pi]] alg<br />
⊥ς<br />
= [[pi]] alg<br />
,β wegen<br />
belegungen ohne ⊥ [[pi]] alg<br />
⊥ς<br />
f([[p1]] alg alg<br />
, . . .,[[pn]] ) = [[r]]alg<br />
⊥ς ⊥ς ,β .<br />
pi ∈ TC(X), und weil nach Lemma 5.5, S. 80, über Variablen-<br />
= ⊥)<br />
Für alle f (n) (p)→r ∈ ˆ P und alle β : Var(p)→TC,ς \ {⊥} gilt<br />
[[f(p)]] alg<br />
= [[r]] ,β alg<br />
,β .<br />
⇐⇒ist ein ς-Interpretationsmodell ∗ des Programms P.<br />
Die Umkehrung, IntMod ∗ P,ς ⊆ ς-Fixpunkte, gilt ebenso wie bei den ” normalen“ ς-<br />
Interpretationsmodellen nicht (siehe Beispiel 6.4).<br />
Wenn wir jetzt untersuchen, ob analog zum cbn-Datentyp jeder ς-Datentyp DP,ς das kleinste ς-<br />
Interpretationsmodell ∗ IntMod ∗ P,ς ist, so stellen wir fest, daß dies nicht der Fall ist.<br />
Beispiel 6.5 DÈ<br />
=<br />
MinAlg ΣÚ(IntMod£È)<br />
f(x) → A<br />
f sei nicht erzwungen strikt an seiner einzigen Argumentstelle, d. h. ς(f) = (ff).<br />
Dann ist f DP,ς(⊥) = f DP,ς(A) = A. Jedoch ist auch∈IntΣ,ς mit f(⊥) = ⊥ und f(A) = A ein<br />
ς-Interpretationsmodell ∗ des Programms, und es ist DP,ς. ✷<br />
Die Ursache des Fehlens dieser Eigenschaft sind die Operationen des ς-Datentyps, welche nicht-strikt<br />
sind. Daher tritt dieses Problem auch in der cbv-Semantik bei Programmen mit Hilfsfunktionen<br />
auf:<br />
Beispiel 6.6 DÈcbv = MinAlg ΣÚ(IntMod£Ècbv )<br />
Sei P ein Programm mit Hilfsfunktionen mit A ∈ C0. Dann ist nach Lemma 5.1, S. 78, über die<br />
Hilfssymboloperationen<br />
cond DP,cbv<br />
A (A,A, ⊥) = A.<br />
Wir definieren nun∈IntΣ,cbv durch<br />
condA (A,A, ⊥) := ⊥<br />
f(t) := f DP,cbv(t) für alle sonstigen t ∈ (T ⊥ C )n , f (n) ∈ F( ˙∪ H)<br />
Da DP,cbv ein cbv-Interpretationsmodell ∗ ist, ist auchein solches. DP,cbv ist nicht das kleinste<br />
cbv-Interpretationsmodell ∗ , weil DP,cbv. ✷<br />
✷