Data Definitions in the ACL2 Sedan

  title={Data Definitions in the ACL2 Sedan},
  author={Harsh Raju Chamarthi and Peter C. Dillinger and Panagiotis Manolios},
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… 
ACL2s Systems Programming
A methodology for writing code in Common Lisp that allows one to access ACL2, ACL2s, and Common Lisp functionality in a unified way and is called “ACL2s systems programming,” to distinguish it from ACL2 systems programming.
Limited Second-Order Functionality in a First-Order Setting
A weak version of the Common Lisp functional apply, which takes a function and list of actuals and applies the function to the actuals, is defined in ACL2, which allows the ACL2 user to avoid defining specialized recursive functions for each such application.
Fix Your Types
A principled approach to types is described that provides strong type safety and execution efficiency while avoiding type hypotheses, and a library is presented that automates this approach.
Proving Skipping Refinement with ACL2s
It is shown how ACL2s can be used to prove skipping refinement theorems by modeling and proving the correctness of three systems: a JVM-inspired stack machine, a simple memory controller, and a scalar to vector compiler transformation.
Towards Development of Complete and Conflict-Free Requirements
This work introduces a tool called ASSERT (Analysis of Semantic Specifications and Efficient generation of Requirements-based Tests) for capturing requirements, backed by a formal requirements analysis engine, and provides explainable and automated formal analysis, something important for a tool's adoptability in industry.
Automating requirements analysis and test case generation
This work introduces a tool called Analysis of Semantic Specifications and Efficient generation of Requirements-based Tests (ASSERT™) for capturing requirements, backed by a formal requirements analysis engine, and provides explainable and automated formal analysis.
Using OWL Ontologies as a Domain-Specific Language for Capturing Requirements for Formal Analysis and Test Case Generation
  • A. CrapoA. Moitra
  • Computer Science
    2019 IEEE 13th International Conference on Semantic Computing (ICSC)
  • 2019
This paper illustrates how ontologies enable the ASSERT™ tool suite to support the above capabilities through a small grounding use case.
Finding Bugs with Specification-Based Testing is Easy!
Results indicate the automated testing of programs written in Whiley is effective in many cases, and that sampling offers useful performance benefits with only modest reductions in bug-finding capability.
Practical Formal Verification of Domain-Specific Language Applications
A model-based approach to software development is taken that adds the assurance of formal methods to software construction while automating over 90% of the formal modeling.
A Reasoning Engine for the Gamification of Loop-Invariant Discovery
The reasoning engine enables students, computational agents and regular software engineers with no formal methods expertise to collaboratively prove interesting theorems about simple programs using browserbased, online games.


Soundness of the simply typed lambda calculus in ACL2
A method is introduced for performing proofs in ACL2 of the soundness of the simply typed λ-calculus, including a macro which automates the process of defining functions and theorems to facilitate reasoning about recursive data types.
Termination Analysis with Calling Context Graphs
We introduce calling context graphs and various static and theorem proving based analyses that together provide a powerful method for proving termination of programs written in feature-rich, first
Adding a Total Order to ACL2
It is shown that adding a total order to ACL2, via new axioms, allows for simpler and more elegant definitions of functions and libraries of theorems, which have been incorporated into ACL2 Version 2.6.
Efficient Rewriting of Operations on Finite Structures in ACL2
The deenitions of the access and update functions are somewhat subtle, complex, and ineeecient, but they return the expected values and the theorems exported are elegant and eecient for automatic, unconditional rewriting.
Efficient execution in an automated reasoning environment
A method that permits the user of a mechanized mathematical logic to write elegant logical definitions while allowing sound and efficient execution and the features supporting this method allow the user to install alternative executable counterparts for logically defined functions.
Automated specification analysis using an interactive theorem prover
The method makes essential use of an interactive theorem prover, but is fully automatic, and has been implemented and experimentally validated in ACL2s, the ACL2 Sedan.
Integrating Testing and Interactive Theorem Proving
A synergistic integration of testing with theorem proving, implemented in the ACL2 Sedan (ACL2s), for automatically generating concrete counterexamples and the experience in using ACL2s to teach freshman students how to reason about their programs is discussed.
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: ACL2 Case Studies illustrates how the computer-aided reasoning system ACL2 can be used in productive and innovative ways to design, build, and maintain hardware and software systems.
Enhancements to ACL2 in Versions 5.0, 6.0, and 6.1
This paper reports on highlights of the ACL2 enhancements introduced in ACL2 releases since the 2011 ACL2 Workshop, focusing on those improvements that could benefit users who are aware of them, but that might not be discovered in everyday practice.
Enhancements to ACL2 in Versions
  • Proceedings International Workshop on the ACL2 Theorem Prover and its Applications,
  • 2013