Rzk: a Proof Assistant for Synthetic -Categories
本文介绍了 Rzk,这是一个实现了 Riehl 和 Shulman 的单纯型理论(simplicial type theory)的精化计算变体的实用证明助手,旨在实现对 -范畴的合成推理,同时确立了其相对于原理论的忠实性与保守性,并提供了关于其用法与实现的教程。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,数学的宇宙是一个巨大的、无限的游乐场。很长一段时间以来,这里最受欢迎的游戏是同伦类型论 (Homotopy Type Theory, HoTT)。在这个游戏中,一切都是由“形状”构成的,而且这些形状是完美可变的。如果你有一条从点 A 到点 B 的路径,你总是可以原路返回。这就像一个由橡皮筋组成的世界,每一次拉伸都可以缩回到原始状态。这对于研究“空间”(即那些一切都是可逆的数学对象)非常棒,但对于某些路径是单行道的、更为复杂的范畴(categories)的现实世界来说,它显得过于完美了。
于是,Rzk 登场了——这是一个由 Nikolai Kudasson、Violetta Sim 和 Benedikt Ahrens 构建的新型证明助手。你可以将 Rzk 想象成一个专门设计的构建套件,用于建造有向形状 (directed shapes)。在这个新的游乐场里,你可以拥有一条从 A 到 B 的路径,但这条路径无法被倒着走回去。这就像是用乐高积木进行搭建,其中一些连接是永久性的:你可以把一个零件卡上去,但如果不破坏模型,你就无法将其拆下来。这使得数学家能够对 -范畴 (-categories) 进行推理,这些复杂的结构中,箭头(态射)具有方向性,且并不总是可逆的。
核心理念:一种全新的构建方式
这篇论文介绍了 Rzk,它是一个实现了由 Emily Riehl 和 Michael Shulman 最初提出的特定理论——单纯类型论 (Simplicial Type Theory, RSTT) ——的工具。
这里是 Rzk 使用的一个巧妙技巧:
在原始理论 (RSTT) 中,有一个特殊的“魔法盒”,叫做扩展类型 (extension type)。这个盒子允许你定义一个函数,该函数在形状(如三角形)的“边缘”上表现出特定的行为,而在“中间”部分则可以随心所欲。它虽然强大,但有点像一个黑盒;关于它如何运作的规则有时隐藏在细则之中。
Rzk 将这个魔法盒拆解开来。
- 形状 (The Shape): 它将“形状”部分(三角形或区间)与“边界”部分(边缘的规则)分离开来。
- 规则 (The Rules): 它引入了一种新的、显式的规则,称为无强制转换子类型 (coercion-free subtyping)。想象你有一个能放入小盒子的玩具车。在旧系统中,系统会直接假设这辆车能放入更大的盒子,而不会进行检查。在 Rzk 中,系统会显式地检查这辆车是否合适,但它不会强迫你为车穿上额外的包装(即“强制转换”)来使其适配。它只是说:“是的,这辆车也是一个玩具,所以它属于玩具盒。”这使得逻辑更加清晰,也更容易由计算机进行检查。
Rzk 能做什么(以及不能做什么)
作者为这个新系统构建了一个名为 sHoTT 的“标准库”。这个库已经非常庞大,包含超过 25,000 行代码和近 1,500 个顶层声明。该库已成功形式化了复杂的概念,例如 -范畴的 Yoneda 引理(范畴论中的一个基本定理)以及各种类型的“纤维化 (fibrations)”(即如何将范畴堆叠在一起的方法)。
然而,论文对自己的证明结论是非常谨慎的:
- 它是忠实的 (Faithful): 作者证明了你在原始理论 (RSTT) 中能证明的一切,在 Rzk 中也同样可以证明。这是一个完美的翻译。
- 它是保守的 (Conservative),但有一个前提: 他们证明了 Rzk 不会创造出关于旧理论的任何“新真理”。如果 Rzk 证明了关于旧形状的某件事,那么旧理论也能证明它。但是,这个证明仅适用于特定的“自然推导片段”。作者承认,他们尚未证明这适用于所有可能的奇特情况;他们怀疑这在整个系统中普遍成立,但这目前仍是一个猜想。
- 它是实用的 (Practical): 这个工具现在就可以使用。它可以在浏览器中运行,拥有 VS Code 扩展,并已被用于暑期学校和硕士论文的研究中。
“形状求解器 (The Shape Solver)”
这项数学中最难的部分之一是检查一个形状是否包含在另一个形状之内(例如,这个三角形是否在正方形内部?)。Rzk 使用了一个自动化的“拓扑求解器 (tope solver)”来处理这个问题。
- 它是如何工作的: 这有点像侦探在解谜题。它观察规则(topes)并尝试判断它们是否匹配。
- 效果如何? 在对 sHoTT 库的测试中,求解器处理了超过 25,000 个问题。大多数问题都能瞬间解决(仅需一步)。少数问题非常困难,需要数千步,但求解器最终还是处理了它们。
- 局限性: 该求解器是不完备的 (incomplete)。它是一个原型。它在处理目前看到的这类问题时表现出色,但作者承认,因为它没有尝试每一种可能的路径,所以它可能会错过一些棘手的解法。他们计划在未来构建一个“完美”的求解器,但目前的版本是“在实践中足够好”的。
Rzk 拒绝什么
论文明确表达了反对这种观点的立场,即认为需要手动证明每一个微小的形状包含关系。在旧系统中,你可能需要写出一段冗长的证明,仅仅为了说明“这个三角形在正方形内部”。Rzk 拒绝这种体力劳动;它将其自动化了。
它同时也拒绝了强制转换 (coercions) 的概念(即为了让事物适配而添加额外的包装层)。作者展示了你可以拥有一个理解子类型、却无需强迫计算机插入那些使数学变得复杂的隐形转换步骤的系统。
总结
Rzk 是一个正在运行且可用的工具,它将有向 -范畴的抽象理论带入了计算机检查证明的现实世界。它将复杂的数学“魔法盒”拆分为更简单、透明的部分,并证明了它在增加新能力的同时,并没有破坏旧有的规则。
作者确信 Rzk 忠实地实现了该理论,并且他们的库是有效的。他们确定该工具在当下的教学和研究中非常有用。然而,对于针对所有可能的边缘情况的完整理论保证(即“完全保守性”猜想),他们并不确定;同时他们也承认,其形状求解器是一个原型,仍有改进空间。他们尚未解决让系统对所有可能的输入都实现终止(归一化/normalization)的问题,这仍然是未来的一个开放性挑战。
简而言之,Rzk 是一个运行中、经过验证且不断成长的数学引擎,它通过全新的设计,在不丢失原始理论魔力的前提下,减轻了计算机的工作负担。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。