What's hard about Boolean Functional Synthesis

Given a relational specification between Boolean inputs and outputs, the goal of Boolean functional synthesis is to synthesize each output as a function of the inputs such that the specification is met. In this paper, we first show that unless some hard conjectures in complexity theory are falsified, Boolean functional synthesis must necessarily generate exponential-sized Skolem functions, thereby requiring exponential time, in the worst-case. Given this inherent hardness, what does one do to solve the problem? We present a two-phase algorithm for Boolean functional synthesis, where the first phase is efficient both in terms of time and sizes of synthesized functions, and solves an overwhelming majority of benchmarks. To explain this surprisingly good performance, we provide a sufficient condition under which the first phase must produce exact correct answers. When this condition fails, the second phase builds upon the result of the first phase, possibly requiring exponential time and generating exponential-sized functions in the worst-case. Detailed experimental evaluation shows our algorithm to perform better than state-of-the-art techniques for a majority of benchmarks.

[1]  Jean-Pierre Jouannaud,et al.  Unification in Boolean Rings and Abelian Groups , 1989, J. Symb. Comput..

[2]  Moshe Y. Vardi,et al.  Factored boolean functional synthesis , 2017, 2017 Formal Methods in Computer Aided Design (FMCAD).

[3]  Jie-Hong Roland Jiang,et al.  Resolution Proofs and Skolem Functions in QBF Evaluation and Applications , 2011, CAV.

[4]  Armando Solar-Lezama,et al.  Programming by sketching for bit-streaming programs , 2005, PLDI '05.

[5]  Markus N. Rabe,et al.  CAQE: A Certifying QBF Solver , 2015, 2015 Formal Methods in Computer-Aided Design (FMCAD).

[6]  Tobias Nipkow,et al.  Boolean Unification - The Story So Far , 1989, J. Symb. Comput..

[7]  Jie-Hong Roland Jiang,et al.  Quantifier Elimination via Functional Composition , 2009, CAV.

[8]  Armin Biere,et al.  Resolution-Based Certificate Extraction for QBF - (Tool Presentation) , 2012, SAT.

[9]  Moshe Y. Vardi,et al.  BDD-Based Boolean Functional Synthesis , 2016, CAV.

[10]  Armando Solar-Lezama,et al.  Program sketching , 2012, International Journal on Software Tools for Technology Transfer.

[11]  Guillermo A. Pérez,et al.  AbsSynthe: abstract synthesis from succinct safety specifications , 2014, SYNT.

[12]  Adnan Darwiche,et al.  Decomposable negation normal form , 2001, JACM.

[13]  George Boole,et al.  The mathematical analysis of logic , 1948 .

[14]  Russell Impagliazzo,et al.  Complexity of k-SAT , 1999, Proceedings. Fourteenth Annual IEEE Conference on Computational Complexity (Formerly: Structure in Complexity Theory Conference) (Cat.No.99CB36317).

[15]  Masahiro Fujita,et al.  SAT-Based Automatic Rectification and Debugging of Combinational Circuits with LUT Insertions , 2012, Asian Test Symposium.

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

[17]  Sanjit A. Seshia,et al.  On Parallel Scalable Uniform SAT Witness Generation , 2015, TACAS.

[18]  Supratik Chakraborty,et al.  Towards Parallel Boolean Functional Synthesis , 2017, TACAS.

[19]  Leopold Löwenheim,et al.  Über die Auflösung von Gleichungen im logischen Gebietekalkul , 1910 .

[20]  Franz Baader On the Complexity of Boolean Unification , 1998, Inf. Process. Lett..

[21]  Armin Biere,et al.  Efficient extraction of Skolem functions from QRAT proofs , 2014, 2014 Formal Methods in Computer-Aided Design (FMCAD).

[22]  Leonid Ryzhyk,et al.  The Second Reactive Synthesis Competition (SYNTCOMP 2015) , 2016, SYNT.

[23]  Geguang Pu,et al.  Symbolic LTLf Synthesis , 2017, IJCAI.

[24]  Russell Impagliazzo,et al.  On the Complexity of k-SAT , 2001, J. Comput. Syst. Sci..

[25]  J. P. Deschamps,et al.  Parametric solutions of Boolean equations , 1972, Discret. Math..

[26]  Maurice Bruynooghe,et al.  Theory and Applications of Satisfiability Testing – SAT 2016 , 2016, Lecture Notes in Computer Science.

[27]  Yijia Chen,et al.  The Exponential Time Hypothesis and the Parameterized Clique Problem , 2012, IPEC.

[28]  Supratik Chakraborty,et al.  Algorithmic Improvements in Approximate Counting for Probabilistic Inference: From Linear to Logarithmic SAT Calls , 2016, IJCAI.

[29]  Malay K. Ganai,et al.  Robust Boolean reasoning for equivalence checking and functional property verification , 2002, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[30]  Ruzica Piskac,et al.  Complete functional synthesis , 2010, PLDI '10.

[31]  Jie-Hong Roland Jiang,et al.  Unified QBF certification and its applications , 2012, Formal Methods Syst. Des..

[32]  Supratik Chakraborty,et al.  Skolem functions for factored formulas , 2015, 2015 Formal Methods in Computer-Aided Design (FMCAD).

[33]  Sumit Gulwani,et al.  Template-based program verification and program synthesis , 2013, International Journal on Software Tools for Technology Transfer.

[34]  E. Macii,et al.  Comparing different Boolean unification algorithms , 1998, Conference Record of Thirty-Second Asilomar Conference on Signals, Systems and Computers (Cat. No.98CH36284).

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