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.
Supplemental Material
Available for Download
- S. Agarwal. Functional SMT solving: A new interface for programmers. Master's thesis, Indian Institute of Technology Kanpur, June 2012.Google Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- A. Cheung, A. Solar-Lezama, and S. Madden. Using program synthesis for social recommendations. CoRR, abs/1208.2925, 2012.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- M. Davis and H. Putnam. A computing procedure for quantification theory. J. ACM, 7(3):201--215, July 1960. ISSN 0004-5411. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- B. Dutertre and L. D. Moura. The Yices SMT solver. 2006.Google Scholar
- L. Erkok. http://hackage.haskell.org/package/sbv-3.0, 2014.Google Scholar
- 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 Scholar
Digital Library
- T. Glasgow Haskell Compiler. http://www.haskell.org/ghc.Google Scholar
- M. Hanus (ed.). Curry: An integrated functional logic language (vers. 0.8.3). Available at http://www.curry-language.org, 2012.Google Scholar
- 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 Scholar
Digital Library
- HWMCC10. 2010 hardware model checking competition. http://fmv.jku.at/hwmcc10/ , 2010.Google Scholar
- M. Jarke and J. Koch. Query optimization in database systems. ACM Comput. Surv., 16(2):111--152, June 1984. ISSN 0360-0300. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- V. Kuncak, M. Mayer, R. Piskac, and P. Suter. Complete functional synthesis. SIGPLAN Not., 45(6):316--329, June 2010. ISSN 0362--1340. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- M. Liu, Z. G. Ives, and B. T. Loo. Query optimization as a datalog program.Google Scholar
- S. Marlow and Others. Haskell 2010 language report. http://www.haskell.org/onlinereport/haskell2010, Apr. 2010.Google Scholar
- 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 Scholar
Cross Ref
- 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 Scholar
Digital Library
- T. Schrijvers, P. Stuckey, and P. Wadler. Monadic constraint programming. J. Funct. Program., 19(6):663--697, Nov. 2009. ISSN 0956-7968. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- A. Solar-Lezama. Program Synthesis by Sketching. PhD thesis, University of California at Berkeley, Berkeley, CA, USA, 2008. AAI3353225. Google Scholar
Digital Library
- 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 Scholar
Digital Library
- D. Stewart. http://hackage.haskell.org/package/yicespainless-0.1.2, Jan. 2011.Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- P. Wadler. Comprehending monads. Mathematical Structures in Computer Science, 2:461--493, 12 1992.Google Scholar
Cross Ref
- K. Yessenov, Z. Xu, and A. Solar-Lezama. Data-driven synthesis for object-oriented frameworks. In OOPSLA, pages 65--82, 2011. Google Scholar
Digital Library
- Yices2. http://yices.csl.sri.com/index.shtml, Aug. 2012.Google Scholar
Index Terms
Smten with satisfiability-based search
Recommendations
Smten with satisfiability-based search
OOPSLA '14: Proceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & ApplicationsSatisfiability (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 ...
A satisfiability procedure for quantified boolean formulae
The renesse issue on satisfiabilityWe present a satisfiability tester QSAT for quantified Boolean formulae and a restriction QSATCNF of QSAT to unquantified conjunctive normal form formulae. QSAT makes use of procedures which replace subformulae of a formula by equivalent formulae. By a ...
Modelling and solving temporal reasoning as propositional satisfiability
Representing and reasoning about time dependent information is a key research issue in many areas of computer science and artificial intelligence. One of the best known and widely used formalisms for representing interval-based qualitative temporal ...







Comments