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