  Automatic and efficient verification of multiplier designs, especially
through a provably correct method, is a difficult problem. We show how to
utilize a theorem prover, ACL2, to implement an efficient rewriting algorithm
for multiplier design verification. Through a basic understanding of the
features and data structures of ACL2, we created a verified program that can
automatically verify various multiplier designs much faster than the other
state-of-the-art tools. Additionally, users of our system have the flexibility
to change the specification for the target design to verify variations of
multipliers. We discuss the challenges we tackled during the development of
this program as well as key implementation details for efficiency and
verifiability. Those who plan to implement an efficient program on a theorem
prover or those who wish to implement our multiplier verification methodology
on a different system may benefit from the discussions in this paper.
