goedelisierung

Aus ProgrammingWiki

Inhaltsverzeichnis

Aufgabe

Illustrieren Sie die folgenden Aussagen durch den Einsatz selbst entwickelter Scheme-Prozeduren. Wählen Sie exemplarisch S = {a, b} und die Verschlüselung im 3er-System, mit a \mapsto 1, b \mapsto 2 als Gödelisierung h mit h(w) = \sum_{i=0}^{|w|−1}~{a_i3^i} mit a_i ∈ \{1, 2\}. Das Wort aba erhält dann die Gödelnummer h(aba) = 1 \cdot 32 + 2 \cdot 31 + 1 \cdot 30 = 16.

Nicht jede natürliche Zahl ist Gödelnummer eines Wortes aus S^∗: Beispielsweise ist 10 = 1 \cdot 32 + 0 \cdot 31 + 1 \cdot 30 keine.

Hilfsfunktionen

Gödelisierung

Die Scheme Prozedur zur Gödelisierung von S^* durch Verschlüsselung im 3er-System.

Umkehrfunktion der Gödelisierung

Die Umkehrfunktion h^-1 liefert für Nicht-Gödelnummern kein Ergebnis. Sie würde also ewig weiter laufen. Um eine Funktion zu erhalten, die für später für die Prädikatsfunktion verwendet werden kann, ist im folgende Funktion implementiert:

nice\text{-}h^{-1}(x) = =\cases{h^{-1}(x), \text{wenn x Gödelnummer}\\ false, \text{sonst}}

G

Die Prädikatsfuntion für g

Die Funktion g errechnet die n-te gültige Gödelnummer wobei n als Parameter übergeben wird.

Die folgende Funktion gibt eine Liste mit den ersten n Gödelnummern zurück. Laut Hinweis sollen die ersten 10 Gödelnummern zurück gegeben werden. Das dauert allerdings zu lang.

Die Funktion k gibt das Wort zurück, welches der n-ten Gödelnummer entspricht.