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 .
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.
quelle
Antworten:
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.
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.
Dies codiert einen möglicherweise unendlichen Strom von
Later
Token ("Ticks" der Berechnung), die möglicherweise mit einem Ergebnis endenNow a
. Die Nichtbeendigung ist gleichbedeutend mit dem ProgrammSchleife = Spätere Schleife und Beendigung können durch ein induktives Prädikat definiert werden über
Delay A
: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.
Es gibt andere, recht fruchtbare Wechselwirkungen zwischen Typentheorie und Komplexitätstheorie, normalerweise unter dem Dach der impliziten rechnerischen Komplexität .
quelle