Большинство помощников по доказательству имеют формализацию понятия «конечное множество». Эти формализации, однако, сильно отличаются (хотя можно надеяться, что все они по существу эквивалентны!). Что я не понимаю на данном этапе, так это пространство проектирования и каковы плюсы и минусы каждой формализации.
В частности, я хотел бы понять следующее:
- Могу ли я аксиоматизировать конечные множества (т.е. типы, населенные конечным числом жителей) в простой теории типов? Система F? Каковы недостатки такого способа?
- Я знаю, что это можно сделать «элегантно» в зависимо типизированной системе. Но с классической точки зрения полученные определения кажутся крайне чуждыми. [Я не говорю, что они не правы, это далеко не так!]. Но я тоже не понимаю, почему они «правы». Я понимаю, что они выбирают правильную концепцию, но более глубокую причину «говорить так» я не совсем понимаю.
По сути, я хотел бы получить аргументированное введение в пространство проектирования формализаций понятия «конечное множество» в теории типов.
источник
Дай посмотреть, смогу ли я добавить что-нибудь полезное к ответу Нила. «Пространство дизайна» для конечных множеств конструктивно намного больше, чем классически, потому что различные определения «конечного» не обязательно должны согласовываться конструктивно. Различные определения в теории типов дают несколько разные понятия. Вот несколько возможностей.
Конечные множества Куратовского ( -конечные) можно охарактеризовать как свободные -полрешетки: для данного множества, типа или объекта элементы свободной -полурешетки могут быть как конечные подмножества , Действительно, каждый такой элемент генерируется:K ∨ X ∨ K(X) X
Эквивалентная формулировка такова: является конечным тогда и только тогда, когда существует и сюръекция .K(X) S⊆X K n∈N e:{1,…,n}→S
Если сравнить это с определением Нееля мы видим , что он требует биекция . Это равносильно тому, что мы принимаем те -конечные подмножества которые имеют разрешимое равенство: . Будешь использовать для сбора разрешим -конечных подмножеств .e:{1,…,n}→S K S⊆X ∀x,y∈S.x=y∨x≠y D(X) K X
Очевидно, что замкнуто относительно конечных объединений, но это не нужно быть замкнутым в конечных пересечениях. И не закрывается ни при каких операциях. Поскольку люди ожидают, что конечные множества ведут себя немного как «булева алгебра без вершины», можно также попытаться определить их как свободную обобщенную булеву алгебру ( , , и относительные дополнения ), но я на самом деле никогда слышал о таких усилиях.K(X) D(X) 0 ∨ ∧ ∖
Решая, что такое «правильное» определение, вы должны обратить внимание на то, что вы хотите сделать с конечными множествами. И нет единого правильного определения. Например, в каком смысле «конечный» является множеством комплексных корней многочлена конечного ?
Видите Конструктивно конечно? Thierry Coquand и Arnaud Spiwack для подробного обсуждения конечности. Урок в том, что конечность конструктивно далека от очевидности.
источник