Mechanical proofs about computer programs
Proc. of a discussion meeting of the Royal Society of London on Mathematical logic and programming languages
Implementing mathematics with the Nuprl proof development system
Implementing mathematics with the Nuprl proof development system
A computational logic handbook
A computational logic handbook
The notion of proof in hardware verification
Journal of Automated Reasoning
An overview of LP, the larch power
RTA-89 Proceedings of the 3rd international conference on Rewriting Techniques and Applications
The definition of Standard ML
Experiments with proof plans for induction
Journal of Automated Reasoning
Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
High level synthesis and generating FPGAs with the BEDROC system
Journal of VLSI Signal Processing Systems - Special issue on field-programmable gate arrays
A methodology for efficient hardware verification
Formal Methods in System Design - Special issue on higher order logic theorem proving and its applications, II
Formal Verification of Algorithms for Critical Systems
IEEE Transactions on Software Engineering
Reasoning with the Formal Definition of Standard ML in HOL
HUG '93 Proceedings of the 6th International Workshop on Higher Order Logic Theorem Proving and its Applications
RRL: A Rewrite Rule Laboratory
Proceedings of the 8th International Conference on Automated Deduction
Studying the ML Module System in Hol
Proceedings of the 7th International Workshop on Higher Order Logic Theorem Proving and Its Applications
A Theorem Proving Based Methodology for Software Verification
A Theorem Proving Based Methodology for Software Verification
Hi-index | 0.00 |
We describe the verification of a logic-synthesis tool with the Nuprl proof-development system. The logic-synthesis tool, Pbs, implements the weak-division algorithm. Pbs consists of approximately 1,000 lines of code implemented in a functional subset of Standard ML. It is a proven and usable implementation and is an integral part of the Bedroc high-level synthesis system. The program was verified by embedding the subset of Standard ML in Nuprl and then verifying the correctness of the implementation of Pbs in the Nuprl logic. The proof required approximately 500 theorems. In the process of verifying Pbs we developed a consistent approach for using a proof-development system to reason about functional programs. The approach hides implementation details and uses higher-order theorems to structure proofs and aid in abstract reasoning. Our approach is quite general, should be applicable to any higher-order proof system, and can aid in the future verification of large software implementations.