Приклад, коли порушення умови суворої позитивності в індуктивних типах призводить до невідповідності


9

Більшість залежних типових систем мають суворі умови позитивності для індуктивних типів. Хтось знає приклад, коли порушення умови призводить до невідповідності в системі?

Відповіді:


10

Насправді можна послабити сувору позитивність і залишатися послідовними. Наприклад, достатньо лише умови позитивності. Тобто ми можемо приймати визначення типу типу

Tμα.(α2)2

де змінні типу рекурсивного типу зустрічаються зліва від парної кількості стрілок і зберігають послідовність.

Однак теорії, що дозволяють подібний тип індуктивного типу, не мають теоретично заданих моделей - ти не можеш інтерпретувати типи як множини, а терміни як елементи множин. У цьому випадку ми говоримо про те, що ізоморфний своєму подвійному силовому набору (тобто T \ simeq \ mathcal {P} (\ mathcal {P} (T)) ), і це порушує теорему Кантора .TTP(P(T))

Оскільки теорії залежного типу часто використовуються для формалізації математики, їхні дизайнери зазвичай вагаються, додаючи принципи, несумісні з теоретично-множинною семантикою, навіть якщо вони узгоджуються.

EDIT: Я додаю цю редакцію у відповідь на запитання Андрія. Тип є послідовним, якщо додати його до (скажімо) Agda; проблем із цим взагалі немає. Проблема у нас є лише в тому випадку, якщо ми поєднуємо не строгу позитивність із виключеною серединою.T

Інтуїцію, чому це безпечно, найкраще бачити через об'єктив параметричності. У Системі F ми можемо показати, використовуючи параметричність, що для будь-якого визначеного функтора вводимо тип - це справді індуктивний тип.FμFα.(Fαα)α

Тепер згадаймо, що визначений функтор - це оператор типу , разом з оператором задовольняють умовам функціональності (тобто і ).FF:

map:α,β.(αβ)FαFβ
mapid=idmapfmapg=map(fg

Тепер ми можемо визначити тип оператора для подвійного харчування

C=λα.(α2)2

і оскільки виникає лише позитивно, ми можемо також визначити для нього оператора карти:α

mapC=λf:αβ,a:(α2)2,k:β2.a(λa:α.k(fa))

Отже, ми знаємо, що - законний індуктивний тип.T=μC


Чи можемо ми придумати приклад, який сам по собі створює непослідовність? Ваш приклад суперечливий, якщо ми також припустимо (достатньо) виключену середину.
Андрій Бауер

Ще одна причина полягає в тому, що ми можемо додати теорему FAN до Агди, після чого ми можемо довести, що йдеться про тип (ізоморфний) натуральним числам.
Андрій Бауер

Я думаю має бути дуже поганим. μα.(α2)α
Андрій Бауер

1
Ах, я неправильно зрозумів питання - справа в тому, що сувора позитивність є достатньою, але не потрібною умовою. Ваш приклад (з фактичною негативною появою) суперечливий.
Neel Krishnaswami

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