Termersetzungsysteme SS 2014 Übungsblatt 8 Abgabe der Lösungen: 17.06.2014 Aufgabe 1 Der I-Kombinator (2 Punkte) In der kombinatorischen Logik SKI ist der Kombinator I überflüssig in dem Sinne, dass es einen Grundterm F über {·, S, K} gibt, so dass F x →∗ x. Konstruieren Sie solch ein F . Aufgabe 2 Σ-Terme in CL (9 Punkte) Sei Σ = {f1 , . . . , fn } eine endliche Signatur. Jeder Grundterm t über Σ kann in CL als Kombinator t wie folgt kodiert werden: Nach der kombinatorischen Vollständigkeit von CL wird t als eine Lösung der jeweils passenden Reduktionen gefunden • fi x1 . . . , xn →∗ xi wenn fi ∈ Σ eine Konstante ist; • fi (t1 , . . . , tk ) x1 . . . , xn →∗ xi t1 . . . tk . Sei z.B., Σ = {true : 0 → 1, false : 0 → 1} die Signatur der Booleschen Konstanten. Wir erhalten dann true xy →∗ x false xy →∗ y Explizit, true = [xy]x = [x]Kx = S([x]K)([x]x) = S(KK)I und false = [xy]y = [x]I = KI. • Church Booleans. Definieren Sie die Negations- und die Konditionierungs-Kombinatoren Not und If mit den Eigenschaften Not true →∗ false Not false →∗ true If true xy →∗ x If false xy →∗ y. • Church Numerals. Für jede natürliche Zahl n definieren Sie einen Kombinator n. Definieren Sie dann Plus und Times, so dass folgendes gilt: Plus n m →∗ n + m Times n m →∗ n · m für allen natürlichen Zahle n und m (Hinweis: Verwenden Sie die Repräsentation der natürlichen Zahl n als Σ-Term sn (o)). Aufgabe 3 CL mit Y (9 Punkte) Wir betrachten eine Erweiterung von CL mit einem Fixpunkt-Kombinator und der Regel Y x → x(Y x). 1. Definieren Sie einen While-Schleifen-Kombinator While mit der Eigenschaft While xyz →∗ If(xz) (While xy(yz)) z 2. Definieren Sie einen Kombinator Fib mit den Eigenschaften Fib 0 →∗ 1 Fib 1 →∗ 1 Fib n + 2 →∗ Plus(Fib n + 1)(Fib n). Dabei müssen die Definitionen von Aufgabe 2 mitverwendet werden.