skip to main content
research-article

Smten with satisfiability-based search

Published:15 October 2014Publication History
Skip Abstract Section

Abstract

Satisfiability (SAT) and Satisfiability Modulo Theories (SMT) have been used in solving a wide variety of important and challenging problems, including automatic test generation, model checking, and program synthesis. For these applications to scale to larger problem instances, developers cannot rely solely on the sophistication of SAT and SMT solvers to efficiently solve their queries; they must also optimize their own orchestration and construction of queries. We present Smten, a high-level language for orchestrating and constructing satisfiability-based search queries. We show that applications developed using Smten require significantly fewer lines of code and less developer effort to achieve results comparable to standard SMT-based tools.

Skip Supplemental Material Section

Supplemental Material

References

  1. S. Agarwal. Functional SMT solving: A new interface for programmers. Master's thesis, Indian Institute of Technology Kanpur, June 2012.Google ScholarGoogle Scholar
  2. C. Barrett, R. Sebastiani, S. A. Seshia, and C. Tinelli. Satisfiability modulo theories. In A. Biere, M. Heule, H. van Maaren, and T. Walsh, editors, Handbook of Satisfiability, pages 825--886. IOS Press, 2009.Google ScholarGoogle Scholar
  3. A. Biere, A. Cimatti, E. Clarke, and Y. Zhu. Symbolic model checking without BDDs. In W. R. Cleaveland, editor, Tools and Algorithms for the Construction and Analysis of Systems, volume 1579 of Lecture Notes in Computer Science, pages 193--207. Springer Berlin Heidelberg, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. G. Cabodi, P. Camurati, and M. Murciano. Automated abstraction by incremental refinement in interpolant-based model checking. In Proceedings of the 2008 IEEE/ACM International Conference on Computer-Aided Design, ICCAD '08, pages 129--136, Piscataway, NJ, USA, 2008. IEEE Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. C. Cadar, D. Dunbar, and D. Engler. KLEE: Unassisted and automatic generation of high-coverage tests for complex systems programs. In Proceedings of the 8th USENIX conference on Operating systems design and implementation, OSDI'08, pages 209--224, Berkeley, CA, USA, 2008. USENIX Association. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. A. Cheung, A. Solar-Lezama, and S. Madden. Using program synthesis for social recommendations. CoRR, abs/1208.2925, 2012.Google ScholarGoogle Scholar
  7. A. Cheung, A. Solar-Lezama, and S. Madden. Optimizing database-backed applications with query synthesis. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '13, pages 3--14, New York, NY, USA, 2013. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. S. A. Cook. The complexity of theorem-proving procedures. In Proceedings of the Third Annual ACM Symposium on Theory of Computing, STOC '71, pages 151--158, New York, NY, USA, 1971. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Davis and H. Putnam. A computing procedure for quantification theory. J. ACM, 7(3):201--215, July 1960. ISSN 0004-5411. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. Davis, G. Logemann, and D. Loveland. A machine program for theorem-proving. Commun. ACM, 5(7):394--397, July 1962. ISSN 0001-0782. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. L. de Moura and N. Bjørner. Z3: An efficient SMT solver. In C. Ramakrishnan and J. Rehof, editors, Tools and Algorithms for the Construction and Analysis of Systems, volume 4963 of Lecture Notes in Computer Science, pages 337--340. Springer Berlin / Heidelberg, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. B. Dutertre and L. D. Moura. The Yices SMT solver. 2006.Google ScholarGoogle Scholar
  13. L. Erkok. http://hackage.haskell.org/package/sbv-3.0, 2014.Google ScholarGoogle Scholar
  14. V. Ganesh and D. Dill. A decision procedure for bit-vectors and arrays. In W. Damm and H. Hermanns, editors, Computer Aided Verification, volume 4590 of Lecture Notes in Computer Science, pages 519--531. Springer Berlin / Heidelberg, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. T. Glasgow Haskell Compiler. http://www.haskell.org/ghc.Google ScholarGoogle Scholar
  16. M. Hanus (ed.). Curry: An integrated functional logic language (vers. 0.8.3). Available at http://www.curry-language.org, 2012.Google ScholarGoogle Scholar
  17. J. Hughes and J. ODonnell. Expressing and reasoning about non-deterministic functional programs. In K. Davis and J. Hughes, editors, Functional Programming, Workshops in Computing, pages 308--328. Springer London, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. HWMCC10. 2010 hardware model checking competition. http://fmv.jku.at/hwmcc10/ , 2010.Google ScholarGoogle Scholar
  19. M. Jarke and J. Koch. Query optimization in database systems. ACM Comput. Surv., 16(2):111--152, June 1984. ISSN 0360-0300. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. A. Kiezun, V. Ganesh, P. J. Guo, P. Hooimeijer, and M. D. Ernst. Hampi: A solver for string constraints. In Proceedings of the eighteenth international symposium on Software testing and analysis, ISSTA '09, pages 105--116, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. O. Kiselyov, C.-c. Shan, D. P. Friedman, and A. Sabry. Back-tracking, interleaving, and terminating monad transformers: (functional pearl). In Proceedings of the Tenth ACM SIGPLAN International Conference on Functional Programming, ICFP '05, pages 192--203, New York, NY, USA, 2005. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. A. Köksal, V. Kuncak, and P. Suter. Scala to the power of Z3: Integrating SMT and programming. In N. Bjrner and V. Sofronie-Stokkermans, editors, Automated Deduction CADE-23, volume 6803 of Lecture Notes in Computer Science, pages 400--406. Springer Berlin / Heidelberg, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. A. S. Köksal, V. Kuncak, and P. Suter. Constraints as control. In Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, POPL '12, pages 151--164, New York, NY, USA, 2012. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. V. Kuncak, M. Mayer, R. Piskac, and P. Suter. Complete functional synthesis. SIGPLAN Not., 45(6):316--329, June 2010. ISSN 0362--1340. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. D. Leijen and E. Meijer. Domain specific embedded compilers. In Proceedings of the 2nd conference on Domain-specific languages, DSL '99, pages 109--122, New York, NY, USA, 1999. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. M. Liu, Z. G. Ives, and B. T. Loo. Query optimization as a datalog program.Google ScholarGoogle Scholar
  27. S. Marlow and Others. Haskell 2010 language report. http://www.haskell.org/onlinereport/haskell2010, Apr. 2010.Google ScholarGoogle Scholar
  28. K. McMillan. Interpolation and SAT-based model checking. In J. Hunt, Warren, A. and F. Somenzi, editors, Computer Aided Verification, volume 2725 of Lecture Notes in Computer Science, pages 1--13. Springer Berlin Heidelberg, 2003.Google ScholarGoogle ScholarCross RefCross Ref
  29. D. G. Murray, M. Isard, and Y. Yu. Steno: Automatic optimization of declarative queries. SIGPLAN Not., 46(6): 121--131, June 2011. ISSN 0362-1340. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. T. Schrijvers, P. Stuckey, and P. Wadler. Monadic constraint programming. J. Funct. Program., 19(6):663--697, Nov. 2009. ISSN 0956-7968. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. M. Sheeran, S. Singh, and G. Stålmarck. Checking safety properties using induction and a SAT-solver. In Proceedings of the Third International Conference on Formal Methods in Computer-Aided Design, FMCAD '00, pages 108--125, London, UK, UK, 2000. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. A. Solar-Lezama. Program Synthesis by Sketching. PhD thesis, University of California at Berkeley, Berkeley, CA, USA, 2008. AAI3353225. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. A. Solar-Lezama, L. Tancau, R. Bodik, S. Seshia, and V. Saraswat. Combinatorial sketching for finite programs. In Proceedings of the 12th international conference on Architectural support for programming languages and operating systems, ASPLOS-XII, pages 404--415, New York, NY, USA, 2006. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. D. Stewart. http://hackage.haskell.org/package/yicespainless-0.1.2, Jan. 2011.Google ScholarGoogle Scholar
  35. P. Suter, A. S. Köksal, and V. Kuncak. Satisfiability modulo recursive programs. In Proceedings of the 18th international conference on Static analysis, SAS'11, pages 298--315, Berlin, Heidelberg, 2011. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. E. Torlak and R. Bodik. A lightweight symbolic virtual machine for solver-aided host languages. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '14, pages 530--541, New York, NY, USA, 2014. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. R. Uhler and N. Dave. Smten: Automatic translation of high-level symbolic computations into SMT queries. In N. Sharygina and H. Veith, editors, Computer Aided Verification, volume 8044 of Lecture Notes in Computer Science, pages 678--683. Springer Berlin Heidelberg, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. D. Vytiniotis, S. Peyton Jones, K. Claessen, and D. Rosén. HALO: haskell to logic through denotational semantics. In Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages, POPL '13, pages 431--442, New York, NY, USA, 2013. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. P. Wadler. Comprehending monads. Mathematical Structures in Computer Science, 2:461--493, 12 1992.Google ScholarGoogle ScholarCross RefCross Ref
  40. K. Yessenov, Z. Xu, and A. Solar-Lezama. Data-driven synthesis for object-oriented frameworks. In OOPSLA, pages 65--82, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Yices2. http://yices.csl.sri.com/index.shtml, Aug. 2012.Google ScholarGoogle Scholar

Index Terms

  1. Smten with satisfiability-based search

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image ACM SIGPLAN Notices
          ACM SIGPLAN Notices  Volume 49, Issue 10
          OOPSLA '14
          October 2014
          907 pages
          ISSN:0362-1340
          EISSN:1558-1160
          DOI:10.1145/2714064
          • Editor:
          • Andy Gill
          Issue’s Table of Contents
          • cover image ACM Conferences
            OOPSLA '14: Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications
            October 2014
            946 pages
            ISBN:9781450325851
            DOI:10.1145/2660193

          Copyright © 2014 ACM

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 15 October 2014

          Check for updates

          Qualifiers

          • research-article

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!