BuK-Kreativaufgabe11 G2
Aus ProgrammingWiki

Gödelisierung
Aufgabe
Gegeben ist ein Alphabet , mit
in der Verschlüsselung im 3er-System, mit
und
. Die Gödelisierungsfunktion
von
ist so definiert:
mit
Die Funktion ist ein total berechenbares Prädikat. Sie stelt für eine
beliebige natürliche Zahl
fest, ob diese eine Gödelnummer (des oben genannten Algorithmus) ist oder
nicht.
Eine Funktion wächst streng monoton und ist total. Sie listet alle Gödelnummern für
diesen Algorithmus auf.
Die Funktion ist die Umkehrfunktion von h und nimmt eine
Gödelnummer und liefert ein Wort aus
Diese Funktionen sollen als Prozeduren in Scheme illustriert werden.
Lösung
Die Funktion rechent für ein gegebenes Wort den mathematischen Ausdruck aus.
Das Prädikat prüft ob quasi ob die gegebene Zahl mit dieser Bildsungsvorschrift erzeugt werden kann
oder nicht.
Die Zahl ist im Gegensatz zur
eine Gödelnummer. Beide Aufrufe liefert
, da diese mit dem Erwarteten Wert getestet werden.
Mit dieser Prädikatsfunktion ist es ein leichtes die Funktion für die Auflistung zu schreiben. Man geht alle natürlichen Zahlen bis zu einem Maximum durch und immer wenn diese Zahl eine Gödelnummer ist, dann wird sie zu einer Liste hinzufgefügt.
Für Funktion wird die Berechenbarkeit der Funktion
und die Aufzählbarkeit des
Alphabets ausgenutzt. Genau diese beiden Mengen werden aufgezählt und sind gleichmächtig.
Der Algorithmus arbeitet so:
- Auflistung aller Gödelnummern (Funktion g)
- Der Indizes der passenden Gödelnummer wird gesucht und immer gefunden, falls Gödelnummer existiert
- Eine Liste, in der
aufgezählt wird, wird erzeugt.
- Aus dieser Liste, wird anhandes des gefundenen Indezes das Wort herausgenommen.
- Da
"rückwärts" arbeitet, muss noch das Reverse genommen werden.
Folgende verschachtelteAufrufe sollen die Eigenschaft dass ist, durch Tests
demonstrieren.