A Scalable and Nearly Uniform Generator of SAT Witnesses

  • Supratik Chakraborty
  • Kuldeep S. Meel
  • Moshe Y. Vardi
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8044)


Functional verification constitutes one of the most challenging tasks in the development of modern hardware systems, and simulation-based verification techniques dominate the functional verification landscape. A dominant paradigm in simulation-based verification is directed random testing, where a model of the system is simulated with a set of random test stimuli that are uniformly or near-uniformly distributed over the space of all stimuli satisfying a given set of constraints. Uniform or near-uniform generation of solutions for large constraint sets is therefore a problem of theoretical and practical interest. For Boolean constraints, prior work offered heuristic approaches with no guarantee of performance, and theoretical approaches with proven guarantees, but poor performance in practice. We offer here a new approach with theoretical performance guarantees and demonstrate its practical utility on large constraint sets.


Hash Function Conjunctive Normal Form Conjunctive Normal Form Formula Uniform Generator Probabilistic Polynomial Time 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
  2. 2.
  3. 3.
  4. 4.
    Bacchus, F., Dalmao, S., Pitassi, T.: Algorithms and complexity results for #SAT and Bayesian inference. In: Proc. of FOCS, pp. 340–351 (2003)Google Scholar
  5. 5.
    Bellare, M., Goldreich, O., Petrank, E.: Uniform generation of NP-witnesses using an NP-oracle. Information and Computation 163(2), 510–526 (1998)MathSciNetCrossRefGoogle Scholar
  6. 6.
    Bentley, B.: Validating a modern microprocessor. In: Etessami, K., Rajamani, S.K. (eds.) CAV 2005. LNCS, vol. 3576, pp. 2–4. Springer, Heidelberg (2005)CrossRefGoogle Scholar
  7. 7.
    Chandra, A.K., Iyengar, V.S.: Constraint solving for test case generation: A technique for high-level design verification. In: Proc. of ICCD, pp. 245–248 (1992)Google Scholar
  8. 8.
    Chang, K., Markov, I.L., Bertacco, V.: Functional Design Errors in Digital Circuits: Diagnosis Correction and Repair. Springer (2008)Google Scholar
  9. 9.
    Darwiche, A.: A compiler for deterministic, decomposable negation normal form. In: Proc. of AAAI, pp. 627–634 (2002)Google Scholar
  10. 10.
    de Moura, L.M., Bjørner, N.: Satisfiability Modulo Theories: Introduction and Applications. Commun. ACM 54(9), 69–77 (2011)CrossRefGoogle Scholar
  11. 11.
    Gomes, C.P., Sabharwal, A., Selman, B.: Model counting: A new strategy for obtaining good bounds. In: Proc. of AAAI, pp. 54–61 (2006)Google Scholar
  12. 12.
    Gomes, C.P., Sabharwal, A., Selman, B.: Near-Uniform sampling of combinatorial spaces using XOR constraints. In: Proc. of NIPS, pp. 670–676 (2007)Google Scholar
  13. 13.
    Guralnik, E., Aharoni, M., Birnbaum, A.J., Koyfman, A.: Simulation-based verification of floating-point division. IEEE Trans. on Computers 60(2), 176–188 (2011)MathSciNetCrossRefGoogle Scholar
  14. 14.
    Jerrum, M.R., Valiant, L.G., Vazirani, V.V.: Random generation of combinatorial structures from a uniform distribution. Theoretical Computer Science 43(2-3), 169–188 (1986)MathSciNetCrossRefMATHGoogle Scholar
  15. 15.
    Kirkpatrick, S., Gelatt, C.D., Vecchi, M.P.: Optimization by simulated annealing. Science 220(4598), 671–680 (1983)MathSciNetCrossRefMATHGoogle Scholar
  16. 16.
    Kitchen, N., Kuehlmann, A.: Stimulus generation for constrained random simulation. In: Proc. of ICCAD, pp. 258–265 (2007)Google Scholar
  17. 17.
    Mansour, Y., Nisan, N., Tiwari, P.: The computational complexity of universal hashing. Theoretical Computer Science 107(1), 235–243 (2002)MathSciNetGoogle Scholar
  18. 18.
    Naveh, Y., Rimon, M., Jaeger, I., Katz, Y., Vinov, M., Marcus, E., Shurek, G.: Constraint-based random stimuli generation for hardware verification. In: Proc. of AAAI, pp. 1720–1727 (2006)Google Scholar
  19. 19.
    Roth, D.: On the hardness of approximate reasoning. Artificial Intelligence 82(1), 273–302 (1996)MathSciNetCrossRefGoogle Scholar
  20. 20.
    Sipser, M.: A complexity theoretic approach to randomness. In: Proc. of STOC, pp. 330–335 (1983)Google Scholar
  21. 21.
    Stockmeyer, L.: The complexity of approximate counting. In: Proc. of STOC, pp. 118–126 (1983)Google Scholar
  22. 22.
    Wei, W., Erenrich, J., Selman, B.: Towards efficient sampling: Exploiting random walk strategies. In: Proc. of AAAI, pp. 670–676 (2004)Google Scholar
  23. 23.
    Yuan, J., Aziz, A., Pixley, C., Albin, K.: Simplifying boolean constraint solving for random simulation-vector generation. IEEE Trans. on CAD of Integrated Circuits and Systems 23(3), 412–420 (2004)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Supratik Chakraborty
    • 1
  • Kuldeep S. Meel
    • 2
  • Moshe Y. Vardi
    • 2
  1. 1.Indian Institute of Technology BombayIndia
  2. 2.Department of Computer ScienceRice UniversityUSA

Personalised recommendations