Data Definitions in the ACL2 Sedan

被引:8
|
作者
Chamarthi, Harsh Raju [1 ]
Dillinger, Peter C. [1 ]
Manolios, Panagiotis [1 ]
机构
[1] Northeastern Univ, Coll Comp & Informat Sci, Boston, MA 02115 USA
关键词
D O I
10.4204/EPTCS.152.3
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
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.
引用
收藏
页码:27 / 48
页数:22
相关论文
共 50 条
  • [31] Theory extension in ACL2(r)
    Gamboa, R.
    Cowles, J.
    [J]. JOURNAL OF AUTOMATED REASONING, 2007, 38 (04) : 273 - 301
  • [32] A Complex Java']Java Code Generator for ACL2 Based on a Shallow Embedding of ACL2 in Java']Java
    Coglio, Alessandro
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2022, (359): : 168 - 184
  • [33] Rewriting with Equivalence Relations in ACL2
    Bishop Brock
    Matt Kaufmann
    J Strother Moore
    [J]. Journal of Automated Reasoning, 2008, 40 : 293 - 306
  • [34] Implementing an Automatic Differentiator in ACL2
    Reid, Peter
    Gamboa, Ruben
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2011, (70): : 61 - 69
  • [35] A Simple Java']Java Code Generator for ACL2 Based on a Deep Embedding of ACL2 in Java']Java
    Coglio, Alessandro
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2018, (280): : 1 - 17
  • [36] Linear and nonlinear arithmetic in ACL2
    Hunt, WA
    Krug, RB
    Moore, J
    [J]. CORRECT HARDWARE DESIGN AND VERIFICATION METHODS, PROCEEDINGS, 2003, 2860 : 319 - 333
  • [37] Modeling Algorithms in SystemC and ACL2
    O'Leary, John W.
    Russinoff, David M.
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2014, (152): : 145 - 162
  • [38] A Proof-Generating C Code Generator for ACL2 Based on a Shallow Embedding of C in ACL2
    Coglio, Alessandro
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2022, (359): : 185 - 201
  • [39] Symbolic simulation and verification of VHDL with ACL2
    Borrione, D
    Georgelin, P
    [J]. SYSTEM-ON-CHIP METHODOLOGIES & DESIGN LANGUAGES, 2001, : 59 - 69
  • [40] The Cayley-Dickson Construction in ACL2
    Cowles, John
    Gamboa, Ruben
    [J]. ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2017, (249): : 18 - 29