Які рівняльні закони для нульових типів?


13

Відмова : хоча я дбаю про теорію типів, я не вважаю себе експертом з теорії типів.

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

ΓM:0Γinitial(M):A

З денотаційної точки зору, рівняння очевидно (коли типи мають сенс).initial(M1)=initial(M2)

Однак з цієї точки зору я також можу зробити висновок, що коли , то: . Ця дедукція здається сильнішою, хоча конкретна модель, яка показує, ухиляється від мене.M = M M,M:0M=M

(Я маю деяку доказово-теоретичну інтуїцію: неважливо, яке протиріччя ви використовуєте для отримання мешканця, але можуть бути різні докази суперечності.)

Отже, мої запитання:

  1. Які стандартні рівняння законів для нульових типів?
  2. Чи будь-який із них класифікується як чи закони?βηβ

Відповіді:


12
  1. Стандартні рівнянні правила для порожнього типу, як ви думаєте, . Подумайте про стандартну теоретико-множинську модель, де множини інтерпретуються за типами: типи суми - це непересічні об'єднання, а порожній - порожній. Отже, будь-які дві функції також повинні бути рівними, оскільки вони мають загальний графік (а саме порожній графік). .e , e : Γ 0Γe=e:0e,e:Γ0

  2. Пустий тип не має правил, оскільки для нього немає вступних форм. Єдине рівняльне правило - це правило . Однак, залежно від того, наскільки суворо ви хочете інтерпретувати, що таке ета-правило, ви можете розбити це на перетворення плюс комутацію. Суворе -rule:η η ηβηηη

    e=initial(e)

    Покриття на маршрутах:

    C[initial(e)]=initial(e)

Редагувати:

Ось чому дистрибутивність при нульовому типі передбачає рівність усіх карт .A0

Щоб виправити позначення, запишемо щоб це була унікальна карта від до , і запишемо щоб бути деякою картою від до .0 A e : A 0 A 0!A:0A0Ae:A0A0

Тепер умова розподілу говорить про те, що існує ізоморфізм . Оскільки початкові об'єкти є унікальними аж до ізоморфізму, це означає, що є самим початковим об'єктом. Тепер ми можемо використовувати це, щоб показати, що сам є початковим об'єктом.A × 0 Ai:0A×0A×0A

Оскільки є початковим об'єктом, ми знаємо, що карти і рівні.π 1 : A × 0 A ! Aπ 2A×0π1:A×0A!Aπ2

Тепер, щоб показати, що є початковим об'єктом, нам потрібно показати ізоморфізм між ним та . Виберемо і як складові ізоморфізму. Ми хочемо показати, що і .0 e : A 0 ! A : 0 A e ! A = i d 0 ! Ae = i d AA0e:A0!A:0Ae!A=id0!Ae=idA

Показавши, що є негайним, оскільки існує лише одна карта типу , і ми знаємо, що завжди існує карта ідентичності. 0 0e!A=id000

Щоб показати інший напрямок, зверніть увагу

idA=π1(idA,e)Product equations=!Aπ2(idA,e)Since A×0 is initial=!AeProduct equations

Отже, маємо ізоморфізм , і тому є початковим об'єктом. Тому карти є унікальними, і якщо у вас , то .A A 0 e , e : A 0 e = e A0AA0e,e:A0e=e

EDIT 2: Виявляється, ситуація красуня, ніж я спочатку думав. Я дізнався від Ульріха Бухольца, що очевидно (в математичному сенсі "ретроспективно очевидний") кожен biCCC є розповсюджувальним. Ось милий маленький доказ:

Hom((A+B)×C,(A+B)×C)Hom((A+B)×C,(A+B)×C)Hom((A+B),C(A+B)×C)Hom(A,C(A+B)×C)×Hom(B,C(A+B)×C)Hom(A×C,(A+B)×C)×Hom(B×C,(A+B)×C)Hom((A×C)+(B×C),(A+B)×C)

