Welche Rolle spielt die zweifarbige Konstruktionsrechnung?

9

Ich lese also ein wenig über die Ausarbeitung, insbesondere über Algorithmen, die auf der zweifarbigen Konstruktionsrechnung basieren, und bin etwas verwirrt. Ich verstehe nicht, was genau der Zweck des ist. Es scheint mit C C identisch zu sein, außer dass zwischen impliziten und expliziten Argumenten für Funktionen unterschieden wird. Insbesondere sehe ich nicht, wie es Ihnen erlaubt zu schreiben ( i dCCbiCC anstelle von ( i d(id0) . Wenn wir ein System für globale Definitionen annehmen, dann(idN0)

id:(ΠA|Type.(Πx:A.A))

und

.id=(λA|Type.(λx:A.x))

Lassen die Regeln wirklich zu ? Natürlich stimmt die Syntax, aber ich sehe sie nicht in der Schreibbeziehung. Vermisse ich etwas Verstehe ich die Rolle von C C b i falsch?(id0)CCbi

Ist nicht auch das Eigentum des Zusammenflusses verloren? Ich denke, mein Problem ist, dass ich über die Ausarbeitung lese, ohne vorher viel über gelesen zu haben . Was ist ein gutes Papier, das es und es alleine vorstellt?CCbi

Bearbeiten: Um genauer zu sein, frage ich wie wird anstelle von ( i d(id0) , wenn die Regeln für explizite und implizite Π Anwendung sind identisch Modulo sytnax. Ich sehe keinen Unterschied zwischen : und | Die Regeln für beide scheinen gleich zu sein.(idN0)Π:|

Π

(id0)(idN0)

Anthony
quelle
2
Wie ich weiter unten sagte, ist Ihre Intuition richtig: Der zweifarbige Konstruktionskalkül ist ein expliziter Kalkül, in dem die vom Benutzer ausgelassenen, aber vom "Frontend" ausgearbeiteten Argumente explizit markiert sind. Die Konfluenz geht auch für Beta + Eta-Reduktionen verloren, ist jedoch wahr, wenn sie nur auf Beta beschränkt ist.
Cody

Antworten:

9

In der impliziten Konstruktionsrechnung, die reine Typsysteme mit einem Schnitttyp-Binder und einer Subtypisierung erweitert , führt Alexandre Miquel die Grundkonzepte für die implizite Konstruktionsrechnung ein, die meines Erachtens gleichbedeutend mit der zweifarbigen Konstruktionsrechnung ist.

Es geht (unter anderem) darum, überall einen Kalkül ohne die Unordnung expliziter Typanmerkungen zu haben. Typinferenz ist jedoch (sehr wahrscheinlich) unentscheidbar.

id=λx.x

id:X:Type.XX
id:NatNat
id 0:Nat
Das System lässt Subjektreduktion und Konfluenz zu, selbst unter untypisierten Begriffen (was bei Kalkülen mit Abstraktionsanmerkungen tatsächlich fehlschlägt). All dies findet sich in Alexandres These, die leider auf Französisch ist. Ich bin mir nicht sicher, ob ich eine bessere Referenz für diese Ergebnisse habe, obwohl ich Angst habe.
Cody
quelle
Den ersten Teil Ihrer Antwort wusste ich, aber ich denke, ich hätte in meiner ursprünglichen Frage genauer sein sollen. Das heißt, wie genau ist (id 0) zulässig, wenn id den Typ (\ Pi X | Type. X -> X) hat, da die APP-Regel anscheinend sowohl für das implizite als auch für das explizite \ Pi identisch ist. In der impliziten Konstruktionsrechnung, die in der Tat eine andere Theorie ist, ist dies nicht der Fall, da sie in APP und GEN getrennt ist. Überprüfen Sie zur Überprüfung, ob dies anders ist, die Überschrift "Ein Kalkül mit 'wirklich impliziten' Argumenten" in dem Dokument, auf das Sie verwiesen haben.
Anthony
1
In Bezug auf die Entscheidbarkeit. Das Papier, auf das Sie verweisen, vermutet, dass es sich um eine Theorie handelt, die nicht zu entscheiden ist. Das Papier, auf das es verweist (ich denke, das "ursprüngliche" zweifarbige Konstruktionspapier), behauptet, entscheidbar zu sein, beweist es aber nicht explizit. Ich habe es gelesen, nachdem ich diese Frage gestellt habe, und es scheint, dass es definitiv entscheidbar sein sollte und abhängig von den syntaktischen Einschränkungen die Konfluenz beibehält. Andererseits bin ich immer noch mit meiner ursprünglichen Verwirrung festgefahren: \
Anthony
Vielleicht sollten Sie uns sagen, welches Papier Sie sich ansehen.
Cody
2
Ok, ich habe mir Elaboration and Erasure in Type Theory von Marko Luther angesehen, von dem ich vermute, dass es Ihre Referenz ist. In diesem Fall gibt es keinen semantischen Unterschied zwischen den expliziten und impliziten Produkten, und tatsächlich ist das zweifarbige System eine konservative Erweiterung der Konstruktionsrechnung. Was passiert, ist, dass Sie die Ausarbeitung verwenden , um einen Begriff ohne das explizite Argument in einen vollständig kommentierten Begriff umzuwandeln: id !1 0Ausarbeiten an id Nat 0. In diesem Text wird die Ausarbeitung in Abschnitt 4 behandelt.
Cody
CCbi