Більшість залежних типових систем мають суворі умови позитивності для індуктивних типів. Хтось знає приклад, коли порушення умови призводить до невідповідності в системі?
Більшість залежних типових систем мають суворі умови позитивності для індуктивних типів. Хтось знає приклад, коли порушення умови призводить до невідповідності в системі?
Відповіді:
Насправді можна послабити сувору позитивність і залишатися послідовними. Наприклад, достатньо лише умови позитивності. Тобто ми можемо приймати визначення типу типу
де змінні типу рекурсивного типу зустрічаються зліва від парної кількості стрілок і зберігають послідовність.
Однак теорії, що дозволяють подібний тип індуктивного типу, не мають теоретично заданих моделей - ти не можеш інтерпретувати типи як множини, а терміни як елементи множин. У цьому випадку ми говоримо про те, що ізоморфний своєму подвійному силовому набору (тобто T \ simeq \ mathcal {P} (\ mathcal {P} (T)) ), і це порушує теорему Кантора .
Оскільки теорії залежного типу часто використовуються для формалізації математики, їхні дизайнери зазвичай вагаються, додаючи принципи, несумісні з теоретично-множинною семантикою, навіть якщо вони узгоджуються.
EDIT: Я додаю цю редакцію у відповідь на запитання Андрія. Тип є послідовним, якщо додати його до (скажімо) Agda; проблем із цим взагалі немає. Проблема у нас є лише в тому випадку, якщо ми поєднуємо не строгу позитивність із виключеною серединою.
Інтуїцію, чому це безпечно, найкраще бачити через об'єктив параметричності. У Системі F ми можемо показати, використовуючи параметричність, що для будь-якого визначеного функтора вводимо тип - це справді індуктивний тип.
Тепер згадаймо, що визначений функтор - це оператор типу , разом з оператором задовольняють умовам функціональності (тобто і ).
Тепер ми можемо визначити тип оператора для подвійного харчування
і оскільки виникає лише позитивно, ми можемо також визначити для нього оператора карти:
Отже, ми знаємо, що - законний індуктивний тип.