An automated theorem prover -- software system consisting of a programming language, an extensible theory in a first-order logic, and a mechanical theorem prover. The input language and implementation of ACL2 are built on Common Lisp.
ACL2 is both a programming language in which you can model computer systems and a tool to help you prove properties of those models.
Main website: ACL2