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.
3.3. FORMALE SEMANTIKEN 45<br />
Definition 3.7 Normalformsemantik<br />
Die Normalformsemantik<br />
[[·]] nf<br />
P : TΣ→T ⊥ C<br />
ist für einen Term t ∈ TΣ definiert durch<br />
[[t]] nf<br />
P :=<br />
<br />
t↓ P , falls t↓ P existiert und t↓ P ∈ TC ist<br />
⊥ , andernfalls<br />
Die Normalformsemantik hat leider eine äußerst unangenehme Eigenschaft: sie ist nicht invariant.<br />
Verschiedene Terme mit gleicher Semantik verhalten sich im gleichen Kontext unterschiedlich, wie<br />
folgendes Beispiel demonstriert:<br />
Beispiel 3.6 Fehlende Invarianz der Normalformsemantik<br />
liste1 → []:liste1<br />
liste2 → [[]]:liste2<br />
head(x:xs) → x<br />
(Dieses Programm mit Pattern läßt sich auch in ein äquivalentes Programm mit Hilfsfunktionen<br />
übersetzen.)<br />
Wie man leicht sieht<br />
liste1 −−→<br />
P<br />
[] : liste1 −−→<br />
P<br />
[] : [] : liste1 −−→<br />
P<br />
besitzen weder liste1 noch liste2 eine Normalform und es ist daher<br />
Aber es gilt<br />
und somit erhalten wir<br />
head(liste1) −−→<br />
P<br />
head(liste2) −−→<br />
P<br />
[[liste1]] nf<br />
P = [[liste2]] nf<br />
P = ⊥.<br />
head([]:liste1) −−→<br />
P<br />
head([[]]:liste2) −−→<br />
P<br />
[[head(liste1)]] nf<br />
P = [] = [[]] = [[head(liste2)]] nf<br />
P .<br />
. . .<br />
[]<br />
[[]],<br />
Auch Terme, deren Teilterme nicht alle eine Normalform besitzen, können selber eine Normalform<br />
haben. ✷<br />
Da Terme zusammengesetzte, strukturierte Gebilde sind, erwarten wir von einer Semantik, daß zwei<br />
Terme, die sich nur in Teiltermen unterscheiden, die den gleichen semantischen Wert besitzen, ebenfalls<br />
semantisch gleich sind. Die Eingabe-Ausgabe-Abbildung soll daher eine Grundtermsemantik<br />
in folgendem Sinne sein.<br />
✷