让我看看是否可以对Neel的答案添加任何有用的信息。有限集的“设计空间”在构造上要大得多,这是经典的,因为“有限”的各种定义不需要在构造上达成一致。类型理论中的各种定义给出了稍微不同的概念。这里有一些可能性。
Kuratowski有限集( -finite)可以描述为自由 -semilattices:给定集合,类型或对象,自由 -semilattice的元素可以作为有限子集的思想。实际上,每个这样的元素都是通过以下方式生成的:∨ X ∨ ķ (X )XK∨X∨K(X)X
- 中性元素,它对应于空集,或者0
- 生成器,它对应于单例,或{ X }x∈X{x}
- 两个元素的连接,对应于一个并集。S∨T
的等效制剂为:就是 -finite如果且仅当,存在和满射。K(X)S⊆XKn∈N e:{1,…,n}→S
如果我们比较这与尼尔的定义,我们看到,他需要一个双射 。这等于采用具有可确定相等性的有限子集:。让我们用为可判定的集合的-finite子集。e:{1,…,n}→SKS⊆X∀x,y∈S.x=y∨x≠yD(X)KX
显然,在有限联合的情况下是封闭的,但不必在有限相交的情况下是封闭的。并且在任何操作下都不会关闭。由于人们期望有限集的行为有点像“无顶部的布尔aglebra”,因此也可以尝试将它们定义为自由的广义布尔代数(,,和相对补码),但实际上我从来没有听说过这样的努力。d (X )0 ∨ ∧ ∖K(X)D(X)0∨∧∖
在确定什么是“正确的”定义时,必须注意对有限集的处理。而且没有一个正确的定义。例如,多项式的复数根的集合在什么意义上是“有限的” ?
见建设性有限?由Thierry Coquand和Arnaud Spiwack撰写的关于有限性的详细讨论。教训是,有限性在建设性方面远非显而易见。