Ackerman-Hierarchie für primitive Rekursion höherer Ordnung in System T.


8

Gödel definiert in seinem System T die primitive Rekursion über höhere Typen. Ich fand Notizen von Girard, in denen er die Implementierung von System T zusätzlich zu einfach eingegebenem Lambda-Kalkül erklärt. Auf Seite 50 erwähnt er, dass wir mit dem System mehr Ausdruckskraft gewinnen, sobald wir mehr Typen im Recursor verwenden.

Ich verstehe nicht, wie genau das passiert. Ist es möglich, eine Art Ackermann-Hierarchie mit der primitiven Rekursion höherer Ordnung zu entwickeln, dh eine Hierarchie von immer schneller wachsenden Funktionen, bei der jede Funktion in System T ausgedrückt werden kann, die Diagonale jedoch nicht? Ich denke schon, aber die Konstruktion scheint mir nicht offensichtlich zu sein und ich wäre interessiert zu sehen, wie man sie konstruieren oder Hinweise auf Literatur erhalten würde.

Ich bin nach etwas Konkretem. Mir ist das allgemeine diagonale Argument bekannt, das die Existenz einer Funktion nicht in T beweist, aber ich würde gerne sehen, wie man wirklich "in der Typhierarchie aufsteigen" würde.


2
Das ist eine schöne Frage. Ich wette, die Hierarchie folgt dem Rang des Typs, bei dem die Rekursion stattfindet. Es lohnt sich fast zu schreiben. Ich werde hierher zurückkommen, wenn ich die Zeit dazu habe.
Andrej Bauer

@AndrejBauer Ich habe darüber nachgedacht und ich würde vermuten, dass man neue Iteratoren mit höheren Ebenen in der Typhierarchie erstellen und eine schnell wachsende Hierarchie unter implementieren könnte fϵ0. Möglicherweise entsprechen die Typebenen (mit einem gewissen Versatz) der Turmhöhe der Exponentenωω...auf der Hierarchie, aber ich konnte keinen Beweis ziehen (..doch).

Wie stellen Sie sich übrigens die nächste Rekursionsstufe nach der primitiven Rekursion vor? Wenn es sich um einen höheren Typ handelt, würden Sie dann eine allgemeine Rekursion (so dass wir keine Kündigung erhalten) oder eine Art Rekursion, bei der die Dinge immer noch enden (in welchem ​​Fall, was wäre das)?
Andrej Bauer

@AndrejBauer Ich glaube, dies könnte angegangen werden, um Iteratoren zu definieren. (Ich verwende zahlentheoretische Funktionen anstelle von Lambda-Kalkül.) Zum BeispielI(f,0)=f(1), I(f,n+1)=f(I(f,n)) und definieren g(0)=S, g(n)=I(g(n1)) (S ist Nachfolger) wo g:N×NNNN, f:NN. Jetzth(n)=g(n)(n) sollte vergleichbar sein mit fω. Anreise nachfωn zum nN scheint machbar, aber fωωscheint herausfordernd. Nach dem Erreichen vonfωωIch würde erwarten, dass sich die Dinge klären.

Ihre Beispiele I und gbefinden sich noch im System T-Fragment.
Andrej Bauer

Antworten:


1

(Dies ist eine sehr teilweise Antwort, die nur den ersten Punkt und nicht die Hauptfrage zur Hierarchie anspricht.)

Ich habe keinen Beweis, auf den ich Sie hinweisen könnte, aber die Idee ist, dass ein einziger Rekorder erster Ordnung über Naturtöne wie

rec:(natnat)natnatnatrec fzn=f(f(f(z)))(n times f)

wäre viel weniger mächtig als das vollständige (primitive) Rekursionsschema

recU:(UU)UnatU

da letzteres in etwa einem polymorphen Begriff in System F ähnelt, der bei vielen Typen verwendet werden kann U.

In der Tat das Grundlegende recgibt uns nur Zugang zum primitiven Rekursionsschema erster Ordnung, wie wir es in einem Buch zur Berechenbarkeits- / Rekursionstheorie finden können. Nur damit wissen wir, dass Funktionen wie die von Ackermann nicht definierbar sind. (Nun, das ist nicht so offensichtlich, da wir hier auch Lambdas höherer Ordnung haben, es ist nur die Rekursion, die eingeschränkt ist. Aber der Punkt sollte trotzdem bestehen, denke ich.)

Mit dem recU Schema können wir stattdessen wählen U=natnat, was es uns ermöglicht, Ackermanns Funktion zu definieren, wie Girard in dem vom OP erwähnten Buch zeigt. Daher ist das Schema streng leistungsfähiger.


1

Dies ist eine interessante Frage, deren Antwort absolut nicht trivial ist.

Ich werde zuerst die kurze Antwort geben: Es gibt eine Hierarchie von Systemen, nennen Sie sie Tk, wo die einzigen erlaubten Rekursoren sind recUmit der Reihenfolge vonUk, wobei die Reihenfolge eines Typs wie folgt definiert ist:

ord(nat)=0
ord(UV)=max(ord(V),ord(U)+1)

Dann lautet der Satz:

Satz : für jedenkgibt es einen Begriff tk:natnat, so dass

  • Tktk:natnat

  • Tk1tk:natnat

tk wächst schneller (in Abhängigkeit von NN) als jede in definierbare Funktion Tlmit l<k.

Beachten Sie, dass T=kTk.

Als ersten Schritt ist es wahrscheinlich nützlich zu bemerken, dass die Ackermann-Funktion so definiert werden kann (wie in Chis Antwort angedeutet ):

ack(n,m)=recnatnat(λf.recnat f 0 m) (λp.S p) n
Modulo ein Fehler von meiner Seite.

Dies legt in der Tat nahe, dass recnatnat hatte zusätzliche "Kraft".


Aber wie gehen wir den ganzen Weg den Turm hinauf, um willkürlich zu sein? Tk?

Der Trick besteht darin, eine dreifache Entsprechung zwischen:

1) Ordnungszahlen unten ε0

2) Fragmente von HAk der Heyting-Arithmetik, bei der die Induktion auf Aussagen mit weniger als beschränkt ist k Quantifiziererwechsel.

3) Funktionen definierbar in Tk

Für jede Ordnungszahl λk=ωωω wo der Turm von Höhe ist kEs ist möglich, einen Beweis in der Heyting-Arithmetik zu betrachten, dass eine solche Ordnungszahl begründet ist, und daraus einen Begriff zu extrahierentk im System typisierbar Tk was der Funktion entspricht gλkin der Grzegorczyk-Hierarchie .

Ein solcher Begriff kann nicht gut eingegeben werdenTk1 aufgrund der oben beschriebenen Korrespondenz und der Tatsache, dass HAk1 beweist nicht die Begründetheit von λk.

Lügen und Referenzen :

Die Korrespondenz zwischen Tk, HAk und λk ist nicht ganz so sauber wie ich vorgeschlagen habe, sollte es eigentlich geben k, k und k, jeweils durch eine konkrete Konstante verbunden.

Eine explizite Konstruktion für die tkentlang des oben beschriebenen Weges wird von Ulrich Berger in der Programmextraktion aus Gentzens Beweis der transfiniten Induktion bis zu angegeben ε0

Ich fürchte, ich habe keine bessere Referenz für die dreifache Korrespondenz als Proofs and Types , obwohl ich mich sehr freuen würde, von einer zu hören.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.