Skip to main content
QUICK REVIEW

[论文解读] anthem: Transforming gringo Programs into First-Order Theories (Preliminary Report)

Vladimir Lifschitz, Patrick Lühne|arXiv (Cornell University)|Sep 30, 2018
Logic, Reasoning, and Knowledge参考文献 7被引用 5
一句话总结

anthem 是一个翻译器,通过生成并简化程序完成式,将非析取的 gringo 程序转换为简化且人类可读的一阶逻辑公式。它通过将逻辑编程结构转换为带有量词、变量和算术表达式的标准逻辑符号,消除辅助谓词并引入整数类型约束,从而增强程序理解并支持形式化验证。

ABSTRACT

In a recent paper by Harrison et al., the concept of program completion is extended to a large class of programs in the input language of the ASP grounder gringo. We would like to automate the process of generating and simplifying completion formulas for programs in that language, because examining the output produced by this kind of software may help programmers to see more clearly what their program does and to what degree its set of stable models conforms with their intentions. If a formal specification for the program is available, then it may be possible to use this software, in combination with automated reasoning tools, to verify that the program is correct. This note is a preliminary report on a project motivated by this idea.

研究动机与目标

  • 自动化生成并简化非析取 gringo 程序的完成式公式,以改善程序理解。
  • 弥合 gringo 中逻辑编程记法与数学推理中标准一阶逻辑记法之间的语法差异。
  • 通过生成逻辑等价且简化的、一阶理论的输出,支持 gringo 程序的形式化验证。
  • 通过用其完成定义替换辅助谓词符号,消除输出中的辅助谓词,以增强清晰度。
  • 扩展对算术、区间和整型变量的支持,以提升输出的表达力和正确性。

提出的方法

  • 该工具使用 gringo 的 AST 接口解析 gringo 程序,以提取输入的抽象语法树。
  • 通过使用谓词定义将逻辑蕴含转换为双向蕴含,构建每条规则的完成式。
  • 通过将结果公式重述为带有量词、变量和连接词的标准一阶逻辑记法,实现公式简化,以提升人类可读性。
  • 使用循环检测机制防止无限替换,将辅助谓词替换为其完成定义。
  • 通过语法 `int(p/n@k)` 引入整数类型约束,以表达 n 元谓词 p 的第 k 个参数为整数。
  • 应用语法简化,例如将复杂的逻辑结构替换为等价但更直观的形式,例如将 `∃x∀y(P(y)→Q(x))` 转换为 `∃xP(x)→∃xQ(x)`。

实验结果

研究问题

  • RQ1非析取 gringo 程序的完成式能否自动生成并简化为人类可读的一阶逻辑公式?
  • RQ2在翻译器中,如何有效弥合 gringo 的逻辑编程记法与标准一阶逻辑记法之间的语法差异?
  • RQ3在不改变程序逻辑含义的前提下,辅助谓词在输出中能被多大程度上安全地消除?
  • RQ4生成的一阶公式能否与自动化推理工具有效结合,用于形式化程序验证?
  • RQ5gringo 中的整数约束和算术表达式如何在语义和语法上被准确翻译为带类型注解的一阶逻辑?

主要发现

  • anthem 成功将 gringo 程序转换为等价的一阶逻辑公式,这些公式更具可读性,并更接近标准数学记法。
  • 该工具将辅助谓词替换为其完成定义,提高了清晰度,并降低了程序分析中的认知负担。
  • 它引入了新语法 `int(p/n@k)`,以表达 n 元谓词 p 的第 k 个参数为整数,增强了类型安全性和表达力。
  • 该工具能检测谓词定义中的循环依赖,并发出警告,以防止在谓词消除过程中发生无限替换。
  • 例如,排列程序被转换为一组涉及量词、区间和逻辑连接词的一阶公式,完整保留了原始语义。
  • anthem 的输出通过生成逻辑等价、简化且语义透明的表示,支持形式化验证,适用于与自动化定理证明器集成。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。