Gibt es in der Typentheorie eine gute Vorstellung davon, dass Beweise nicht beendet und gestoppt werden?


10

Die konstruktive Typentheorie mit ihrer Grundinterpretation unter der Curry-Howard-Korrespondenz besteht nur aus insgesamt berechenbaren Funktionen. In der Literatur wurde über die Verwendung der "Computertypentheorie" zur Darstellung der Nichtbeendigung in funktionalen Programmen gesprochen, doch in den Arbeiten, auf die ich gestoßen bin, scheint dies nicht die Hauptmotivation für die Theorie zu sein (zum Beispiel) Benton erwähnt Nichtdeterminismus, Fortsetzungen und Ausnahmen, ohne auf die Nichtbeendigung näher einzugehen. Daher muss ich noch einen Artikel finden, der eine solide Interpretation der Nichtbeendigung unter Verwendung der rechnergestützten Typentheorie liefert.

Insbesondere suche ich nach einer Möglichkeit, bei einem Typ, der eine möglicherweise nicht terminierende Berechnung des Typs , T ( A ) darstellt , Beweise dafür zu finden, dass x : T ( A ) vom Typ H ( x ) endet. , so dass wir mit x : T ( A ) und p : H ( x ) einen Term ˜ x : A konstruieren können .AT(A)x:T(A)H(x)x:T(A)p:H(x)x~:A

Meine Motivation dafür ist, dass ich in der Lage sein möchte, Begriffe in der rechnerischen Komplexitätstheorie formeller mit der konstruktiven Typentheorie in Beziehung zu setzen. Insbesondere interessiert mich, welche Macht konstruktive Typen als formale Theorie mit dem Zugang zu einem haltenden Orakel gewinnen, und um dies zu tun, muss ich natürlich tatsächlich eine formale Vorstellung von einer möglichen Nichtbeendigung und Beweise für ein Anhalten haben Gehen Sie in einem typentheoretischen Rahmen mit.


3
Haben Sie sich Constable-Mendler, Rekursive Definitionen in der Typentheorie angesehen ? Sie geben einen Weg für jede Festpunkt - rekursive Definition einer Teilfunktion der Definition von A nach B einer Domäne Prädikat d o m ( f ) , so daß für x A , D o m ( f ) ( x ) repräsentieren den Typen von Beweisen, die f bei x anhält . Ich glaube, dass dies in Nuprl implementiert ist. fAB dom(f)xAdom(f)(x)fx
Ulrik Buchholtz


@UlrikBuchholtz Ich denke, das kommt dem, wonach ich suche, ziemlich nahe, obwohl ich einige Schwierigkeiten habe, die in der Zeitung verwendete Nuprl-Notation zu analysieren - mit der ich nicht ähnlich bin. Wenn ich das richtig verstehe, definieren sie im Wesentlichen eine partielle rekursive Funktion von nach B (oder identifizieren sie zumindest mit) als eine gesamte rekursive Funktion von $ \ {x: A | dom (f) (g) \} bis B. (Siehe die Bemerkung am Ende von Seite 27)AB
Nathan BeDell

Antworten:


11

Da eine der Hauptanwendungen der Typentheorie in Formalisierungen darin bestand, Programmiersprachen und Berechnungen im Allgemeinen zu studieren, wurde viel darüber nachgedacht, möglicherweise nicht terminierende Programme darzustellen.

Ich werde hier keine vollständige Umfrage durchführen, aber ich werde versuchen, Hinweise auf die Hauptschübe verschiedener Richtungen zu geben.

  • F x yfxf(x)=yx(y,F x y)(¬y,F x y)

    Eine ausgefeiltere Methode hierfür ist die "Bove-Capretta" -Methode (siehe Modellierung der Rekursion in der Typentheorie , die für jede rekursive Funktion ein "zugängliches Prädikat" definiert, das die Tatsache codiert, dass eine bestimmte Berechnung endlich ist. Die Funktionsdefinition dauert Ein zusätzliches Argument, das beweist, dass auf die angegebenen Eingaben zugegriffen werden kann. Um die Funktion ohne dieses zusätzliche Prädikat zu definieren, müssen Sie nachweisen, dass auf jede mögliche Kombination von Eingaben zugegriffen werden kann.

  • A

    codata Delay A =
    | Now : A -> Delay A
    | Later (Delay A)
    

    Dies codiert einen möglicherweise unendlichen Strom von LaterToken ("Ticks" der Berechnung), die möglicherweise mit einem Ergebnis enden Now a. Die Nichtbeendigung ist gleichbedeutend mit dem Programm

    Schleife = Spätere Schleife und Beendigung können durch ein induktives Prädikat definiert werden über Delay A:

    data Terminates : Data A -> Prop =
    | Term_now : forall x, Terminates (Now x)
    | Term_later : forall d, Terminates d -> Terminates (Later d)
    

    Ich denke, die Agda-Istas haben viel zu sagen, was sie als Parteilichkeitsmonade bezeichnen (siehe z . B. Danielsson ).

  • Der Ansatz der "partiellen Typentheorie" : Dies ist etwas experimenteller (die Theorie wird noch ausgearbeitet), aber es werden einige Typentheorien entwickelt, um der Tatsache gerecht zu werden, dass es im Wesentlichen zwei Arten von Funktionen gibt, die wir wollen Schreiben Sie in Typentheorie: die Beweisbegriffe und die Programme. Es stellt sich als schwierig heraus, eine vernünftige Theorie dieser Dinge zu erhalten (und die Konsistenz der Theorie beizubehalten), aber hier unternehmen Casinghino et al . Und Kimmel et al . Einen ähnlichen Versuch .

Ich bin mir sicher, dass es andere Ansätze gibt, die mir nicht bekannt sind, und ich würde mich freuen, wenn jemand diese Liste vervollständigen möchte.

Π10

Es gibt andere, recht fruchtbare Wechselwirkungen zwischen Typentheorie und Komplexitätstheorie, normalerweise unter dem Dach der impliziten rechnerischen Komplexität .


Interessant, danke für die Information! Ich glaube, dass der Ansatz der partiellen Typentheorie dem, wonach ich suche, wahrscheinlich am nächsten kommt - und zumindest scheint das Kimmel-Papier auf einer bestimmten Ebene genau das zu bieten, wonach ich suche (siehe die Schreibregeln für "tcast"). ).
Nathan BeDell
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.