A computational logic handbook
A computational logic handbook
Introduction to algorithms
Powerlist: a structure for parallel recursion
ACM Transactions on Programming Languages and Systems (TOPLAS)
An Industrial Strength Theorem Prover for a Logic Based on Common Lisp
IEEE Transactions on Software Engineering
Constructors can be partial, too
Automated reasoning and its applications
Computer-Aided Reasoning: An Approach
Computer-Aided Reasoning: An Approach
Structured Theory Development for a Mechanized Logic
Journal of Automated Reasoning
ACL2 Theorems About Commercial Microprocessors
FMCAD '96 Proceedings of the First International Conference on Formal Methods in Computer-Aided Design
ACL2 Support for Verification Projects (Invited Talk)
CADE-15 Proceedings of the 15th International Conference on Automated Deduction: Automated Deduction
Automated Reasoning About Parallel Algorithms Using Powerlists
Automated Reasoning About Parallel Algorithms Using Powerlists
Defthms About Zip and Tie: Reasoning about Powerlists in ACL2
Defthms About Zip and Tie: Reasoning about Powerlists in ACL2
Mechanical Verification of a Square Root Algorithm Using Taylor's Theorem
FMCAD '02 Proceedings of the 4th International Conference on Formal Methods in Computer-Aided Design
Certifying the Fast Fourier Transform with Coq
TPHOLs '01 Proceedings of the 14th International Conference on Theorem Proving in Higher Order Logics
Hi-index | 0.00 |
The powerlists data structure, created by Misra in the early 90s, is well suited to express recursive, data-parallel algorithms. Misra has shown how powerlists can be used to give simple descriptions to very complex algorithms, such as the Fast Fourier Transform (FFT). Such simplicity in presentation facilitates reasoning about the resulting algorithms, and in fact Misra has presented a stunningly simple proof of the correctness of the FFT. In this paper, we show how this proof can be mechanically verified using the ACL2 theorem prover. This supports Misra's belief that powerlists provide a suitable framework in which to define and reason about parallel algorithms, particularly using mechanical tools. It also illustrates the use of ACL2 in the formal verification of a distributed algorithm.