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


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.BC:SetΓ,[x:A]F(x):Be: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)ee{t{u/x}/F(u)}

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

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

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

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

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

і

[[Πх:А.Б]]={ттλх.т',у[[А]],т'{у/х}[[Б]]ху}

Друга версія зустрічається рідше, але її можна знайти, наприклад, у 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.mx)(Π-Prop-η)
x:Af(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.