Розбірливість виводу типу та перевірка типу в MLTT


9
  1. В Інтуїціоністській теорії типів: предикативна частина Мартіна-Льофа доведено, що перевірка типуa:Aпідлягає вирішеннюaвводиться в першу чергу шляхом доведення теореми про нормалізацію для закритих набраних термінів. З іншого боку, я бачив, як написано в багатьох місцях (Wikipedia, Nördstrom тощо), що перевірка типу в (інтенсивній) MLTT вирішувана; вони неявно обмежують терміни введення тексту?

  2. Чи відомо щось про розбірливість виводу типу або перевірку типу в інтенсивній MLTT, якщо ми не обмежуємося термінами, що набираються? Наприклад, можливо, існує процес прийняття рішення, який розпізнає нетипізовані терміни, скажімо, нормалізуючи форму, яка не відповідає жодному з конструкторів, або показавши, що не існує періодичної послідовності скорочень для будь-якого нетипізованого терміна.

    Мені не вдалося дуже багато знайти в літературі.

Відповіді:


9

Звичайно, проблема вирішення

Дано (до) термін a Чи є тип A такий як a:A виводиться в MLTT?

Іноді пишуться a : ?(і називається проблемою виводу типу ) вирішується, тобто неважливо, чи єaдобре набрано або не отримати відповіді. Дійсно, всі перевіряючі докази на основі MLTT реалізують певну версію цього алгоритму рішення!

Очевидно, що проблема в не порожньому контексті (Γa : ?) також рішуче, зазвичай вам потрібно вирішити останнє, щоб вирішити перше.

Це повинно відповісти на питання 1 і 2. Алгоритм не передбачає нормалізаціїa, що взагалі було б поганою новиною, оскільки не можна визначити, чи нормалізується нетипізований термін ні до чого. Однак тип перевірки алгоритму робить залучати нормалізують тип , які по конструкції добре надрукував себе.

Як результат, нормалізація чітко набраних термінів є необхідною умовою для вирішення проблеми виводу типу.

Ви можете перевірити Nordström, Petersson та Smith для ознайомлення.


Мені невідомо жодного загального опису алгоритму виводу типу для нормалізації теорій типів, хоча Поллак дає досить хороший огляд (хоча стан техніки покращився) при проведенні перевірки типу в системах чистого типу .


Як щодо претипів (терміни, що позначають тип)? Можливо, варто також уточнити їх статус.
Андрій Бауер

Дякую коді, ви маєте на увазі алгоритми перевірки типу, реалізовані такими помічниками, як ALF та Coq? Наскільки я розумію, це алгоритми для конкретних варіантів MLTT, на яких вони засновані (CIC для Coq, щось інше для ALF), але мені незрозуміло, як вони можуть бути використані для набору перевірки конкретного MLTT '73. Зокрема, якщо ієрархія Всесвіту чи інші відмінності в деталях можуть змінити що-небудь ...
Джош Чен

... Або алгоритми досить загальні, щоб покрити ці відмінності? У мене виникають проблеми з пошуку таких результатів; все, що, здається, з'являється у моєму пошуку літератури, - це дуже конкретні результати, часто особливо з урахуванням основної теорії якогось помічника доказу.
Джош Чен

1
@JoshChen алгоритми по своїй суті є дуже загальними, оскільки вони включають пошук, орієнтований на тип, чергуючись з кроками нормалізації на чітко набраних термінах, як пояснив Андрій. Я не знаю загального опису алгоритму, на жаль, хоча я додам часткову посилання на свою відповідь.
коді

1
@JoshChen Вони не уточнюють, але вони можуть посилатися на певні типи для термінів "каррі", для яких висновок не можна визначити. Я детальніше розглядаю тут: cs.stackexchange.com/a/12957/988
cody

8

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

Для широкого класу теорій типів перевірка типу або умовиводів виконується таким чином, що ми ніколи не намагаємося нормалізувати термін, якщо заздалегідь не встановили, що він добре набраний. Так само ми ніколи не намагаємося нормалізувати тип, якщо тільки ми вже не встановили, що це тип. Через це ми можемо бути впевнені, що нормалізація припиниться (що вимагає окремого підтвердження).

Треба подивитися конкретні алгоритми і побачити, що вони дійсно працюють таким чином, але вони так і роблять. Я просто хотів заявити, що змушує їх галокати. Або ще краще, тому вони припиняють тикати.

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