# Data Definitions in the ACL2 Sedan

@inproceedings{Chamarthi2014DataDI, title={Data Definitions in the ACL2 Sedan}, author={Harsh Raju Chamarthi and Peter C. Dillinger and Panagiotis Manolios}, booktitle={ACL2}, year={2014} }

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…

## 12 Citations

ACL2s Systems Programming

- Computer ScienceACL2
- 2022

A methodology for writing code in Common Lisp that allows one to access ACL2, ACL2s, and Common Lisp functionality in a uniﬁed way and is called “ACL2s systems programming,” to distinguish it from ACL2 systems programming.

Limited Second-Order Functionality in a First-Order Setting

- Computer ScienceJournal of Automated Reasoning
- 2018

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

- Computer ScienceACL2
- 2015

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

- Computer ScienceACL2
- 2015

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

- Computer Science2018 IEEE 26th International Requirements Engineering Conference (RE)
- 2018

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

- Computer ScienceRequirements Engineering
- 2019

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

- Computer Science2019 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!

- Computer ScienceArt Sci. Eng. Program.
- 2021

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

- Computer ScienceNFM
- 2015

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

- Computer ScienceArXiv
- 2021

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.

## References

SHOWING 1-10 OF 14 REFERENCES

Soundness of the simply typed lambda calculus in ACL2

- Computer ScienceACL2 '06
- 2006

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

- Computer ScienceCAV
- 2006

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

- MathematicsACL 2002
- 2002

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

- Computer ScienceACL 2002
- 2002

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

- Computer ScienceJ. Funct. Program.
- 2008

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

- Computer Science2011 Formal Methods in Computer-Aided Design (FMCAD)
- 2011

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

- Mathematics, Computer ScienceACL2
- 2011

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 Science
- 2011

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

- Computer ScienceACL2
- 2013

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