In der Arbeit Diskriminierung codierter Lambda-Terme - Henk Barendregt ist ein Codierungs- eines Lambda-Terms M ein Term, bei dem M (und seine Teile) auf Lambda-definierbare Weise daraus rekonstruiert werden können. Im Wesentlichen müssen wir in der Lage sein, einen Selbstinterpreter \ mathsf E zu schreiben :M.E.
Es gibt eine Vielzahl von Codierungen wie die von Kleene, bei denen natürliche Zahlen verwendet werden. Die effizienteste moderne Codierung ist eine Syntax höherer Ordnung von Mogensen. Eine andere mögliche (triviale) Codierung ist die Identitätsfunktion, dann ist der Interpreter wieder die Identitätsfunktion.
Gibt es eine vernünftige Vorstellung von einer "angemessenen Codierung", die triviale Codierungen verbietet?
Diese Frage tauchte auf, wenn man das Stoppproblem betrachtet, das eher für Lambda-Berechnungen als für Turing-Maschinen gilt: Wenn es in Bezug auf die triviale Codierung angegeben wird, gilt dies aus dem trivialen Grund, dass wir mit einem zitierten Lambda-Begriff im Wesentlichen nichts tun können.
Anders ausgedrückt: Welche Funktionen sollten wir erwarten, um mit zitierten Lambda-Begriffen rechnen zu können?
Ich kann einige auflisten wie: Zählen der Tiefe des Begriffs, Aufnehmen von Subtermen, Ermitteln, ob der Wurzelknoten eines Begriffs ein Lambda oder eine Anwendung ist, ... aber ich würde zögern, eine "angemessene Codierung" zu definieren, indem ich nur verschiedene Funktionen aufführe das kam mir in den Sinn.