Skip to main content
QUICK REVIEW

[论文解读] Data Definitions in the ACL2 Sedan

Harsh Raju Chamarthi, Peter C. Dillinger|arXiv (Cornell University)|Jun 6, 2014
Logic, programming, and type systems参考文献 7被引用 5
一句话总结

本文在 ACL2s 中提出 defdata 框架,这是一个形式化验证系统,通过声明式宏实现对列表、映射和记录等数据类型的直观、教学有效的规格说明。通过同时维护命题式(基于谓词)和枚举式(基于枚举)的表征,该框架支持自动化反例生成、通过 defunc 实现类型安全的函数定义以及多态推理,显著提升了形式推理中的自动化程度和可用性——目前已广泛被学生和高级用户采用。

ABSTRACT

We present a data definition framework that enables the convenient specification of data types in ACL2s, the ACL2 Sedan. Our primary motivation for developing the data definition framework was pedagogical. We were teaching undergraduate students how to reason about programs using ACL2s and wanted to provide them with an effective method for defining, testing, and reasoning about data types in the context of an untyped theorem prover. Our framework is now routinely used not only for pedagogical purposes, but also by advanced users. Our framework concisely supports common data definition patterns, e.g. list types, map types, and record types. It also provides support for polymorphic functions. A distinguishing feature of our approach is that we maintain both a predicative and an enumerative characterization of data definitions. In this paper we present our data definition framework via a sequence of examples. We give a complete characterization in terms of tau rules of the inclusion/exclusion relations a data definition induces, under suitable restrictions. The data definition framework is a key component of counterexample generation support in ACL2s, but can be independently used in ACL2, and is available as a community book.

研究动机与目标

  • 为解决在无类型定理证明器 ACL2 中教授本科生形式推理的教学挑战,提供一种结构化的方式来定义和推理数据类型。
  • 通过用高层、用户友好的数据定义系统替代临时的 cons 基类型表示,减少课程中在低级别类型编码和调试上的时间浪费。
  • 通过为每个数据类型同时维护谓词函数和枚举函数,实现在 ACL2s 中自动化反例生成。
  • 在 ACL2 框架内支持高级推理特性,如多态函数和类型包含/排除定理。
  • 通过作为社区书籍发布,使该框架广泛可用,供标准 ACL2 使用。

提出的方法

  • defdata 宏使用高层语法定义新数据类型,指定类型组合(如列表、记录、映射),生成用于识别元素的谓词和用于生成该类型所有元素的枚举器。
  • 该框架同时维护两种表征:命题式表征(谓词)和枚举式表征(枚举所有值的函数),二者共同用于反例生成。
  • 通过与 Cgen 库集成,通过用满足其数据定义的值实例化变量,自动实现反例生成。
  • 系统使用 tau 规则表征类型关系(如包含、排除),并自动生成重写规则以用于类型层次的推理。
  • 通过签名事件支持多态函数,跨已知类型实例化通用函数,通过函数实例化生成特定类型的定理。
  • 所有生成的事件(包括定理和规则类)均添加至 ACL2 的 Tau-数据库,确保完整性并支持可扩展推理。

实验结果

研究问题

  • RQ1在无类型定理证明器 ACL2 中,如何以对初学者直观且对高级用户足够强大的方式指定数据类型?
  • RQ2如何利用数据定义实现形式验证中对无效猜想的自动化反例生成?
  • RQ3如何利用 tau 规则从数据定义中推导出类型关系(如包含、排除)的形式表征?
  • RQ4如何在一个同时保持谓词和枚举语义的框架中支持多态函数?
  • RQ5如何使此类框架对 ACL2 社区更易重用和可扩展?

主要发现

  • defdata 框架已成功用于在东北大学向约 1,000 名本科生教授使用 ACL2s 对程序进行建模和推理的方法。
  • 该框架通过提供高层、声明式的数据类型定义语法,减少了课程中用于类型编码和调试的时间。
  • 通过数据类型的枚举式表征,ACL2s 中的反例生成能力得到显著增强,可对错误猜想提供快速反馈。
  • 系统自动生成对类型推理有用的定理,包括包含/排除关系以及记录访问器和构造器的复合定律。
  • 通过签名事件支持多态推理,利用函数实例化生成特定类型的重写规则,所有规则均添加至 Tau-数据库以保证一致性。
  • 该框架不仅用于教学,也受到高级用户的使用,并作为社区书籍发布,确保了广泛的可用性和可扩展性。

更好的研究,从现在开始

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

无需绑定信用卡

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