将类型论中的有限集理论形式化


10

大多数证明助手都有“有限集”概念的形式化形式。但是,这些形式化有很大的不同(尽管人们希望它们在本质上都等同!)。在这一点上,我还不了解所涉及的设计空间,以及每种形式化的优缺点。

我特别想了解以下内容:

  • 我可以在简单类型理论中公理化有限集(即由有限数量的居民居住的类型)吗?系统F?这样做的缺点是什么?
  • 我知道可以在依赖类型的系统中“优雅地”完成。但是,从经典的角度来看,最终的定义似乎极为陌生。[我并不是说他们错了,远非如此!]。但是我也不明白为什么它们也是“正确的”。我了解他们选择了正确的概念,但是“以这种方式说”的更深层原因是我没有完全掌握。

基本上,我想对类型理论中“有限集”概念的形式化的设计空间进行合理的介绍。

Answers:


8

我知道可以在依赖类型的系统中“优雅地”完成。但是,从经典的角度来看,最终的定义似乎极为陌生。

您能解释一下“外国人”的意思吗?在我看来,您在类型论和集合论中以完全相同的方式来形式化有限集的概念。

在集合论中,您将集合为 然后,将有限谓词定义为: 其中表示集合的同构。Fin(n)˚F Ñ ÈX Ñ Ñ

Fin(n){kN|k<n}
Finite(X)nN.XFin(n)
AB

在类型论中,您可以做完全相同的事情! 请注意,是具有元素的类型(因为该对的第二个成分与证明无关)。然后,可以将有限类型构造函数定义为: 其中表示类型的同构。˚F ÑÑ ñ ˚F Ñ ÈX &Sigma; Ñ Ñ

Fin(n)Σk:N.ifk<nthenUnitelseVoid
Fin(n)n
Finite(X)Σn:N.XFin(n)
AB

外星人,因为我只看过原始定义,而没有附带的测试来解释如何读取这些定义。再加上通常的归纳定义Fin会使事实进一步模糊的事实。您的简短解释是我需要单击它。
雅克·卡莱特

5

让我看看是否可以对Neel的答案添加任何有用的信息。有限集的“设计空间”在构造上要大得多,这是经典的,因为“有限”的各种定义不需要在构造上达成一致。类型理论中的各种定义给出了稍微不同的概念。这里有一些可能性。

Kuratowski有限集( -finite)可以描述为自由 -semilattices:给定集合,类型或对象,自由 -semilattice的元素可以作为有限子集的思想。实际上,每个这样的元素都是通过以下方式生成的:X ķ X XKXK(X)X

  • 中性元素,它对应于空集,或者0
  • 生成器,它对应于单例,或{ X }xX{x}
  • 两个元素的连接,对应于一个并集。ST

的等效制剂为:就是 -finite如果且仅当,存在和满射K(X)SXKnN e:{1,,n}S

如果我们比较这与尼尔的定义,我们看到,他需要一个双射 。这等于采用具有可确定相等性的有限子集:。让我们用为可判定的集合的-finite子集。e:{1,,n}SKSXx,yS.x=yxyD(X)KX

显然,在有限联合的情况下是封闭的,但不必在有限相交的情况下是封闭的。并且在任何操作下都不会关闭。由于人们期望有限集的行为有点像“无顶部的布尔aglebra”,因此也可以尝试将它们定义为自由的广义布尔代数(,,和相对补码),但实际上我从来没有听说过这样的努力。d X 0 K(X)D(X)0

在确定什么是“正确的”定义时,必须注意对有限集的处理。而且没有一个正确的定义。例如,多项式的复数根的集合在什么意义上是“有限的” ?

建设性有限?由Thierry Coquand和Arnaud Spiwack撰写的关于有限性的详细讨论。教训是,有限性在建设性方面远非显而易见。


是的,我对这件事了解得足够多,知道我的问题并不简单。现在,我可以重新阅读Coq,Isabelle和Agda库中处理有限集的部分,并希望了解它们所做的选择(双关语)。
雅克·卡雷特2013年

我想知道图书馆的作者是如何意识到这些选择的。他们可能只是进入了其中一种定义。很自然的事情是假设具有可判定的相等性,因为这样与一致,并且一切都进行得很顺利,就像在经典情况下一样。一旦没有可判定的相等性,麻烦就开始了。K A D A AAK(A)D(A)A
Andrej Bauer

公平地说,人们经常使用有限集来形式化程序验证的各个方面,在这种情况下,您通常可以假定可判定的相等性成立。
科迪2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.