Design automation with mixtures of proof strategies for propositional logic

Design automation problems can often be encoded in propositional logic, and solved by applying propositional logic proof methods. Unfortunately, there exists no single proof method with adequate performance for all problems of interest. It is, therefore, critical to be able to combine different approaches, and to quickly be able to test how different compositions affect overall performance. In this paper, we present a proof engine framework where individual methods are viewed as strategies-functions between different proof states. By defining our proof engine in such a way that we can compose strategies to form new, more powerful, strategies we achieve synergistic effects between the individual methods. Unlike previous approaches, our framework is flexible enough to allow users to quickly come up with specially tailored composite analyses for problems from any of the different subdomains of design automation. We show how several known analyses for solving design automation problems encoded in propositional logic can be integrated as base strategies in our framework. As a proof-of-concept, and to demonstrate the power inherent in the framework, we also present experimental results that show the performance of two default composite strategies that we have developed using the framework over a period of several years. These strategies are often one to two magnitudes faster when compared with binary decision diagram-based techniques and search-based satisfiability solvers such as ZCHAFF. The introduction of the framework was the key facilitator in the development of these default strategies.

[1]  Zhihong Zeng,et al.  A BDD-based satisfiability infrastructure using the unate recursive paradigm , 2000, DATE '00.

[2]  Andreas Kuehlmann,et al.  Equivalence checking combining a structural SAT-solver, BDDs, and simulation , 2000, Proceedings 2000 International Conference on Computer Design.

[3]  Hélène Kirchner,et al.  ELAN: A logical framework based on computational systems , 1996, WRLA.

[4]  Mary Sheeran,et al.  A Tutorial on Stålmarck's Proof Procedure for Propositional Logic , 2000, Formal Methods Syst. Des..

[5]  Lawrence Charles Paulson Tactics and tacticals in Cambridge LCF , 1983 .

[6]  Sharad Malik,et al.  Chaff: engineering an efficient SAT solver , 2001, Proceedings of the 38th Design Automation Conference (IEEE Cat. No.01CH37232).

[7]  Per Bjesse,et al.  A proof engine approach to solving combinational design automation problems , 2002, DAC '02.

[8]  Lawrence C. Paulson,et al.  Logic and computation - interactive proof with Cambridge LCF , 1987, Cambridge tracts in theoretical computer science.

[9]  Donald W. Loveland,et al.  A machine program for theorem-proving , 2011, CACM.

[10]  Dieter Hutter,et al.  System Description: inka 5.0 - A Logic Voyager , 1999, CADE.

[11]  Daniel Brand Verification of large synthesized designs , 1993, ICCAD.

[12]  Randal E. Bryant,et al.  Graph-Based Algorithms for Boolean Function Manipulation , 1986, IEEE Transactions on Computers.

[13]  Michael J. C. Gordon,et al.  Why higher-order logic is a good formalism for specifying and verifying hardware , 1985 .

[14]  J.R. Burch,et al.  Tight integration of combinational verification methods , 1998, 1998 IEEE/ACM International Conference on Computer-Aided Design. Digest of Technical Papers (IEEE Cat. No.98CB36287).

[15]  Masahiro Fujita,et al.  An efficient filter-based approach for combinational verification , 1999, Design, Automation and Test in Europe Conference and Exhibition, 1999. Proceedings (Cat. No. PR00078).

[16]  Shi-Yu Huang,et al.  Formal Equivalence Checking and Design Debugging , 1998 .