1
Щодо 1: Я вважаю нульовий тип як початковий об’єкт. Вихідні об'єкти можуть мати кілька стріл в них, але може бути тільки одна стрілка з них. Іншими словами, я не одразу бачу жодної причини, за якою bi-CCC означає 0 бути підтерміновим. Чи є такий?
Охад Каммар

Так: той факт, що STLC з сумами потребує розподільного bi-CCC ( ) для його інтерпретації, і унікальність для 0 Тип поставляється як нульова версія цього. (Спробуйте записати тлумачення правила усунення для сум, і ви побачите це.)(X×A)+(X×B)X×(A+B)
Неель Кришнасвамі

Я не стежу за цим. Розподільність становить мають обернену. Чому це означає, що є субтермінальним? 0initial:0A×00
Охад Каммар

Ага! Дякую за доказ! І за терпіння теж!
Охад Каммар

щодо редагування 2: ліві суміжні елементи зберігають коломіти. Якщо категорія декартово замкнуто, то є зв'язаним зліва так є сума . ( - ) C ( A + B ) × C A × C + B × C()×C()C(A+B)×C A×C+B×C
Охад Каммар

8

Рівняння фіксує лише той факт, що має максимум один елемент, тому я не думаю, що Ніл захоплює всю історію. Я б аксіоматизував порожній тип наступним чином.0 0e=e:000

Правил введення немає. Правило усунення -Рівняння - де і . Протягом будь-якого типу. Рівняння мотивовано наступним чином : якщо вам вдалося сформувати термін , то населений , але це абсурд , так що все рівняння справедливі. Отже, ще одним способом досягнення такого ж ефекту було б поставити рівняння

e:0magicτ(e):τ.
magicτ(e)=e:τ
e:0e:ττmagicτ(e)0e
x:0,Γe1=e2:τ
що, мабуть, не так приємно, оскільки воно відповідає контексту. З іншого боку, це виразніше показує, що ми констатуємо той факт, що будь-які два морфізми від до рівні ( - це відволікання в CCC).0τΓ

1
Привіт, Андрію, рівняння, яке ти пропонуєш, можна отримати з конверсії, котрий я дав. є похідним від , оскільки насправді не має відбуватися ліворуч. Аналогія полягає в , якщо не використовувати результат аналізу випадку, це нормально, якщо ви робите те саме в обох гілках. magic(e)=eC[magic(e)]=magic(e)magic(e)C[case(e,x.e,y.e)]=case(e,x.C[e],y.C[e])
Neel Krishnaswami

Мені слід додати, що мені подобається презентація з контекстами краще - дійсно, я думаю, що в цілому це найчистіше, якщо ви насправді допускаєте рівняння значень суми в контексті! Це набагато приємніше для фактичних доказів, ніж ігри з комерційними перетвореннями, IMO. (IIRC, це еквівалентно додатковому припущенню стабільних копродуктів, але для всіх моделей я можу з розумом бачити турботу про це.)
Neel Krishnaswami

Ага так, чудово. Мені було занадто пізно думати про перетворення маршрутів, тому я зробив вигляд, що ти не написав цю частину. Тепер Охад може мати свій вибір.
Андрій Бауер

1
Я перевіряв деякі структурні ( , і т.д.) правила в класі моделей. Хоча я знаю, що набір рівнянь, які я дав, не був повним (для цього вам потрібен CBPV зі складними значеннями та стеками), я хотів принаймні зафіксувати стандартні рівняння, які будуть використані для доведення повноти, якщо б у мене було достатньо рівнянь. Іншими словами, я хотів стандартних рівнянь рівняння для нульових типів. βηβ
Охад Каммар

1
Не існує стандартних рівнянь рівняння для нульових типів. Логіки завжди боялися порожнього всесвіту дискурсу, а комп'ютерні працівники завжди боялися порожнього типу. Вони навіть назвали не порожній тип "пустотою", щоб заперечити порожній тип.
Андрій Бауер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.