Інтуїція за суворою позитивністю?


10

Мені цікаво, чи може хтось дати мені інтуїцію, чому сувора позитивність індуктивних типів даних гарантує сильну нормалізацію.

Щоб було зрозуміло, я бачу, як наявність негативних явищ призводить до розбіжності, тобто шляхом визначення:

data X where Intro : (X->X) -> X

ми можемо записати розбіжну функцію.

Але мені цікаво, як можна довести, що строго позитивні індуктивні типи не дозволяють розходитись? тобто є якась міра індукції, яка дозволяє нам побудувати доказ сильної нормалізації (використовуючи логічні співвідношення чи подібні)? І звідки такий доказ розбивається на негативні події? Чи є хороші довідки, які показують сильну нормалізацію для мови з індуктивними типами?


Я думаю, що ідея суто позитивних типів може конвертувати в типи W, концептуально. Також нестриктно -позитивний тип суперечить Coq vilhelms.github.io/posts/… . Коментується, що позитивний тип узгоджується з Агдою, але я хотів би також побачити концептуальне пояснення ...
molikto

@molikto Дякую, це корисно. Але я думав, що W-типи не дають бажаних принципів індукції в інтенсивній теорії? Як ми можемо довести сильну нормалізацію для строго позитивних індуктивів в інтенсивній теорії?
jmite

Відповіді:


8

Здається, ви хочете оглянути аргументи нормалізації для систем типів з позитивними типами даних. Я б рекомендував кандидатську дисертацію Накса Мендлера: http://www.nuprl.org/documents/Mendler/InductiveDefinition.html .

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

Inductive Ord = Zero : Ord | Suc : Ord -> Ord | Lim : (Nat -> Ord) -> Ord

Ми отримаємо:

λ(т)=0
т
λ(Zеrо)=0
λ(Sуc(о))=λ(о)+1
λ(Liм(f))=супнλ(f н)

де від термінів із звичайними формами. Застереження полягає в тому, що ця інтерпретація визначається лише в 3-му випадку, коли має також нормальну форму, що вимагає певної обережності у визначеннях.нf н

Потім можна визначити рекурсивні функції шляхом індукції над цією порядковою.

Зауважте, що ці типи даних можна визначити вже в класичній теорії множин, як це зазначено у чудовій роботі " Індуктивна сім'я " Діб'єра ( http://www.cse.chalmers.se/~peterd/papers/Inductive_Families.pdf ). Однак, оскільки простори функцій настільки величезні, для інтерпретації таких типів Ordпотрібні дійсно великі порядки.


Дякую, це дуже корисно! Чи знаєте ви, чи можна такі порядки визначити в самій теорії типів? наприклад, якщо я намагався використовувати Agda для індукційно-рекурсійної моделі для моделювання теорії типів з індуктивними (але ніякої індукційно-рекурсійною), чи можу я використати щось на зразок Ordмоделювання порядків, необхідних для показу обґрунтованості?
jmite

@jmite, ви можете, але порядкові порядки в конструктивних теоріях дещо дивні, і ви можете також працювати з добре обгрунтованими наказами або деревами ( тип a la W, як підказує molikto). Це може бути важко мати єдиний єдиний тип, який фіксує обґрунтованість кожної індуктивної мови об'єкта, хоча ...
cody

1
@cody Чи не той приклад. Чи так ви приділяєте суто позитивний тип?
Геннінг Басольд

1
@HenningBasold так, це так (саме тому я використовував це як ілюстрацію!). Але він не поводиться так, як ординари (класичної) теорії множин, і, звичайно, не так, як набір усіх порядків. Зокрема, дещо важко визначити замовлення на них.
Cody

1
@HenningBasold також мушу зазначити, що питання jmite стосувалося конкретно позитивних типів, хоча інформація про загальніші параметри також цікава!
Cody

6

Ще одним хорошим джерелом для виходу за рамки суто позитивних типів є кандидатська дисертація Ральфа Меттіса: http://d-nb.info/956895891

Він обговорює розширення системи F з (строго) позитивними типами в главі 3 і доводить багато сильних результатів нормалізації в главі 9. Є кілька цікавих ідей, обговорених у главі 3.

  1. ρααβ.(αβ)ρρ[β/α]

  2. Коли ми переходимо від строго позитивних до позитивних типів, то індуктивні типи вже не можна розглядати як дерева (кодування типу W). Натомість вони запроваджують певну форму непередбачуваності, оскільки побудова позитивного індуктивного типу вже кількісно оцінює сам тип. Зауважимо, що це дещо м'яка форма непередбачуваності, оскільки семантику таких типів ще можна пояснити з точки зору порядкової ітерації монотонних функцій.

  3. Маттес також надає кілька прикладів позитивних індуктивних типів. Особливо цікаво

    • тип продовження , демк.1+((αρ)ρ)αρ
    • мкαβ.(αβ)ρ[β/α]ρ

λмк

Я сподіваюся, що це допоможе у вашому питанні.

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