【问题标题】:Countable subsets in AgdaAgda 中的可数子集
【发布时间】:2018-05-06 01:01:56
【问题描述】:

我需要在某个谓词 P 定义的特定子集上表达可数属性。我的第一个想法是明确声明存在一个函数 f,它在我的子集和自然数之间是双射的。在标准库中是否有另一种更通用的方式来表达该属性?

提前谢谢你

【问题讨论】:

  • 从子集到自然数的单射函数就足够了,不是吗?
  • 我还想确保我的子集是无限的,这就是为什么我希望函数是双射的。我应该提到这一点,尽管这并没有太大改变问题。
  • 在 Agda 中不可数集合是什么样子的?
  • 我不明白为什么集合必须是可数的。例如,定义为有理数的实数是不可数的。虽然我不知道 Agda 是否已经实现了。

标签: agda countable


【解决方案1】:

如果您使用的是与自然数同构的集合,为什么不直接使用自然数?

没有办法区分同构集合,并且在 HoTT(或立方体 agda)中同构集合是相等的。因此,求一个与 Nat 同构的集合与求一个等于 3 的数是一样的。

【讨论】:

  • 如果你的函数在 Nat 上表达起来很麻烦怎么办?
  • 我不使用自然数,因为我使用了应该是可数的通用集合的不同子集。另外,我不明白为什么两个同构集应该相等。这取决于一个使用的相等性,它们永远不会涉及命题相等性,但双射确实应该揭示一个潜在的联系,允许在需要时使用一个而不是另一个。
  • 在同伦类型论中它们在命题上是相等的,例如在立方体或立方体 agda 中。
  • 您能详细说明一下吗?据我所知,命题等式是由反身性产生的,无法提供证明这一点的方法。
  • 在 HoTT 中,命题(或典型)相等是外延的,特别是它识别同构类型。如果您通过自反性生成相等性,您只会反映封闭术语的定义相等性,这通常不是您想要的。
猜你喜欢
  • 1970-01-01
  • 2019-12-23
  • 2011-11-04
  • 2019-11-03
  • 2020-01-28
  • 1970-01-01
  • 1970-01-01
  • 2020-07-17
  • 2017-08-26
相关资源
最近更新 更多