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