In einem letzten Thread auf der Agda Mailing - Liste, die Frage nach den tauchte Gesetze auf, in dem Peter Hancock machte zum Nachdenken anregende Bemerkung .
Mein Verständnis ist , dass Gesetze kommen mit negativen Typen, dh. Konnektive, deren Einführungsregeln umkehrbar sind. Um für Funktionen zu deaktivieren , schlägt Hank vor , anstelle der üblichen Anwendungsregel einen benutzerdefinierten Eliminator, funsplit , zu verwenden. Ich möchte Hanks Bemerkung in Bezug auf die Polarität verstehen.
Beispielsweise gibt es zwei Präsentationen Typen. Es gibt den traditionellen Martin-Löf- Split- Eliminator in einem positiven Stil:
Und da ist die negative Version:
Diese letztere Präsentation macht es einfach , zu erhalten für Paare, dh. für ein beliebiges Paar (wobei == für die definitive Gleichheit steht). In Bezug auf die Beweisbarkeit spielt dieser Unterschied keine Rolle: Intuitionistisch können Sie Projektionen mit Split implementieren oder umgekehrt.
Nun werden -Typen normalerweise (und meiner Meinung nach unumstritten) negativ bewertet:
Was uns für Funktionen gibt: .
In dieser Mail erinnert sich Hank jedoch an den funsplit eliminator (Programming in ML type theory, [http://www.cse.chalmers.se/research/group/logic/book/], S.56). Es wird im logischen Rahmen beschrieben durch:
Interessanterweise haben Nordstrom et al. Motivieren Sie diese Definition, indem Sie sagen, dass "[diese] alternative nichtkanonische Form auf dem Prinzip der strukturellen Induktion beruht". Diese Aussage riecht stark nach Positivität: Funktionen würden durch ihren Konstruktor 'definiert' .
Allerdings kann ich eine zufriedenstellende Darstellung dieser Regel in natürlicher Ableitung (oder, noch besser, in Folgerechnung) nicht ganz festlegen. Die (ab) Verwendung des logischen Rahmens zur Einführung von scheint hier entscheidend zu sein.
So wird funsplit eine positive Darstellung von -Typen? Haben wir auch etwas Ähnliches in der (nicht abhängigen) Folgerechnung? Wie würde es aussehen?
Wie verbreitet / neugierig ist das für die Beweistheoretiker auf dem Gebiet?
quelle
Hier ist eine etwas andere Perspektive auf Fredriks Antwort. Es ist im Allgemeinen der Fall, dass anmaßende Kodierungen von Kirchentypen die relevanten Gesetze erfüllen, aber nicht die Gesetze.ηβ η
Das heißt, wir können ein abhängiges Paar wie folgt definieren:
Die zweite Projektion ist jedoch realisierbar , und in einem parametrischen Modell können Sie zeigen, dass es auch das richtige Verhalten aufweist. (Weitere Informationen hierzu finden Sie in meinem jüngsten Entwurf mit Derek Dreyer zur Parametrizität in der Konstruktionsrechnung .) Ich denke, dass die Projektion grundsätzlich einige starke Extensionalitätseigenschaften erfordert, damit sie Sinn ergibt.π2
In Bezug auf die Folgerechnung hat der schwache Eliminator eine Regel, die ungefähr so aussieht:
quelle
Richard Garner hat in der Typentheorie von Martin-Löf (APAL 160 (2009)) einen schönen Artikel über Application vs. Funsplit geschrieben, in dem auch die übergeordnete Natur der Funsplit-Regel diskutiert wird (unter Bezugnahme auf Peter Schroeder-Heisters A natural extension of natural deduction (JSL 49 (1984)).
Richard zeigt, dass bei Vorhandensein von Identitätstypen (und Formierungs- und Einführungsregeln für Typen) Funsplit mit der obigen Anwendungsregel + Propositional eta, dh den folgenden beiden Regeln, interderierbar ist:Π
Das heißt, wenn Sie funsplit haben, können Sie application und wie oben definieren, so dass gilt. Interessanter ist, dass Sie Funsplit definieren können, wenn Sie eine Anwendung und die Aussagen-eta-Regeln haben.η (Π-Prop-η-Comp)
Außerdem ist funsplit strikt stärker als application: Die Aussagen-eta-Regeln sind in einer Theorie mit nur application nicht definierbar - daher ist funsplit nicht definierbar, da dann auch die Aussagen-eta-Regeln definiert wären. Dies ist intuitiv darauf zurückzuführen, dass die Anwendungsregeln ein wenig lockerer sind: Im Gegensatz zu funsplit (und eta) geben sie keine Auskunft über die Funktionen, sondern nur darüber, dass sie auf Argumente angewendet werden können. Ich glaube, Richards Argument könnte auch für Typen wiederholt werden , um dasselbe Ergebnis für vs projections zu .Σ split
Wenn Sie definitive eta-Regeln hätten, würden Sie diese sicherlich auch propositionell haben (mit ). Daher denke ich, dass Ihre Aussagen "[...] die uns für Funktionen geben" und "[...] diese letztere Darstellung es einfach macht, für Paare zu erhalten" falsch sind. Agda implementiert jedoch für beide Funktionen und Paare (wenn als Datensatz definiert ist), aber dies folgt nicht nur aus der Anwendung.η η η & Sigma;η(m):=refl(m) η η η Σ
quelle