# ACL2

> software system consisting of a programming language, an extensible theory in a first-order logic, and an automated theorem prover

**Wikidata**: [Q4650692](https://www.wikidata.org/wiki/Q4650692)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/ACL2)  
**Source**: https://4ort.xyz/entity/acl2

## Summary

ACL2 is a programming language established in 1990. It was developed as a software application for formal verification and automated reasoning. ACL2 integrates computational logic with practical programming capabilities, focusing on theorem proving and mathematical modeling.The language emerged from earlier work in automated reasoning systems, evolving to support industrial and academic applications. ACL2 remains in use for verifying hardware and software systems, particularly in safety-critical domains.

## Summary  
ACL2 is a free, BSD‑licensed software system that combines a functional programming language, an extensible first‑order logic theory, and an automated theorem prover. First released in 1990, it was designed by Robert S. Boyer and is primarily maintained by Matt Kaufmann, running on Unix‑like operating systems.

## Key Facts  
- **Inception:** 1990 【source】  
- **Designed by:** Robert S. Boyer 【source】  
- **Developed/maintained by:** Matt Kaufmann 【source】  
- **License:** BSD licenses (free software) 【source】  
- **Operating system requirement:** Unix‑like OS 【source】  
- **Programming paradigm:** Functional programming with dynamic typing 【source】  
- **Instance of:** Programming language (also classified as free software) 【source】  
- **Website:** https://www.cs.utexas.edu/users/moore/acl2/ 【source】  
- **Package availability:** Debian stable (`acl2`) and Homebrew (`acl2`) 【source】  

## FAQs  
### Q: What does ACL2 do?  
A: ACL2 provides a language for writing programs and specifications, an extensible logical theory for reasoning about them, and an automated prover that can verify properties automatically.  

### Q: Is ACL2 free to use?  
A: Yes. ACL2 is released under BSD licenses, making it free and open‑source software.  

### Q: Which platforms can run ACL2?  
A: ACL2 runs on any Unix‑like operating system, such as Linux or macOS.  

### Q: Who created ACL2?  
A: The system was designed by Robert S. Boyer and later developed and maintained by Matt Kaufmann.  

### Q: What programming style does ACL2 follow?  
A: ACL2 follows a functional programming paradigm with dynamic typing.  

## Why It Matters  
ACL2 bridges the gap between programming and formal verification, enabling researchers and engineers to write executable code while simultaneously proving its correctness. By integrating a first‑order logic theory with an automated theorem prover, ACL2 supports rigorous reasoning about software and hardware designs, reducing bugs and increasing reliability in safety‑critical domains such as aerospace, cryptography, and formal methods research. Its BSD licensing and Unix‑like compatibility make it accessible to academic and industrial users alike, fostering a community that contributes extensions and libraries. Because proofs are mechanically checked, ACL2 helps ensure that verified properties hold under all possible inputs, a guarantee that manual testing cannot provide. Consequently, ACL2 has become a cornerstone tool for formal verification, influencing the development of subsequent theorem provers and verification frameworks.  

## Notable For  
- First integrated system that unifies a functional language, logical theory, and automated prover.  
- BSD‑licensed, allowing unrestricted commercial and academic use.  
- Dynamic typing within a functional paradigm, simplifying proof development.  
- Wide adoption in formal verification of hardware and software systems.  
- Available as pre‑built packages for Debian and Homebrew, easing installation.  

## Body  

### Overview  
- ACL2 stands for *A Computational Logic for Applicative Common Lisp*.  
- It is classified as a programming language and a free software theorem‑proving environment.  

### History  
- **1990:** Initial release, designed by Robert S. Boyer.  
- Subsequent development led by Matt Kaufmann, who continues to maintain the project.  

### Architecture  
- **Language core:** A Lisp‑derived functional language with dynamic typing.  
- **Logical theory:** Extensible first‑order logic that can be enriched with user‑defined axioms.  
- **Automated prover:** Executes proof scripts, discharging goals automatically or interactively.  

### Licensing & Distribution  
- Distributed under BSD licenses, qualifying as free and open‑source software.  
- Official website hosts documentation, source code, and binary releases.  
- Packaged for Debian stable (`acl2`) and Homebrew (`acl2`).  

### Platform Support  
- Requires a Unix‑like operating system (Linux, macOS, *BSD).  
- No native Windows support; users typically employ a Unix‑like environment (e.g., WSL).  

### Usage & Impact  
- Employed in academic research for verifying algorithms, protocols, and hardware designs.  
- Used by industry for formal certification of safety‑critical systems.  
- Supports a large library of proven theorems and community‑contributed extensions.  

### Community & Resources  
- Maintained by the WikiProject Software and listed under multiple Wikipedia language editions (en, es, zh, zh_yue).  
- Identified in academic databases (e.g., SWMath work ID 60) and indexed by freebase (`/m/015hl_`).