¨Ubungsblatt 8

Werbung
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.
Herunterladen