An industrial strength theorem prover for a logic based on common lisp
ACL2 is a reimplemented extended version of Boyer and Moore's Nqthm and Kaufmann's Pc-Nqthm, intended for large scale verification projects. This paper deals primarily with how we scaled up Nqthm's logic to an ''industrial strength'' programming language-namely, a large applicative subset of Common Lisp-while preserving the use of total functions within the logic. This makes it possible to run formal models efficiently while keeping the logic simple. We enumerate many other important features of ACL2 and we briefly summarize two industrial applications: a model of the Motorola GAP digital signal processing chip and the proof of the correctness of the kernel of the floating point division algorithm on the AMD5(K)86 microprocessor by Advanced Micro Devices, Inc.
total functions digital signal processing floating point division formal verification automatic theorem proving computational logic partial functions type checking microcode verification