← 最新论文
💻 computer science

Constructing (Co)inductive Types via Large Sizes

本文提出了一种将大小的大类型与参数化量词一致地扩展至内涵类型论的方法,以构建归纳类型和共归纳类型,从而克服先前方法的局限性以及 Agda 当前大小类型实现的不一致性。

原作者: Bastiaan Laarakker, Daniël Otten, Benno van den Berg

发布于 2026-05-01
📖 1 分钟阅读☕ 轻松阅读

原作者: Bastiaan Laarakker, Daniël Otten, Benno van den Berg

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象你正在构建一座庞大且自指的知识图书馆。在这座图书馆中,每一本书(即一个“类型”)都可以包含对其他书的引用,而有时一本书甚至会引用它自己。为了防止这座图书馆陷入混乱或无限循环,你需要制定严格的规则,规定这些书该如何编写和阅读。

本文旨在为一种名为“证明助手”(如 Agda 或 Lean)的特定图书馆设计一套更优的规则。这些工具帮助数学家和程序员编写保证能运行的代码,以及保证为真的证明。

以下是用简单类比对该论文思想的拆解:

1. 问题所在:“停止标志”与“速度表”

目前,证明助手采用一种“停止标志”方法(称为语法检查)来确保程序不会无限运行。它们检查代码的形态。如果一个函数调用自身,计算机会检查:“你是否将更小的数据片段传递给了下一次调用?”如果是,则是安全的。如果代码过于复杂,计算机可能会感到困惑并回答:“不行,我无法证明这会停止”,即使它实际上确实会停止。

本文的解决方案:作者提出不再查看代码的形态,而是给每一块数据赋予一个大小标签(就像速度表或高度标记)。

  • 归纳类型(如数字列表)被标记为“高度”。递归函数必须始终在高度上向下移动。
  • 共归纳类型(如无限数据流)被标记为“深度”。递归函数必须始终更深地移动,以体现其生产性。

2. 当前系统的缺陷:“魔法无穷大”

在现有系统(Agda)中,有一个特殊的标签称为无穷大\infty)。它本应是涵盖一切的“最大可能大小”。

  • 类比:想象一把尺子,其最末端有一个“无穷大”的标记。问题在于,本文作者发现,如果你试图用这把尺子去测量事物,你可能会意外地证明“无穷大比无穷大更小”。这会破坏数学逻辑,使整个系统变得不一致(就像一把尺子声称一米比一米短)。

3. 新方法:“参数化群体”

作者提出了一种处理这些大小的新方式,不再使用单一的“无穷大”标签。他们引入了两个特殊工具:参数化存在量词\exists)和参数化全称量词\forall)。

可以将它们视为观察人群(即各种大小)的两种不同方式:

  • 归纳类型(“存在性”群体)

    • 理念:一棵有限树(如家谱)具有特定高度,但在使用它时,我们无需确切知道它有多高。我们只需要知道,在某处存在一个高度限制。
    • 隐喻:想象你在人群中寻找特定的人。你不需要看到所有人;你只需要知道人群中存在一个符合描述的人。“大小”被保持为抽象且隐藏的状态。你无法窥探具体的数字;你只知道存在一个限制。这防止了“无穷大比无穷大更小”的悖论。
  • 共归纳类型(“全称性”群体)

    • 理念:无限流(如直播视频)可以在任意时长内被观察。
    • 隐喻:想象你在观看一场戏剧。要断言这场戏剧是“无限”的,你必须能够按照你选择的任意时长观看它。这里的“大小”是一个承诺:无论你看多深,数据都能成立。

4. 魔法技巧:构建图书馆

作者展示了如何利用这些“群体”工具来构建这些复杂类型(即图书馆的书籍):

  1. 第一步:他们在每一个可能的大小上构建类型的“近似值”(就像在 1 英尺高、2 英尺高等不同高度上构建房屋模型)。
  2. 第二步:他们使用存在性工具,将所有“有限高度”的近似值打包成一个真实的归纳类型。
  3. 第三步:他们使用全称性工具,将所有“无限深度”的近似值打包成一个真实的共归纳类型。

为什么这更好?
先前的尝试只能构建“有限分支”的树(如每个人只有有限数量子女的家谱)。而这种方法可以构建无限分支的树(即一个节点可以拥有无限数量的子节点),这要强大和灵活得多。

5. 证明:“实在性”模型

为了证明新系统不会破坏数学,他们构建了一个“实在性模型”(Realisability Model)。

  • 类比:想象法庭上的一位法官。法官不会仅凭律师的口头陈述就采信,而是会将证据与一本特定、极大且极其严格的规则书进行核对。
  • 规则书:他们将“大小”解释为简单的数字,而是解释为不可数序数(这是高等数学中的一个概念,比所有自然数的集合还要“大”)。
  • 结果:通过将大小视为这些巨大的不可数数字,他们证明了其“参数化”规则(隐藏具体大小)完美运作。系统是一致的,这意味着它不会意外地证明“无穷大比无穷大更小”。

总结

本文解决了当前证明助手中的一个漏洞,即“魔法无穷大”标签会导致逻辑矛盾。他们将其替换为一个将大小视为隐藏、抽象限制的系统。

  • 对于有限事物:他们说:“存在某个限制,但我们不会去查看它。”
  • 对于无限事物:他们说:“它适用于你选择的任何限制。”

这使得他们能够安全地构建复杂的无限数据结构,确保证明助手依然是数学和编程中可靠的工具。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →