Skip to main content
Log in

Boolean functional synthesis: hardness and practical algorithms

  • Published:
Formal Methods in System Design Aims and scope Submit manuscript

Abstract

Given a relational specification between Boolean inputs and outputs, Boolean functional synthesis seeks to synthesize each output as a function of the inputs such that the specification is met. Despite significant algorithmic advances in Boolean functional synthesis over the past few years, there are relatively small specifications that have remained beyond the reach of all state-of-the-art tools. In trying to understand this behaviour, we show that unless some hard conjectures in complexity theory are falsified, Boolean functional synthesis must generate large Skolem functions in the worst-case. Given this inherent hardness, what does one do to solve the problem? We present a two-phase algorithm, where the first phase is efficient in practice both in terms of time and size of synthesized functions, and solves a large fraction of our benchmarks. This phase is also guaranteed to solve the problem when the representation of the input specification satisfies some structural requirements. For those cases where the first phase doesn’t suffice, we present a second phase of our synthesis algorithm that uses a special class of algorithms, called expansion-based algorithms, to generate correct Skolem functions. This may require exponential time and generate exponential-sized Skolem functions in the worst-case. Detailed experimental evaluation shows that our overall synthesis algorithm performs better than other techniques for a large number of benchmarks.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8

Similar content being viewed by others

Notes

  1. Otherwise, we could efficiently factorize products of n-bit prime numbers, rendering cryptographic systems vulnerable to attacks.

  2. We use the standard definition for \({\mathsf {ETH}}_{\mathsf {nu}}\) see e.g., [15, 20]. We note however that in [16] the authors consider an alternate definition of this notion.

References

  1. Akshay S, Chakraborty S, John AK, Shah S (2017) Towards parallel Boolean functional synthesis. In: Proceedings of international conference on tools and algorithms for construction and analysis of systems (TACAS), part I, pp 337–353

  2. Akshay S, Arora J, Chakraborty S, Krishna S, Raghunathan D, Shah S (2019) Knowledge compilation for Boolean functional synthesis. In: Proceedings of international conference on formal methods in computer-aided design (FMCAD), pp 161–169

  3. Akshay S, Chakraborty S, Goel S, Kulal S, Shah S (2020) Code and benchmark details for BFSS experiments. https://github.com/BooleanFunctionalSynthesis/bfss. Accessed Sept 2020

  4. Alur R, Madhusudan P, Nam W (2005) Symbolic computational techniques for solving games. Int J Softw Tools Technol Transf 7(2):118–128

    Article  Google Scholar 

  5. Andersson G, Bjesse P, Cook B, Hanna Z (2002) A proof engine approach to solving combinational design automation problems. In: Proceedings of design automation conference (DAC), pp 725–730

  6. Baader F (1998) On the complexity of Boolean unification. Inf Process Lett 67:215–220

    Article  MathSciNet  Google Scholar 

  7. Balabanov V, Jiang JHR (2012) Unified QBF certification and its applications. Form Methods Syst Des 41(1):45–65

    Article  Google Scholar 

  8. Boole G (1847) The mathematical analysis of logic. Philosophical Library

  9. Boudet A, Jouannaud JP, Schmidt-Schauss M (1989) Unification in Boolean rings and Abelian groups. J Symb Comput 8(5):449–477

    Article  MathSciNet  Google Scholar 

  10. Brayton R, Mishchenko A (2010) ABC: an academic industrial-strength verification tool. In: Proceedings of international conference on computer-aided verification (CAV), pp 24–40

  11. Brenguier R, Pérez GA, Raskin JF, Sankur O (2014) AbsSynthe: abstract synthesis from succinct safety specifications. In: Proceedings of workshop on synthesis (SYNT), open publishing association, electronic proceedings in theoretical computer science, vol 157, pp 100–116

  12. Bryant RE (1986) Graph-based algorithms for Boolean function manipulation. IEEE Trans Comput 35(8):677–691

    Article  Google Scholar 

  13. Chakraborty S, Fremont DJ, Meel KS, Seshia SA, Vardi MY (2015) On parallel scalable uniform SAT witness generation. In: Proceedings of international conference on tools and algorithms for the construction and analysis of systems (TACAS), pp 304–319

  14. Chakraborty S, Fried D, Tabajara LM, Vardi MY (2018) Functional synthesis via input–output separation. In: Proceedings of international conference on formal methods in computer-aided design (FMCAD), pp 1–9

  15. Chandrasekaran V, Srebro N, Harsha P (2008) Complexity of inference in graphical models. In: Proceedings of international conference on uncertainty in artificial intelligence (UAI), pp 70–78

  16. Chen Y, Eickmeyer K, Flum J (2012) The exponential time hypothesis and the parameterized clique problem. In: Proceedings of international conference on parameterized and exact computation (IPEC), pp 13–24

  17. Darwiche A (2001) Decomposable negation normal form. J ACM 48(4):608–647

    Article  MathSciNet  Google Scholar 

  18. Deschamps JP (1972) Parametric solutions of Boolean equations. Discrete Math 3(4):333–342

    Article  MathSciNet  Google Scholar 

  19. Fried D, Tabajara LM, Vardi MY (2016) BDD-based Boolean functional synthesis. In: Proceedings (part II) of international conference on computer-aided verification (CAV), pp 402–421

  20. Ganian R, Hlinený P, Langer A, Obdrzálek J, Rossmanith P, Sikdar S (2014) Lower bounds on the complexity of MSO\({}_{\text{1 }}\) model-checking. J Comput Syst Sci 80(1):180–194

    Article  MathSciNet  Google Scholar 

  21. Golia P, Roy S, Meel KS (2020) Manthan: a data-driven approach for Boolean function synthesis. In: Proceedings of international conference on computer-aided verification (CAV), pp 611–633

  22. Hellerman L (1963) A catalog of three-variable Or-Invert and And-Invert logical circuits. IEEE Trans Electron Comput 12(3):198–223

    Article  Google Scholar 

  23. Heule M, Seidl M, Biere A (2014) Efficient extraction of Skolem functions from QRAT proofs. In: Proceedings of international conference on formal methods in computer-aided design (FMCAD), pp 107–114

  24. Impagliazzo R, Paturi R (2001) On the complexity of k-SAT. J Comput Syst Sci 62(2):367–375

    Article  MathSciNet  Google Scholar 

  25. Jiang JHR (2009) Quantifier elimination via functional composition. In: Proceedings of international conference on computer-aided verification (CAV). Springer, pp 383–397

  26. Jiang JHR, Lin HP, Hung WL (2009) Interpolating functions from large Boolean relations. In: Proceedings of international conference on computer-aided design (ICCAD), pp 779–784

  27. Jo S, Matsumoto T, Fujita M (2012) SAT-based automatic rectification and debugging of combinational circuits with LUT insertions. In: Proceedings of Asian test symposium (ATS), pp 19–24

  28. John A, Shah S, Chakraborty S, Trivedi A, Akshay S (2015) Skolem functions for factored formulas. In: Proceedings of international conference on formal methods in computer-aided design (FMCAD), pp 73–80

  29. Karp R, Lipton R (1982) Turing machines that take advice. L’Enseignment Mathématique 28(2):191–209

    MathSciNet  MATH  Google Scholar 

  30. Kuehlmann A, Krohm F (1997) Equivalence checking using cuts and heaps. In: Proceedings of design automation conference (DAC), pp 263–268

  31. Kuncak V, Mayer M, Piskac R, Suter P (2010) Complete functional synthesis. ACM SIGPLAN Not 45(6):316–329

    Article  Google Scholar 

  32. Löwenheim L (1910) Über die Auflösung von Gleichungen in Logischen Gebietkalkul. Math Ann 68:169–207

    Article  MathSciNet  Google Scholar 

  33. Macii E, Odasso G, Poncino M (1998) Comparing different Boolean unification algorithms. In: Conference record of asilomar conference on signals, systems and computers (Cat. No. 98CH36284), vol 2, pp 1052–1056

  34. Martin U, Nipkow T (1989) Boolean unification: the story so far. J Symb Comput 7(3–4):275–293

    Article  MathSciNet  Google Scholar 

  35. Niemetz A, Preiner M, Lonsing F, Seidl M, Biere A (2012) Resolution-based certificate extraction for QBF—(tool presentation). In: Proceedings of international conference on theory and applications of satisfiability testing (SAT), pp 430–435

  36. QBFLib (2018) QBFEval 2018. http://www.qbflib.org/qbfeval18.php. Accessed July 2018

  37. Rabe MN (2019) Incremental determinization for quantifier elimination and functional synthesis. In: Proceedings of international conference on computer-aided verification (CAV), part II, pp 84–94

  38. Rabe MN, Seshia SA (2016) Incremental determinization. In: Proceedings of international conference on theory and applications of satisfiability testing (SAT), pp 375–392

  39. Rabe MN, Tentrup L (2015) CAQE: a certifying QBF solver. In: Proceedings of international conference on formal methods in computer-aided design (FMCAD), pp 136–143

  40. Rabe MN, Tentrup L, Rasmussen C, Seshia SA (2018) Understanding and extending incremental determinization for 2QBF. In: Proceedings of international conference on computer-aided verification (CAV), part II, pp 256–274

  41. Silva JM, Lynce I, Malik S (2008) Conflict-driven clause learning SAT solvers. In: Biere A, Heule M, van Maaren H, Walsch T (eds) Handbook of satisfiability, chap 14. IOS Press, Amsterdam, pp 127–149

    Google Scholar 

  42. Solar-Lezama A (2013) Program sketching. Int J Softw Tools Technol Transf 15(5–6):475–495

    Article  Google Scholar 

  43. Solar-Lezama A, Rabbah RM, Bodík R, Ebcioglu K (2005) Programming by sketching for bit-streaming programs. In: Proceedings of international conference on programming language design and implementation (PLDI), pp 281–294

  44. Srivastava S, Gulwani S, Foster JS (2013) Template-based program verification and program synthesis. Int J Softw Tools Technol Transf 15(5–6):497–518

    Article  Google Scholar 

  45. Tabajara LM, Vardi MY (2017) Factored Boolean functional synthesis. In: Proceedings of international conference on formal methods in computer-aided design (FMCAD), pp 124–131

  46. Trivedi A (2003) Techniques in symbolic model checking. Master’s thesis, Indian Institute of Technology Bombay, Mumbai, India

  47. Zhu S, Tabajara LM, Li J, Pu G, Vardi MY (2017) Symbolic LTLf synthesis. In: Proceedings of international joint conference on artificial intelligence (IJCAI), pp 1362–1369

Download references

Acknowledgements

We thank Ajith K. John for many technical discussions. We also thank the anonymous reviewers for several pertinent remarks and suggestions.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Supratik Chakraborty.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

The authors wish to acknowledge funding support from DST/CEFIPRA/INRIA Project EQuaVE and DST/SERB Matrices Grant MTR/2018/000744 for S. Akshay, and from MHRD/IMPRINT-1/Project 5496(FMSAFE) for Supratik Chakraborty and Shetal Shah. Most of this work was done when Shubham Goel and Sumith Kulal were at Indian Institute of Technology Bombay, India.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Akshay, S., Chakraborty, S., Goel, S. et al. Boolean functional synthesis: hardness and practical algorithms. Form Methods Syst Des 57, 53–86 (2021). https://doi.org/10.1007/s10703-020-00352-2

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10703-020-00352-2

Keywords

Navigation