розріз і полярність пі-типів


18

У нещодавній темі в списку розсилки Агди з'явилося питання про η закони, в якому Пітер Хенкок зробив замислене зауваження .

Я розумію, що η закони бувають негативних типів, тобто. сполучники, правила введення яких необоротні. Щоб вимкнути η для функцій, Хенк пропонує замість звичайного правила застосування використовувати елімінатор на замовлення, funsplit . Я хотів би зрозуміти зауваження Хенка з точки зору полярності.

Наприклад, є дві Σ типи презентації . Існує традиційний елімінатор розколу Мартін-Леф у позитивному стилі:

Γ⊢f:(а:А)(б:Ба)→С(а,б)Γ⊢p:Σа:А.БΓ⊢сpлiтfp:Сp

І є негативна версія:

Γ⊢p:Σа:А.БΓ⊢π0p:АΓ⊢p:Σа:А.БΓ⊢π1p:Б[π0p/а]

Ця остання презентація дозволяє легко отримати η для пар, тобто. (π0p,π1p)==p для будь-якої пари p (де == означає визначену рівність). З точки зору доказовості ця різниця не має значення: інтуїтивно, ви можете реалізовувати проекції з роздвоєним або навпаки.

Тепер, Π -типи зазвичай (і, безперечно, я вважаю) сприймаються негативно:

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

Що дає нам для функцій: λ x . f x = = f .ηλx.fx==f

