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.

2.4. TERME 17<br />

2.4 Terme<br />

Terme (erster Ordnung) bilden die Grundlage für Termersetzungssysteme und funktionale Programmiersprachen<br />

(erster Ordnung). Daher werden sie und die zugehörigen Standardoperationen<br />

in fast allen entsprechenden Literaturwerken definiert (z.B. [Der&Jou90], [Huet&Lévy79], [We92]).<br />

Wir haben uns hier an der Notation von [Hof&Kut89] orientiert.<br />

Unendliche Terme, auch Bäume genannt, werden in [Gue81] und [We92] für die Semantik von Programmen<br />

und Programmiersprachen eingesetzt. Eine ausführliche Darstellung ihrer Eigenschaften<br />

ist [Cou83].<br />

2.4.1 Terme<br />

Eine Variablenmenge ist eine abzählbare Menge, die disjunkt zu allen verwendeten Signaturen<br />

ist. Im folgenden sei Σ eine Signatur mit mindestens einer Konstanten und X eine Variablenmenge.<br />

Die Menge der (Σ-)Terme über X, TΣ(X), ist induktiv definiert als die kleinste Menge mit<br />

• X ∈ TΣ(X) und<br />

• f (n) ∈ Σ, t1, . . .,tn ∈ TΣ(X) =⇒ f(t1, . . .,tn) ∈ TΣ(X).<br />

Bei Konstanten a ∈ Σ0 schreiben wir anstelle von a() meistens a. t ∈ TΣ(X) heißt Σ-Term<br />

über X oder auch schlicht Term. Ein variablenfreier Terme t ∈ TΣ(∅) heißt (Σ-)Grundterm.<br />

TΣ := TΣ(∅) ist die Menge der (Σ-)Grundterme.<br />

Die Σ-Termalgebra TΣ(X) := 〈TΣ(X), τ〉 ist gegeben durch die Zuordnung τ:<br />

τ(f)(t1, . . . , tn) = f(t1, . . .,tn)<br />

(f (n) ∈ Σ, t1, . . . , tn ∈ TΣ(X)). TΣ := TΣ(∅) heißt Σ-Grundtermalgebra.<br />

TΣ(X) ist absolut frei relativ zu X und TΣ ist absolut initial. Wir unterscheiden nicht zwischen<br />

isomorphen Σ-Algebren und fassen daher im weiteren TΣ(X) als die relativ zu X absolut freie und<br />

TΣ als die absolut initiale Σ-Algebra auf. Auch wenn wir meistens die oben definierte Präfixnotation<br />

mit Klammern für Terme verwenden, sind wir nicht an diese gebunden. Wir können beispielsweise<br />

auch graphische Darstellungen, die Infixnotation oder die im weiteren definierte Darstellung als<br />

Abbildungen von Stellen verwenden. Wir besitzen somit eine abstrakte Syntax von Termen, die<br />

allein auf algebraischen Eigenschaften beruht (vgl. mit der Einführung von [ADJ77]).<br />

Die endliche Menge der in einem Term t ∈ TΣ(X) vorkommenden Variablen, Var(t), ist<br />

induktiv definiert durch<br />

• Var(x) := {x}, x ∈ X,<br />

• Var(f(t1, . . .,tn)) := Var(t1) ∪ . . . ∪ Var(tn).<br />

Für Grundterme t ∈ TΣ ist somit Var(t) = ∅, und es gilt natürlich für alle Terme t ∈ TΣ(Var(t)).<br />

Gegeben seien noch die endliche Variablenmenge Y = {y1, . . .,yn} und die Variablenmenge Z. Eine<br />

Abbildung σ : Y →TΣ(Z) heißt Substitution. Eine Substitution σ mit σ(yi) = ti für alle i ∈ [n]<br />

wird dargestellt durch<br />

σ = [t1/y1, . . . , tn/yn].

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!