← 最新论文
💻 computer science

Automated Reasoning with Nested Datatypes

本文引入了一种嵌套数据类型的理论,该理论通过限制数据类型与数组的组合来防止非标准模型,并为该理论提供了一个经证明正确的判定程序,同时在真实世界和人工构建的基准测试上对该程序的实现进行了评估。

原作者: Tomer Hakak, Yoni Zohar, Andrew Reynolds, Clark Barrett, Cesare Tinelli

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

原作者: Tomer Hakak, Yoni Zohar, Andrew Reynolds, Clark Barrett, Cesare Tinelli

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

想象一下你正在使用两种不同类型的乐高积木来建造一座复杂的数字城市:数据类型(Datatypes)数组(Arrays)

  • 数据类型就像是家谱或组织架构图。它们是层级化的。一个“人”可以有一个“孩子”,而这个“孩子”可以有自己的“孩子”。这里的规则很简单:没有人能成为自己的祖先。 你不能有一个家谱,其中一个人是自己的祖父;这会产生逻辑循环(一个环),从而破坏结构。
  • 数组就像是信箱或储物柜。它们是扁平的,允许你通过编号(索引)立即抓取任何物品。你可以往信箱里放任何东西,包括一整棵家谱。

问题:“无限循环”陷阱

论文首先指出,当你天真地将这两个系统结合在一起时,会发生一种危险的故障。

想象你有一个(一种数据类型),他有一个名为“家庭”的字段。在正常世界里,“家庭”是一个人的列表。但在这个有故障的世界里,“家庭”是一个数组(一个储物柜)。

  1. 你把一个特定的(我们称他为鲍勃)放入了5号储物柜
  2. 然后,你将鲍勃的“家庭”字段定义为5号储物柜

现在,看看会发生什么:

  • 为了找到鲍勃的家庭,你打开了5号储物柜
  • 5号储物柜内部,你找到了鲍勃。
  • 为了找到鲍勃的家庭,你再次打开了5号储物柜
  • 你再次找到了鲍勃。

你陷入了一个无限循环。在计算机科学中,这被称为非标准模型(non-standard model)。这就像一条正在吞食自己尾巴的蛇。虽然计算机在技术上可能允许这样做,但这破坏了数据结构应该遵循的直觉规则。它创造了一个本不该存在的“环”。

解决方案:“嵌套数据类型”理论

作者们(Tomer Hakak 及其团队)说:“我们需要一本规则手册,来防止这种‘蛇吞尾’的场景。”

他们引入了一种名为**嵌套数据类型(Nested Datatypes)**的新理论。将其想象为为你数字城市制定的严格建筑规范。

  • 规则: 你可以将一棵家谱放入储物柜,也可以将一个储物柜放入家谱中,但是你不能创建一个让你回到原点的路径。
  • 目标: 如果你追踪一条路径——从一个人出发,经过他的家庭数组,到达另一个人,再通过他的家庭数组返回——你绝不能回到最初的那个人那里。

他们是如何修复它的:“翻译器”机器

难点在于,计算机非常擅长检查家谱是否有效,也非常擅长检查储物柜是否有效。但它们并不擅长检查两者的结合是否会产生循环。

作者们构建了一个翻译器(一个判定程序)。它是这样工作的,让我们用一个比喻来说明:

想象你有一个由两种不同类型的碎片组成的拼图:树形碎片盒子碎片。计算机不知道如何处理混合在一起的碎片并检查是否存在循环。

  1. 翻译: 作者的算法获取这个混合的拼图,并将其翻译成计算机能够理解的一种语言。它将“盒子碎片”转化为特殊的“树形碎片”,这些碎片看起来像盒子,但行为逻辑像树。
  2. 安全网: 他们在翻译过程中加入了额外的“护栏”(引理/lemmas)。这些护栏确保,如果原始混合拼图中原本存在循环,那么翻译后的树形版本会立即显示出矛盾(就像试图建造一座违背重力的塔)。
  3. 检查: 计算机检查翻译后的拼图。
    • 如果翻译后的拼图是不可能的(不可满足/unsatisfiable),这意味着原始的混合拼图包含了一个被禁止的循环。
    • 如果翻译后的拼图可行,则原始拼图是安全的。

这为什么重要(根据论文)

作者们不仅仅是写了一个理论;他们在名为 cvc5(一个用于验证软件的工具)的真实世界计算机程序中构建了一个原型。

  • 现实世界测试: 他们在来自 Move Prover 的基准测试上测试了它,这是一个用于验证智能合约(数字货币协议)的工具。这些合约经常使用复杂的嵌套数据。
  • 合成测试: 他们创建了专门设计用来诱捕其他求解器进入无限循环的虚假谜题。
  • 结果: 他们的这种新方法成功捕捉到了其他方法错过的循环。在许多情况下,它比用于类似任务的现有工具(Z3)更快、更准确。

总结

简而言之,这篇论文是关于修复一个关于计算机如何理解复杂数据的漏洞。

  • 漏洞: 将“家谱”与“信箱”混合使用,可能会意外创建无限循环,导致一个人成为自己的祖先。
  • 修复: 一套新的规则(嵌套数据类型理论),严格禁止这些循环。
  • 工具: 一个翻译器,它将这些复杂的混合规则转换为计算机可以轻松检查其安全性的格式,确保你的数字数据结构保持逻辑严密且无循环。

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

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

试用 Digest →