A SAT-Based Decision Procedure for the Subclass of Unrollable List Formulas in ACL2 (SULFA)
We define the Subclass of Unrollable List Formulas in ACL2 (SULFA). SULFA is a subclass of ACL2 formulas based on list structures that is sufficiently expressive to include invariants of finite state machines (FSMs). We have extended the ACL2 theorem prover to include a new proof mechanism, which can recognize SULFA formulas and automatically verify them with a SAT-based decision procedure. When this decision procedure is successful, a theorem is added to the ACL2 system database as a lemma for use in future proof attempts. When unsuccessful, a counter-example to the SULFA property is presented.
We are using SULFA and its SAT-based decision procedure as part of a larger system to verify components of the TRIPS processor. Our verification system translates Verilog designs automatically into ACL2 models. These models are written such that their invariants are SULFA properties, which can be verified by our SAT-based decision procedure, traditional theorem proving, or a mixture of the two.
KeywordsModel Check Decision Procedure Conjunctive Normal Form Recursive Call Liveness Property
Unable to display preview. Download preview PDF.
- 1.Russinoff, D.: A Mechanically Checked Proof of IEEE Compliance of a Register-Transfer-Level Specification of the AMD K7 Floating Point Multiplication, Division and Square Root Instructions. London Mathematical Society Journal of Computation and Mathematics 1, 148–200 (1998)MATHMathSciNetGoogle Scholar
- 3.Kaufmann, M., Manolios, P., Moore, J.S.: Computer Aided Reasoning: An Approach. Kluwer Academic Publishers, Dordrecht (2000)Google Scholar
- 5.Tseitin, G.: On the complexity of derivation in propositional calculus. Seminars in Mathematics 8 (1968)Google Scholar
- 6.Sankaralingam, K., Nagarajan, R., Liu, H., Kim, C., Huh, J., Burger, D., Keckler, S., Moore, C.: exploiting ilp, tlp, and dlp with the polymorphous trips architecture. In: International Symposium on Computer Architecture, pp. 422–433 (2003)Google Scholar
- 7.Sethumadhavan, S., Desikan, R., Burger, D., Moore, C.R., Keckler, S.W.: Scalable Hardware Memory Disambiguation for High ILP Processors. In: Proceedings of the 36th Annual International Symposium on Microarchitecture (MICRO 36), pp. 399–410. ACM/IEEE (2003)Google Scholar
- 9.Owre, S., Rajan, S., Rushby, J.M., Shankar, N., Srivas, M.K.: PVS: Combining Specification, Proof Checking, and Model Checking. In: Alur, R., Henzinger, T.A. (eds.) CAV 1996. LNCS, vol. 1102, pp. 411–414. Springer, Heidelberg (1996)Google Scholar
- 11.Berezin, S.: Model Checking and Theorem Proving: A Unified Framework. PhD thesis, Carnegie Mellon University (2002)Google Scholar
- 13.Manolios, P.: Mechanical Verification of Reactive Systems. PhD thesis, The University of Texas at Austin (2001)Google Scholar
- 14.Manolios, P., Srinivasan, S.K.: Automatic Verification of Safety and Liveness for XScale-Like Processor Models Using WEB Refinements. In: DATE, pp. 168–175 (2004)Google Scholar
- 16.The SAT-extended ACL2 Theorem Prover (2006), www.cs.utexas.edu/users/reeber/sat-extended-acl2.html