Funsplit und Polarität der Pi-Typen

18

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:Σ

Γf:(a:A)(b:Ba)C(a,b)Γp:Σa:A.BΓsplitfp:Cp

Und da ist die negative Version:

Γp:Σa:A.BΓπ0p:AΓp:Σa:A.BΓπ1p:B[π0p/a]

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.η(π0p,π1p)==pp

Nun werden -Typen normalerweise (und meiner Meinung nach unumstritten) negativ bewertet:Π

Γf:Πa:A.BΓs:AΓfs:B[s/a]

Was uns für Funktionen gibt: .ηλx.fx==f

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:

fΠ(A,B)C(v)Set[vΠ(A,B)]d(y)C(λ(y))[y(x)B(x)[xA]]funsplit(f,d)C(f)

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.y

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?

pedagand
quelle

Antworten:

12

Die Darstellung der funktionellen Eliminierung mit ist in den meisten Behandlungen durchaus nicht üblich. Ich glaube jedoch, dass diese Form in der Tat die "positive" Darstellung der Beseitigung von Funktionstypen ist. Das Problem hierbei ist, dass Sie eine Form der Musterübereinstimmung höherer Ordnung benötigen, siehe z . B. Dale Miller .funsplit

Gestatten Sie mir, Ihre Regel auf eine für mich klarere Weise umzuformulieren:

Γf:Πx:A.BΓ,z:Πx:A.BC:SetΓ,[x:A]F(x):Be:C{λx:A.F(x)/z}match f with λx:A.F(x)e:C{f/z}

Wobei eine Metavariable vom Typ B im Kontext x : A ist .FBx:A

Die Umschreiberegel wird dann:

match λx:A.t with λx:A.F(x)ee{t{u/x}/F(u)}

Auf diese Weise können Sie die Anwendung definieren als:

app(t,u)=match t with λx:A.F(x)F(u)

Abgesehen von der Tatsache, dass dies ein "logisches Framework" -Typsystem erfordert, um gültig zu sein, macht der Aufwand (und das begrenzte Erfordernis) einer Vereinheitlichung höherer Ordnung diese Formulierung unpopulär.

Es gibt jedoch einen Ort, an dem die positive / negative Unterscheidung in der Literatur vorhanden ist: die Formulierung logischer Beziehungsprädikate . Die beiden möglichen Definitionen (im unären Fall) sind

[[Πx:A.B]]={tu[[A]],tu[[B]]xu}

und

[[Πx:A.B]]={ttλx.t,u[[A]],t{u/x}[[B]]xu}

Die zweite Version ist weniger verbreitet, findet sich aber zB bei Dowek und Werner .

Cody
quelle
1
Dies scheint mit der in Logical Framework weit verbreiteten Higher-Order Abstract Syntax zu tun zu haben. Insbesondere scheint das hier die Metafunktion zu sein. F
Tag
13

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:

x:X.Y[x]α:.(Πx:X.Y[x]α)α
Beachten Sie nun, dass leicht definierbar ist: Die zweite Projektion kann jedoch nicht definiert werden - probiere es aus! Sie können dafür nur einen schwachen Eliminator definieren, weshalb ich ihn mit einem Existential geschrieben habe.π1
π1:x:X.Y[x]Xλp:(x:X.Y[x]).pX(λxy.x)
π2:Πp:(x:X.Y[x]).Y[π1p]

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:

Γ,x:X,y:Y[x],Γe:CΓ,p:x:X.Y[x],Γlet(x,y)=pine:C
Hier implizieren die impliziten Wellform-Bedingungen, dass in oder nicht frei vorkommen kann . Wenn wir diesen Zustand lockern, erhalten wir die Teilungsregel, die eine linke Regel hat, die wie aussieht: Diese Ersetzung erinnert mich sehr an die Girard / Schroeder-Heister-Eliminierungsregel für Gleichheit. Ich habe eine Frage gestelltpΓC
Γ,x:X,y:Y[x],[(x,y)/p]Γe:[(x,y)/p]CΓ,p:x:X.Y[x],Γlet(x,y)=pine:C
über diese Regel vor einiger Zeit, und David Baelde und Gopalan Nadathur geben die neueste Version in ihrem LICS 2012-Artikel, Kombination von Abzugsmodul und Logik von Festkommadefinitionen . Ich denke, Conor McBride hat einige Zeit damit verbracht, über die Beziehung zwischen dem Identitätstyp und der Schroeder-Heister-Gleichheit nachzudenken. Vielleicht möchten Sie sehen, was er denkt.
Neel Krishnaswami
quelle
1
Ich freue mich wirklich über all diese Antworten! Ich glaube, es gibt eine Vorstellung von "Selbstbeobachtung" (die Fähigkeit zu wissen, dass ein Begriff einen Wert hat), die in der Antwort von Fredrik impliziert ist, die das eigentliche Problem mit eta ist: Parametrizität impliziert Selbstbeobachtung impliziert eta.
Cody
10

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: Π

m:Π(A,B)η(m):IdΠ(A,B)(m,λx.mx)(Π-Prop-η)
x:Af(x):B(x)η(λ(f))=refl(λ(f)):IdΠ(A,B)(λ(f),λ(f))(Π-Prop-η-Comp)

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)ηηηΣ

Fredrik Nordvall Forsberg
quelle