20.01.2015 Aufrufe

Skript (Fassung vom 4.4.2011) - Lehr- und Forschungsgebiet ...

Skript (Fassung vom 4.4.2011) - Lehr- und Forschungsgebiet ...

Skript (Fassung vom 4.4.2011) - Lehr- und Forschungsgebiet ...

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.

mehrere Redexe besitzen, die nicht unbedingt alle reduziert werden.)<br />

plus(succ(succ(O)),succ(O)) → R succ(plus(succ(O),succ(O)))<br />

→ R succ(succ(plus(O,succ(O))))<br />

→ R succ(succ(succ(O)))<br />

Man erhält also die Reduktion plus(succ(succ(O)),succ(O)) → ∗ R succ(succ(succ(O))).<br />

Die Sprache der Termersetzungssysteme ist also fast identisch mit der Sprache der Gleichungssysteme,<br />

aber Termersetzungssysteme stellen eine Programmiersprache mit einer bestimmten<br />

Auswertungsrelation (der Termersetzungsrelation) dar. Man kann zeigen, dass<br />

diese Programmiersprache Turing-vollständig ist, d.h., jedes berechenbare Programm lässt<br />

sich mit Hilfe von TESen schreiben. In der Tat beruhen insbesondere funktionale Programmiersprachen<br />

direkt auf der Sprache der TESe (wobei natürlich unterschiedliche <strong>und</strong><br />

ergänzende syntaktische Konstrukte verwendet werden).<br />

Manchmal betrachtet man spezielle Termersetzungssysteme, bei denen die Regeln lediglich<br />

einstellige Funktionssymbole enthalten. Ein Beispiel ist das TES mit der Regel<br />

f(f(x)) → f(g(f(x)))<br />

Die Regeln solcher TESe kann man kürzer schreiben, indem man die Klammern <strong>und</strong> die<br />

innerste Variable weglässt; man erhält dann<br />

ff → fgf.<br />

Anstelle der Auswertung f(f(f(x))) → f(f(g(f(x)))) → f(g(f(g(f(x))))) schreibt man dann<br />

kürzer<br />

fff → ffgf → fgfgf.<br />

Solche Regelsysteme bezeichnet man auch als Wortersetzungssysteme (engl. string rewriting<br />

system) oder Semi-Thue Systeme. Hier kann man die Terme als Worte auffassen <strong>und</strong><br />

die Regeln entsprechen Grammatikregeln, die sagen, wie man bestimmte Teilworte ersetzen<br />

kann. Wir werden den Spezialfall der Wortersetzungssysteme nicht weiter gesondert<br />

betrachten; hierzu sei auf [BA95, Kap. 3] <strong>und</strong> [Ave95, Kap. 2] verwiesen.<br />

Aus Lemma 3.1.13 folgt sofort, dass die Termersetzungsrelation → R ebenso wie die<br />

Relation→ ∗ R stabil<strong>und</strong>monotonist.Darüberhinausist→∗ R natürlichreflexiv<strong>und</strong>transitiv,<br />

aber nicht symmetrisch.<br />

Anstelle von Gleichungssystemen E wollen wir im Folgenden mit TESen R arbeiten.<br />

Hierzu muss das TES R aber natürlich dem Gleichungssystem E “entsprechen”. Hierzu<br />

definiert man den Begriff der “Äquivalenz”.<br />

Definition 3.3.3 (Äquivalenz von Gleichungssystem <strong>und</strong> TES) Sei E ein Gleichungssystem<br />

<strong>und</strong> R ein TES über Σ <strong>und</strong> V. Dann ist R äquivalent zu E gdw. ↔ ∗ R = ↔∗ E .<br />

Wir sind ja daran interessiert, das Wortproblem s ≡ E t für Gleichungssysteme E zu<br />

lösen. Aufgr<strong>und</strong> des Satzes von Birkhoff (Satz 3.1.14) bedeutet Äquivalenz zwischen R <strong>und</strong><br />

E, dass ↔ ∗ R = ↔∗ E = ≡ E gilt. Sofern ein TES R also äquivalent zu E ist, lässt sich das

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!