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.

24 KAPITEL 2. GRUNDLAGEN<br />

t<br />

<br />

T T <br />

<br />

<br />

<br />

t ′<br />

T <br />

<br />

t<br />

<br />

<br />

′′<br />

T<br />

<br />

ˆt<br />

t<br />

∗<br />

T <br />

<br />

∗<br />

<br />

T <br />

<br />

t ′<br />

t<br />

<br />

∗<br />

T <br />

<br />

′′<br />

∗<br />

T<br />

<br />

ˆt<br />

−−→ heißt genau dann terminierend, wenn keine unendliche Folge (ti)i∈IN+ ̺<br />

mit ti −−→ ti+1 für<br />

̺<br />

alle i ∈ IN+ existiert (t1 −−→ t2 −−→ . . .).<br />

̺ ̺<br />

Starke Konfluenz impliziert Konfluenz, während die Umkehrung im allgemeinen nicht gilt. Wenn<br />

−−→ konfluent ist, besitzt jedes t ∈ T höchstens eine ̺-Normalform t↓ ̺<br />

̺. Wenn −−→ terminierend<br />

̺<br />

ist, besitzt jedes t ∈ T mindestens eine ̺-Normalform. Relationen −−→ , die sowohl konfluent als<br />

̺<br />

auch terminierend sind, heißen vollständig oder konvergent. Für vollständige −−→ besitzt jedes<br />

̺<br />

t ∈ T somit genau eine ̺-Normalform t↓̺. Die gerade definierten Begriffe und angegebenen Eigenschaften lassen sich nun insbesondere für die<br />

Reduktionsrelationen −−→ und −−→ verwenden.<br />

R,̺ R,̺<br />

Hierbei gebrauchen wir den Begriff ̺-Normalform für t↓R,̺, und, wenn ̺ die Menge aller Reduk-<br />

tionen ist, bezeichnen wir t↓ R schlicht als Normalform. Ein Term t ∈ TΣ ist genau dann eine<br />

Normalform, wenn RedOccR(t) = ∅ ist. Ist −−→<br />

konfluent, so heißt eine ̺-Reduktionsstrategie<br />

R<br />

genau dann normalisierend, wenn für alle t ∈ TΣ t↓R genau dann existiert, wenn t↓R,̺ existiert,<br />

und im Falle der Existenz t↓R = t↓R,̺ ist.<br />

∗<br />

∗<br />

Neben den Relationen −−→ und −−→<br />

R,̺ R,̺<br />

schreiben wir auch für endliche Reduktionsfolgen A =<br />

t1 −−→ . . . −−→ tn bzw. A<br />

R,̺ R,̺<br />

′ = t ′ 1 −−→ . . . −−→<br />

R,̺ R,̺<br />

t ′ ∗<br />

n mitunter A = t1 −−→ tn bzw. A<br />

R,̺<br />

′ = t ′ ∗<br />

1 −−→<br />

R,̺<br />

t ′ n.<br />

Ist −−→ terminierend/konfluent, so sagen wir auch, daß das Termersetzungssystem R terminie-<br />

R<br />

rend/konfluent ist.<br />

−−→ ist natürlich niemals terminierend. −−→ ist im allgemeinen weder terminierend noch kon-<br />

R,̺<br />

R<br />

fluent. Es ist unentscheidbar, ob R terminierend ist ([Huet&Lank78]), oder ob R konfluent ist<br />

([Bau&Otto84]).<br />

Im folgenden betrachten wir eine Teilmenge von Termersetzungssystemen, deren Reduktionsrelation<br />

immer konfluent und deren parallele Reduktionsrelation sogar stark konfluent ist.<br />

2.5.2 Beinahe orthogonale Termersetzungssyteme<br />

Termersetzungssysteme sind noch eine viel zu allgemeine Grundlage für unsere funktionalen Programmiersprachen.<br />

Insbesondere benötigen wir die Konfluenz der Reduktionsrelation, die jedoch<br />

im allgemeinen unentscheidbar ist, wie wir gerade festgestellt haben. Auch sind viele Eigenschaften<br />

des Reduktionsverhaltens schwer faßbar.<br />

Die syntaktisch eingeschränkteren beinahe orthogonalen Termersetzungssysteme stellen daher<br />

eine wichtige Teilmenge der allgemeinen Termersetzungssysteme dar. Sie werden im Prinzip<br />

in [Ros73] zum ersten Mal betrachtet und in [O’Do77] ausführlich behandelt. Freilich werden in<br />

diesen Werken noch keine Termersetzungssysteme in unserem Sinne definiert, worauf wir gleich<br />

noch eingehen werden. Von entscheidender Bedeutung ist die nur für beinahe orthogonale Termersetzungssysteme<br />

definierbare und auch schon in [Ros73] eingeführte Residuenabbildung. Sie

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!