Однак у цій пошті Генк згадує елімінатор повного розколу (Програмування в теорії типу ML, [http://www.cse.chalmers.se/research/group/logic/book/], стор.56). Це описується в логічній рамці:

f∈Π(А,Б)С(v)Sет[v∈Π(А,Б)]г(у)∈С(λ(у))[у(х)∈Б(х)[х∈А]]fунсpлiт(f,г)∈С(f)

Цікаво, що Nordstrom та ін. мотивуйте це визначення, сказавши, що "[ця] альтернативна неканонічна форма заснована на принципі структурної індукції". Це твердження відчуває сильний запах позитивності: функції були б "визначені" їх конструктором, .λ

Однак я не можу повністю зафіксувати задовільне уявлення цього правила в природній дедукції (або, ще краще, послідовне обчислення). (Ab) використання логічної основи для введення здається тут вирішальним.у

Отже, чи є funsplit позитивною подачею -типів? Чи є у нас щось подібне в (незалежному) послідовному обчисленні? Як би це виглядало?Π

Наскільки загальним / цікавим є теоретики доказу на місцях?

Відповіді:


12

Представлення функціонального усунення за допомогою , безумовно, не є звичайним явищем у більшості методів лікування теорії типів. Однак я вважаю, що ця форма справді є «позитивною» презентацією ліквідації функціональних типів. Проблема тут полягає в тому, що вам потрібна форма узгодження вищого порядку, див., Наприклад, Дейл Міллер .funsplit

Дозвольте мені переформулювати ваше правило більш зрозумілим для мене:

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

Там , де є мета-змінна типу B в контекстному х : .FBx:A

Правило перезапису стає:

match λx:A.t with λx:A.F(x)⇒e→e{t{u/x}/F(u)}

Це дозволяє визначити додаток як:

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

Крім того, що для цього потрібна «тип логічної системи» типу типів, щоб бути дійсною, клопоти (і обмежена потреба) вищого порядку уніфікації роблять цю формулювання непопулярною.

Однак у літературі є місце, де позитивне / негативне розрізнення є: формулювання логічних предикатів . Два можливих визначення (в одинарному випадку) є

[[Πx:A.B]]={t∣∀u∈[[A]],tu∈[[B]]x↦u}

і

[[Πх:А.Б]]={т∣т→∗λх.т',∀у∈[[А]],т'{у/х}∈[[Б]]х↦у}

Друга версія зустрічається рідше, але її можна знайти, наприклад, у Dowek та Werner .


1
Це, мабуть, пов'язане з абстрактним синтаксисом вищого порядку, який широко використовується в логічній структурі. Зокрема, здається метафункцією. Ж
— день

13

Ось дещо інша точка зору на відповідь Фредріка. Як правило, так видно, що непередбачувані кодування Церкви типів задовольнять відповідні закони, але не задовольнятимуть η закони.βη

Отже, це означає, що ми можемо визначити залежну пару наступним чином:

; Тепер, зверніть увагущо π 1 легко визначені у договорі: π 1 : ∃ х : X .

∃х:Х.Y[х]≜∀α:∗.(Πх:Х.Y[х]→α)→α
π1 Однак, ви не можете визначити другу проекцію π 2 : П р : ( ∃ х : X .
π1:∃х:Х.Y[х]→Х≜λp:(∃х:Х.Y[х]).pХ(λху.х)
- спробуйте! Ви можете визначити лише слабкий елімінатор для цього, саме тому я написав це екзистенціалом.π2:Πp:(∃х:Х.Y[х]).Y[π1p]

Однак друга проекція реалізована , і в параметричній моделі ви можете показати, що вона має і правильну поведінку. (Див. Мій останній проект з Дереком Дрейєром про параметричність в обчисленні конструкцій для отримання детальніше про це.) Тому я вважаю, що проекція принципово вимагає деяких сильних властивостей розширення, щоб мати сенс.π2

З точки зору послідовного обчислення, слабкий елімінатор має правило, яке виглядає так:

Γ,x:X,y:Y[x],Γ′⊢e′:CΓ,p:∃x:X.Y[x],Γ′⊢let(x,y)=pine′:C
Here, the implicit well-formedness conditions imply that p cannot occur free in Γ′ or C. If we relax that condition, we get the split rule, which has a left-rule that looks like
Γ,x:X,y:Y[x],[(x,y)/p]Γ′⊢e′:[(x,y)/p]CΓ,p:∃x:X.Y[x],Γ′⊢let(x,y)=pine′:C
That substitution reminds me an awful lot of the Girard/Schroeder-Heister elimination rule for equality. I asked a question about this rule a while back, and David Baelde and Gopalan Nadathur give the state-of-the-art version in their LICS 2012 paper, Combining Deduction Modulo and Logics of Fixed-Point Definitions. I think Conor McBride has spent some time thinking about the relationship between the identity type and the Schroeder-Heister equality, so you might want to see what he thinks.

1
Мені дуже подобаються всі ці відповіді! Я відчуваю, що існує якесь поняття "самоаналіз" (здатність знати, що термін має значення), що міститься у відповіді Фредріка, що справжнє питання з ета: параметричність передбачає, що інтроспекція передбачає ета.
— коді

10

Річард Гарнер написав чудову статтю про застосування проти funsplit, " Про міцність залежних продуктів у теорії типів Мартіна- Лефа (APAL 160 (2009))", де також обговорюється характер вищого порядку правила funsplit (з посиланням на Природне продовження природної дедукції Пітера Шредера-Хайстера (JSL 49 (1984)).

Річард показує, що за наявності типів ідентичності (та правил формування та впровадження для Π types), funsplit is interderivable with the application rule above + propositional eta, i.e. the following two rules:

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

That is, if you have funsplit, you can define application and η as above so that (Π-Prop-η-Comp) holds. More interestingly, if you have application and the propositional eta rules, then you can define funsplit.

Крім того, funsplit суворо сильніший за застосунок: правила пропозиції еталони не є визначеними в теорії лише з застосуванням - отже, funsplit не є визначеним, оскільки тоді також будуть пропоновані ета-правила. Інтуїтивно це пов'язано з тим, що правила застосування дають вам трохи більше слабкості: на відміну від funsplit (і ета), вони не кажуть вам, що це за функції, тільки що їх можна застосувати до аргументів. Я вважаю, що аргумент Річарда можна повторитиΣ також, щоб показати однаковий результат для сpлiт проти прогнозів

Зауважте, що якби у вас були визначені ета-правила, ви, звичайно, мали б їх пропонувати також (з η(м): =rеfл(м)). Таким чином, я вважаю ваші твердження "[...], яке нам даєη для функцій "і" [...] ця остання презентація спрощує отримання η для пар "помиляються. Агда, проте, реалізує η як для функцій, так і для пар (якщо Σ визначається як запис), але це не випливає з просто програми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.