Papers
Topics
Authors
Recent
Gemini 2.5 Flash
Gemini 2.5 Flash
169 tokens/sec
GPT-4o
7 tokens/sec
Gemini 2.5 Pro Pro
45 tokens/sec
o3 Pro
4 tokens/sec
GPT-4.1 Pro
38 tokens/sec
DeepSeek R1 via Azure Pro
28 tokens/sec
2000 character limit reached

An Eager Satisfiability Modulo Theories Solver for Algebraic Datatypes (2310.12234v1)

Published 18 Oct 2023 in cs.LO, cs.AI, and cs.PL

Abstract: Algebraic data types (ADTs) are a construct classically found in functional programming languages that capture data structures like enumerated types, lists, and trees. In recent years, interest in ADTs has increased. For example, popular programming languages, like Python, have added support for ADTs. Automated reasoning about ADTs can be done using satisfiability modulo theories (SMT) solving, an extension of the Boolean satisfiability problem with constraints over first-order structures. Unfortunately, SMT solvers that support ADTs do not scale as state-of-the-art approaches all use variations of the same \emph{lazy} approach. In this paper, we present an SMT solver that takes a fundamentally different approach, an \emph{eager} approach. Specifically, our solver reduces ADT queries to a simpler logical theory, uninterpreted functions (UF), and then uses an existing solver on the reduced query. We prove the soundness and completeness of our approach and demonstrate that it outperforms the state-of-theart on existing benchmarks, as well as a new, more challenging benchmark set from the planning domain.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (41)
  1. cvc5: A Versatile and Industrial-Strength SMT Solver. In Fisman, D.; and Rosu, G., eds., Tools and Algorithms for the Construction and Analysis of Systems, 415–442. Cham: Springer International Publishing. ISBN 978-3-030-99524-9.
  2. The SMT-LIB Initiative and the Rise of SMT: (HVC 2010 Award Talk). In Hardware and Software: Verification and Testing: 6th International Haifa Verification Conference, HVC 2010, Haifa, Israel, October 4-7, 2010. Revised Selected Papers 6, 3–3. Springer.
  3. The SMT-LIB Standard Version 2.6. https://smtlib.cs.uiowa.edu/papers/smt-lib-reference-v2.6-r2017-07-18.pdf.
  4. Satisfiability Modulo Theories. In Biere, A.; Heule, M.; van Maaren, H.; and Walsh, T., eds., Handbook of Satisfiability, chapter 33, 1267–1329. IOS Press, second edition.
  5. An Abstract Decision Procedure for Satisfiability in the Theory of Recursive Data Types. Electronic Notes in Theoretical Computer Science, 174(8): 23–37. Combined Proceedings of the Fourth Workshop on Pragmatics of Decision Procedures in Automated Reasoning (PDPAR 2006) and the First International Workshop on Probabilistic Automata and Logics (PaUL 2006).
  6. Symbolic model checking without BDDs. In Tools and Algorithms for the Construction and Analysis of Systems: 5th International Conference, TACAS’99 Held as Part of the Joint European Conferences on Theory and Practice of Software, ETAPS’99 Amsterdam, The Netherlands, March 22–28, 1999 Proceedings 5, 193–207. Springer.
  7. An SMT-LIB format for sequences and regular expressions. SMT, 12: 76–86.
  8. Bouvier, P. 2021. The VLSAT-3 Benchmark Suite. INRIA Technical Report 516.
  9. Boolector: An Efficient SMT Solver for Bit-Vectors and Arrays. In Kowalewski, S.; and Philippou, A., eds., Tools and Algorithms for the Construction and Analysis of Systems, 174–177. Berlin, Heidelberg: Springer Berlin Heidelberg. ISBN 978-3-642-00768-2.
  10. Automatic verification of pipelined microprocessor control. In Computer Aided Verification: 6th International Conference, CAV’94 Stanford, California, USA, June 21–23, 1994 Proceedings 6, 68–80. Springer.
  11. Burstall, R. M. 1977. Design considerations for a functional programming language. The software revolution.
  12. EXE: Automatically generating inputs of death. ACM Transactions on Information and System Security (TISSEC), 12(2): 1–38.
  13. SMTInterpol: An Interpolating SMT Solver. In Donaldson, A.; and Parker, D., eds., Model Checking Software, 248–254. Berlin, Heidelberg: Springer Berlin Heidelberg. ISBN 978-3-642-31759-0.
  14. Bounded model checking using satisfiability solving. Formal methods in system design, 19: 7–34.
  15. Removing Algebraic Data Types from Constrained Horn Clauses Using Difference Predicates. In Peltier, N.; and Sofronie-Stokkermans, V., eds., Automated Reasoning, 83–102. Cham: Springer International Publishing. ISBN 978-3-030-51074-9.
  16. Z3: An Efficient SMT Solver. In Ramakrishnan, C. R.; and Rehof, J., eds., Tools and Algorithms for the Construction and Analysis of Systems, 337–340. Berlin, Heidelberg: Springer Berlin Heidelberg. ISBN 978-3-540-78800-3.
  17. Ershov, A. P. 1958. On Programming of Arithmetic Operations. Commun. ACM, 1(8): 3–6.
  18. Goetz, B. 2022. JEP 360: Sealed Classes (Preview). https://openjdk.org/jeps/360. Accessed: 2023-08-15.
  19. On the complexity of blocks-world planning. Artificial intelligence, 56(2-3): 223–254.
  20. Hoare, C. A. R. 1975. Recursive data structures. International Journal of Computer & Information Sciences, 4(2): 105–132.
  21. Deciding and Interpolating Algebraic Datatypes by Reduction.
  22. A history of Haskell: being lazy with class. In Proceedings of the third ACM SIGPLAN conference on History of programming languages, 12–1.
  23. Safe systems programming in Rust. Communications of the ACM, 64(4): 144–152.
  24. Pushing the envelope: Planning, propositional logic, and stochastic search. In Proceedings of the national conference on artificial intelligence, 1194–1201.
  25. Planning as Satisfiability. In ECAI, volume 92, 359–363. Citeseer.
  26. Beyond the elementary representations of program invariants over algebraic data types.
  27. Coming to Terms with Quantified Reasoning. In Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, POPL ’17, 260–270. New York, NY, USA: Association for Computing Machinery. ISBN 9781450346603.
  28. Lubarsky, R. 2008. Ian Chiswell and Wilfrid Hodges. Mathematical logic. Oxford Texts in Logic, vol. 3. Oxford University Press, Oxford, England, 2007, 250 pp. Bulletin of Symbolic Logic, 14(2): 265–267.
  29. Milner, R. 1997. The definition of standard ML: revised. MIT press.
  30. Oppen, D. C. 1980. Reasoning About Recursively Defined Data Structures. J. ACM, 27(3): 403–411.
  31. An Improved Unrolling-Based Decision Procedure for Algebraic Data Types. In Cohen, E.; and Rybalchenko, A., eds., Verified Software: Theories, Tools, Experiments, 129–148. Berlin, Heidelberg: Springer Berlin Heidelberg. ISBN 978-3-642-54108-7.
  32. A Decision Procedure for (Co)datatypes in SMT Solvers. Journal of Automated Reasoning, 58(3): 341–362.
  33. Datatypes with Shared Selectors. In Galmiche, D.; Schulz, S.; and Sebastiani, R., eds., Automated Reasoning, 591–608. Cham: Springer International Publishing. ISBN 978-3-319-94205-6.
  34. An SMT-LIB theory of binary floating-point arithmetic. In International Workshop on Satisfiability Modulo Theories (SMT), 151.
  35. Rungta, N. 2022. A billion SMT queries a day. In International Conference on Computer Aided Verification, 3–18. Springer.
  36. Russell, S. J. 2010. Artificial intelligence a modern approach. Pearson Education, Inc.
  37. Salgado, P. G. 2023. What’s New In Python 3.10. https://docs.python.org/3.10/whatsnew/3.10.html#summary-release-highlights. Accessed: 2023-08-15.
  38. Sebastiani, R. 2007. Lazy Satisfiability Modulo Theories. 3: 141–224.
  39. Sussman, G. J. 1973. A computational model of skill acquisition.
  40. Decision Procedures for Algebraic Data Types with Abstractions. SIGPLAN Not., 45(1): 199–210.
  41. Winograd, T. 1971. Procedures as a representation for data in a computer program for understanding natural language.
Citations (1)

Summary

We haven't generated a summary for this paper yet.