Каковы эквациональные законы для нулевых типов?


13

Отказ от ответственности : хотя я забочусь о теории типов, я не считаю себя экспертом по теории типов.

В простом типе лямбда-исчисления нулевой тип не имеет конструкторов и уникального элиминатора:

Γ⊢M:0Γ⊢initial(M):A

С денотационной точки зрения уравнение initial(M1)=initial(M2) очевидно (когда типы имеют смысл).

Однако с этой точки зрения я также могу сделать вывод, что, когда M,M′:0 , то: M=M′ . Этот вывод кажется более сильным, хотя конкретная модель, показывающая его, ускользает от меня.

(У меня есть некоторая теоретико-доказательная интуиция: не имеет значения, какое противоречие вы используете, чтобы получить обитателя, но могут быть разные доказательства противоречия.)

Итак, мои вопросы:

  1. Каковы стандартные эквациональные законы для нулевых типов?
  2. Любой из них классифицируется как или β законы?ηβ

Ответы:


12
  1. Стандартные эквациональные правила для пустого типа, как вы догадываетесь, . Подумайте о стандартной теоретико-множественной модели, в которой множества интерпретируются по типам: типы сумм - это непересекающиеся объединения, а пустой тип - это пустое множество. Таким образом, любые две функции e , e ′ : Γ → 0 также должны быть равны, поскольку они имеют общий граф (а именно, пустой граф). ,Γ⊢e=e′:0e,e′:Γ→0

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

    e=initial(e)

    Коммутирующее покрытие это:

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

РЕДАКТИРОВАТЬ:

Вот почему из дистрибутивности нулевого типа следует равенство всех отображений .A→0

Чтобы исправить обозначения, давайте напишем чтобы быть уникальной картой от 0 до A , и давайте напишем e : A → 0, чтобы быть некоторой картой от A до 0 .!A:0→A0Ae:A→0A0

Теперь условие дистрибутивности говорит о том, что существует изоморфизм . Поскольку исходные объекты уникальны с точностью до изоморфизма, это означает, что A × 0 сам по себе является начальным объектом. Теперь мы можем использовать это, чтобы показать, что сам A является начальным объектом.i:0≃A×0A×0A

Поскольку является исходным объектом, мы знаем отображения π 1 : A × 0 → A и ! ∘ тг 2 равны.A×0π1:A×0→A!A∘π2

Теперь, чтобы показать, что является начальным объектом, нам нужно показать изоморфизм между ним и 0 . Давайте выберем e : A → 0 и ! A : 0 → A как компоненты изоморфизма. Мы хотим показать, что е ∘ ! A = i d 0 и ! ∘ е = я d A .A0e:A→0!A:0→Ae∘!A=id0!A∘e=idA

Показываю, что является немедленным, поскольку существует только одна карта типа 0 → 0 , и мы знаем, что всегда существует карта тождества.e∘!A=id00→0

Чтобы показать другое направление, отметим, что

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

Следовательно, у нас есть изоморфизм , и поэтому A является начальным объектом. Поэтому отображения A → 0 являются уникальными, и поэтому, если у вас есть e , e ′ : A → 0 , то e = e ′ .A≃0AA→0e,e′:A→0e=e′

РЕДАКТИРОВАТЬ 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: я думаю о нулевом типе как о начальном объекте. Исходные объекты могут иметь несколько стрел в них, но может быть только одна стрелка из них. Другими словами, я не сразу вижу причину, почему би-ССС подразумевает, что 0 является субтерминалом. Есть один?
— Охад Каммар

Да: тот факт, что STLC с суммами нуждается в дистрибутивном bi-CCC ( ) для его интерпретации, и уникальность для типа 0 проявляется как нулевая версия этого. (Попробуйте записать толкование правила исключения для сумм, и вы увидите его.)(X×A)+(X×B)≃X×(A+B)
— Нил Кришнасвами

Я не следую Дистрибутивность составляет имеющих обратное значение. Почему это означает, что 0 является субтерминальным? initial:0→A×00
— Охад Каммар

Ага! Спасибо за это доказательство! И за терпение тоже!
— Охад Каммар

Относительно редактирования 2: Левые примыкания сохраняют ограничения. Если категория декартов замкнута, то сопряжено слева к ( - ) С таким ( + В ) × С является суммой × C + B × C . (−)×C(−)C(A+B)×C A×C+B×C
— Охад Каммар

8

Уравнение отражает только тот факт, что 0 имеет не более одного элемента, поэтому я не думаю, что Нил захватывает всю историю. Я бы аксиоматизировал пустой тип 0 следующим образом.e=e′:000

Там нет правил вступления. Правило исключения - Уравнение имеет видmagicτ(e)=e′:τ,гдеe:0иe′:τ. На протяженииτлюбой тип. Уравнение мотивируется следующим образом: если вам удалось сформировать членmagicτ(e),то в0обитает

e:0magicτ(e):τ.
magicτ(e)=e′:τ
e:0e′:ττmagicτ(e)0 , но это абсурд, поэтому все уравнения верны. Таким образом, другой способ достижения того же эффекта состоит в том, чтобы поставить уравнение x : 0 , Γ ⊢ e 1 = e 2 : τ, что, возможно, не очень приятно, потому что оно смешивается с контекстом. С другой стороны, это более ясно показывает, что мы констатируем тот факт, что любые два морфизма от 0 до τ равны ( Γ является отвлечением в CCC).e
x:0,Γ⊢e1=e2:τ
0τΓ

1
Привет, Андрей, предложенное вами уравнение выводится из приведенного мною преобразования. выводится из C [ m a g i c ( e ) ] = m a g i c ( e ) , поскольку m a g i c ( e ) фактически не должно возникать на левом члене. Аналогия с C [ c a smagic(e)=e′C[magic(e)]=magic(e)magic(e) , где не используется результат анализа случая, это нормально, если вы делаете то же самое в обеих ветвях. C[case(e,x.e′,y.e″)]=case(e,x.C[e′],y.C[e″])
— Нил Кришнасвами

Однако я должен добавить, что мне больше нравится презентация с контекстами - на самом деле, я думаю, что в целом это будет самым чистым, если вы на самом деле допускаете уравнения для суммируемых значений в контексте! Это намного лучше для реальных доказательств, чем игры с коммутирующими преобразованиями, IMO. (IIRC, это эквивалентно добавлению дополнительного предположения о стабильных копроизведениях, но для всех моделей, которые я могу разумно видеть, забота об этом верна.)
— Нил Кришнасвами

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

1
ηβ

1
Для нулевых типов нет стандартных эквациональных законов. Логики всегда боялись пустой вселенной дискурса, а компьютерные ученые всегда боялись пустого типа. Они даже назвали непустой тип «void», чтобы отрицать пустой тип.
— Андрей Бауэр
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.