Bit-Blasting ACL2 Theorems

Interactive theorem proving requires a lot of human guidance. Proving a property involves (1) figuring out why it holds, then (2) coaxing the theorem prover into believing it. Both steps can take a long time. We explain how to use GL, a framework for proving finite ACL2 theorems with BDD- or SAT-based reasoning. This approach makes it unnecessary to deeply understand why a property is true, and automates the process of admitting it as a theorem. We use GL at Centaur Technology to verify execution units for x86 integer, MMX, SSE, and floating-point arithmetic.

[1]  Panagiotis Manolios,et al.  A Framework for Verifying Bit-Level Pipelined Machines Based on Automated Deduction and Decision Procedures , 2006, Journal of Automated Reasoning.

[2]  Sol Otis Swords A verified framework for symbolic execution in the ACL2 theorem prover , 2010 .

[3]  Anna Slobodová,et al.  A flexible formal verification framework for industrial scale validation , 2011, Ninth ACM/IEEE International Conference on Formal Methods and Models for Codesign (MEMPCODE2011).

[4]  Laurent Théry,et al.  Verifying SAT and SMT in Coq for a fully automated decision procedure , 2011 .

[5]  Sol Swords,et al.  Centaur Technology Media Unit Verification , 2009, CAV.

[6]  Sol Swords,et al.  A Mechanically Verified AIG-to-BDD Conversion Algorithm , 2010, ITP.

[7]  Jared Davis Reasoning about ACL2 file input , 2006, ACL2 '06.

[8]  Robert S. Boyer,et al.  Function memoization and unique object representation for ACL2 functions , 2006, ACL2 '06.

[9]  Bernd Fischer,et al.  Industrial-Strength Certified SAT Solving through Verified SAT Proof Checking , 2010, ICTAC.

[10]  Panagiotis Manolios,et al.  Computer-Aided Reasoning: An Approach , 2011 .

[11]  Carl-Johan H. Seger,et al.  Formal verification using parametric representations of Boolean constraints , 1999, DAC '99.

[12]  Warren A. Hunt,et al.  Combining advanced formal hardware verification techniques , 2007 .

[13]  Anna Slobodová,et al.  Use of Formal Verification at Centaur Technology , 2010, Design and Verification of Microprocessor Systems for High-Assurance Applications.

[14]  Hasan Amjad,et al.  Efficiently checking propositional refutations in HOL theorem provers , 2009, J. Appl. Log..

[15]  Warren A. Hunt,et al.  A SAT-Based Decision Procedure for the Subclass of Unrollable List Formulas in ACL2 (SULFA) , 2006, IJCAR.

[16]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[17]  Sudarshan K. Srinivasan,et al.  Efficient Verification of Bit-Level Pipelined Machines Using Refinement , 2007 .

[18]  Robert S. Boyer,et al.  Symbolic simulation in ACL2 , 2009, ACL2 '09.

[19]  Anthony C. J. Fox LCF-Style Bit-Blasting in HOL4 , 2011, ITP.

[20]  Randal E. Bryant,et al.  Verification of Floating-Point Adders , 1998, CAV.