Неразрешимость задачи вывода типов в языке с зависимыми типами — различия между версиями
(→\lambda\Pi-исчисление: пояснил за well-formed.) |
(Новый раздел) |
||
Строка 39: | Строка 39: | ||
Согласимся '''первым символом''' <tex>t</tex> называть <tex>x</tex> в первом случае, и <tex>\Pi</tex> во втором. '''Первыми переменными''' <tex>t</tex> будем называть переменные <tex>x_1, \ldots, x_n</tex>.}} | Согласимся '''первым символом''' <tex>t</tex> называть <tex>x</tex> в первом случае, и <tex>\Pi</tex> во втором. '''Первыми переменными''' <tex>t</tex> будем называть переменные <tex>x_1, \ldots, x_n</tex>.}} | ||
− | = | + | =Задача вывода типов в <tex dpi = "180">\lambda\Pi</tex>-исчислении= |
{{Определение|definition=Терм <tex>t</tex> типа <tex>T</tex> в контексте <tex>G</tex> называется '''объектом''' в <tex>\Gamma</tex>, если <tex>\Gamma \vdash T : \mathrm{Type}</tex>}} | {{Определение|definition=Терм <tex>t</tex> типа <tex>T</tex> в контексте <tex>G</tex> называется '''объектом''' в <tex>\Gamma</tex>, если <tex>\Gamma \vdash T : \mathrm{Type}</tex>}} | ||
Строка 57: | Строка 57: | ||
{{Утверждение|statement=Задача вывода типов в пустом контексте разрешима в <tex>\lambda\Pi</tex>-исчислении.|proof=Типизируемые в пустом контексте чистые термы <tex>\lambda\Pi</tex> исчисления совпадают с типизируемыми выражениями просто типизированного <tex>\lambda</tex>-исчисления, а задача вывода типов в просто типизированном <tex>\lambda</tex>-исчислении разрешима.}} | {{Утверждение|statement=Задача вывода типов в пустом контексте разрешима в <tex>\lambda\Pi</tex>-исчислении.|proof=Типизируемые в пустом контексте чистые термы <tex>\lambda\Pi</tex> исчисления совпадают с типизируемыми выражениями просто типизированного <tex>\lambda</tex>-исчисления, а задача вывода типов в просто типизированном <tex>\lambda</tex>-исчислении разрешима.}} | ||
+ | |||
+ | =Неразрешимость задачи вывода типов в <tex dpi="180">\lambda\Pi</tex>-исчислении= |
Версия 19:46, 17 января 2017
-исчисление
Определение: |
Множество термов рекурсивно определяется следующей грамматикой:
Термы . и называются сортами, — переменными, — применениями, — абстракциями, — произведениями. Обозначение используется вместо , если не входит свободно в . |
Пусть есть термы и и переменная . Записью обозначается терм, полученный заменой на в . Запись означает, что термы и -эквивалентны.
Определение: |
Контекст это список пар | , где — переменная, — терм.
Определение: |
Правила вывода для нашего исчисления:
где Терм , а — множество корректных грамматик. типизируется в контексте , если существует такой терм , что . |
Отношение редуцируемости на типизируемых термах сильно нормализуемо и обладает ромбовидным свойством. Каждый типизируемый терм имеет единственную нормальную форму, два терма эквивалентны, если у них одинаковая нормальная форма.
Типизируемый в контексте
терм имеет единственный тип с точностью до эквивалентности.Определение: |
Нормальный терм , где это переменная или сорт, либо видСогласимся первым символом называть в первом случае, и во втором. Первыми переменными будем называть переменные . | , типизируемый в контекте , имеет либо вид
Задача вывода типов в -исчислении
Определение: |
Терм | типа в контексте называется объектом в , если
Утверждение: |
Если терм является объёктом в контексте , то он является либо переменной, либо применением, либо абстракцией. Если он является применением , тогда оба терма и являются объектами в , если он является абстракцией , то тогда терм является объектом в контексте . |
Определение: |
Множество чистых термов определяется грамматикой | .
Определение: |
Пусть
| — объект в контексте . Содержимое ( ) — это рекурсивно определённый чистый терм:
Определение: |
Чистый терм | называется типизируемым в контексте , если существует терм , типизируемый в неком , являющимся расширением , что является объектом в и .
Типизация чистого терма в контексте это присвоение типов связанным переменным и некоторым свободным переменным, типов которых нет в . Если же контекст пустой, то типизация терма в нём будет являться присваиванием типов и связанным и свободным переменным.
Утверждение: |
Задача вывода типов в пустом контексте разрешима в -исчислении. |
Типизируемые в пустом контексте чистые термы | исчисления совпадают с типизируемыми выражениями просто типизированного -исчисления, а задача вывода типов в просто типизированном -исчислении разрешима.