skip to main content
research-article
Open Access

Unrealizability Logic

Published:11 January 2023Publication History
Skip Abstract Section

Abstract

We consider the problem of establishing that a program-synthesis problem is unrealizable (i.e., has no solution in a given search space of programs). Prior work on unrealizability has developed some automatic techniques to establish that a problem is unrealizable; however, these techniques are all black-box, meaning that they conceal the reasoning behind why a synthesis problem is unrealizable.

In this paper, we present a Hoare-style reasoning system, called unrealizability logic for establishing that a program-synthesis problem is unrealizable. To the best of our knowledge, unrealizability logic is the first proof system for overapproximating the execution of an infinite set of imperative programs. The logic provides a general, logical system for building checkable proofs about unrealizability. Similar to how Hoare logic distills the fundamental concepts behind algorithms and tools to prove the correctness of programs, unrealizability logic distills into a single logical system the fundamental concepts that were hidden within prior tools capable of establishing that a program-synthesis problem is unrealizable.

References

  1. Krzysztof R Apt. 1981. Ten years of Hoare’s logic: A survey—Part I. ACM Transactions on Programming Languages and Systems (TOPLAS), 3, 4 (1981), 431–483. https://doi.org/10.1145/357146.357150 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Krzysztof R Apt and Ernst-Rüdiger Olderog. 2019. Fifty years of Hoare’s logic. Formal Aspects of Computing, 31, 6 (2019), 751–807. https://doi.org/10.1007/s00165-019-00501-3 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Michael R Clarkson and Fred B Schneider. 2010. Hyperproperties. Journal of Computer Security, 18, 6 (2010), 1157–1210. https://doi.org/10.1109/CSF.2008.7 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Martin Davis, Kurt Godel, and Stephen C Kleene. 1990. On Undecidable Propositions of Formal Mathematical Systems. PostscriptumIntroductory Note to 1934. Journal of Symbolic Logic, 55, 1 (1990). Google ScholarGoogle Scholar
  5. Edsko de Vries and Vasileios Koutavas. 2011. Reverse Hoare Logic. In Software Engineering and Formal Methods, Gilles Barthe, Alberto Pardo, and Gerardo Schneider (Eds.). Springer Berlin Heidelberg, Berlin, Heidelberg. 155–171. isbn:978-3-642-24690-6 https://doi.org/10.1007/978-3-642-24690-6_12 Google ScholarGoogle ScholarCross RefCross Ref
  6. Azadeh Farzan, Danya Lette, and Victor Nicolet. 2022. Recursion synthesis with unrealizability witnesses. In Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation. 244–259. https://doi.org/10.1145/3519939.3523726 Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Yu Feng, Ruben Martins, Osbert Bastani, and Isil Dillig. 2018. Program synthesis using conflict-driven learning. ACM SIGPLAN Notices, 53, 4 (2018), 420–435. https://doi.org/10.1145/3192366.3192382 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. John K Feser, Swarat Chaudhuri, and Isil Dillig. 2015. Synthesizing data structure transformations from input-output examples. ACM SIGPLAN Notices, 50, 6 (2015), 229–239. https://doi.org/10.1145/2737924.2737977 Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Robert W Floyd. 1993. Assigning meanings to programs. In Program Verification. Springer, 65–81. https://doi.org/10.1007/978-94-011-1793-7_4 Google ScholarGoogle ScholarCross RefCross Ref
  10. Sumit Gulwani. 2011. Automating string processing in spreadsheets using input-output examples. ACM Sigplan Notices, 46, 1 (2011), 317–330. https://doi.org/10.1145/1926385.1926423 Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Charles Antony Richard Hoare. 1969. An axiomatic basis for computer programming. Commun. ACM, 12, 10 (1969), 576–580. https://doi.org/10.1145/363235.363259 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Qinheping Hu, Jason Breck, John Cyphert, Loris D’Antoni, and Thomas Reps. 2019. Proving unrealizability for syntax-guided synthesis. In International Conference on Computer Aided Verification. 335–352. https://doi.org/10.1007/978-3-030-25540-4_18 Google ScholarGoogle ScholarCross RefCross Ref
  13. Qinheping Hu, John Cyphert, Loris D’Antoni, and Thomas Reps. 2020. Exact and approximate methods for proving unrealizability of syntax-guided synthesis problems. In Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation. 1128–1142. https://doi.org/10.1145/3385412.3385979 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Qinheping Hu and Loris D’Antoni. 2018. Syntax-guided synthesis with quantitative syntactic objectives. In International Conference on Computer Aided Verification. 386–403. https://doi.org/10.1007/978-3-319-96145-3_21 Google ScholarGoogle ScholarCross RefCross Ref
  15. Marius Kamp and Michael Philippsen. 2021. Approximate Bit Dependency Analysis to Identify Program Synthesis Problems as Infeasible. In Verification, Model Checking, and Abstract Interpretation - 22nd International Conference, VMCAI 2021, Copenhagen, Denmark, January 17-19, 2021, Proceedings, Fritz Henglein, Sharon Shoham, and Yakir Vizel (Eds.) (Lecture Notes in Computer Science, Vol. 12597). Springer, 353–375. https://doi.org/10.1007/978-3-030-67067-2_16 Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Jinwoo Kim, Loris D’Antoni, and Thomas Reps. 2022. Unrealizability Logic. arXiv preprint arXiv:2211.07117. Google ScholarGoogle Scholar
  17. Jinwoo Kim, Qinheping Hu, Loris D’Antoni, and Thomas Reps. 2021. Semantics-guided synthesis. Proceedings of the ACM on Programming Languages, 5, POPL (2021), 1–32. https://doi.org/10.1145/3410258 Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Anvesh Komuravelli, Arie Gurfinkel, and Sagar Chaki. 2016. SMT-based model checking for recursive programs. Formal Methods in System Design, 48, 3 (2016), 175–205. https://doi.org/10.1007/978-3-319-08867-9_2 Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. John McCarthy. 1993. Towards a mathematical science of computation. In Program Verification. Springer, 35–56. https://doi.org/10.1007/978-94-011-1793-7_2 Google ScholarGoogle ScholarCross RefCross Ref
  20. Sergey Mechtaev, Alberto Griggio, Alessandro Cimatti, and Abhik Roychoudhury. 2018. Symbolic execution with existential second-order constraints. In Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. 389–399. https://doi.org/10.1145/3236024.3236049 Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Ulrich Möncke and Reinhard Wilhelm. 1991. Grammar Flow Analysis. In Attribute Grammars, Applications and Systems, International Summer School SAGA, Prague, Czechoslovakia, June 4-13, 1991, Proceedings, Henk Alblas and Borivoj Melichar (Eds.) (Lecture Notes in Computer Science, Vol. 545). Springer, 151–186. https://doi.org/10.1007/3-540-54572-7_6 Google ScholarGoogle ScholarCross RefCross Ref
  22. Tobias Nipkow. 2002. Hoare logics for recursive procedures and unbounded nondeterminism. In International Workshop on Computer Science Logic. 103–119. https://doi.org/10.1007/3-540-45793-3_8 Google ScholarGoogle ScholarCross RefCross Ref
  23. Peter W O’Hearn. 2019. Incorrectness logic. Proceedings of the ACM on Programming Languages, 4, POPL (2019), 1–32. https://doi.org/10.1145/3371078 Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. David von Oheimb. 1999. Hoare logic for mutual recursion and local variables. In International Conference on Foundations of Software Technology and Theoretical Computer Science. 168–180. https://doi.org/10.1007/3-540-46691-6_13 Google ScholarGoogle ScholarCross RefCross Ref
  25. Phitchaya Mangpo Phothilimthana, Archibald Samuel Elliott, An Wang, Abhinav Jangda, Bastian Hagedorn, Henrik Barthels, Samuel J Kaufman, Vinod Grover, Emina Torlak, and Rastislav Bodik. 2019. Swizzle inventor: data movement synthesis for GPU kernels. In Proceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems. 65–78. https://doi.org/10.1145/3297858.3304059 Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Andrew Reynolds, Morgan Deters, Viktor Kuncak, Cesare Tinelli, and Clark Barrett. 2015. Counterexample-guided quantifier instantiation for synthesis in SMT. In International Conference on Computer Aided Verification. 198–216. https://doi.org/10.1007/978-3-319-21668-3_12 Google ScholarGoogle ScholarCross RefCross Ref
  27. Marcelo Sousa and Isil Dillig. 2016. Cartesian hoare logic for verifying k-safety properties. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation. 57–69. https://doi.org/10.1145/2908080.2908092 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Glynn Winskel. 1993. The formal semantics of programming languages: an introduction. MIT press. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Unrealizability Logic

        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 Proceedings of the ACM on Programming Languages
          Proceedings of the ACM on Programming Languages  Volume 7, Issue POPL
          January 2023
          2196 pages
          EISSN:2475-1421
          DOI:10.1145/3554308
          • Editor:
          Issue’s Table of Contents

          Copyright © 2023 Owner/Author

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 11 January 2023
          Published in pacmpl Volume 7, Issue POPL

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
        • Article Metrics

          • Downloads (Last 12 months)306
          • Downloads (Last 6 weeks)35

          Other Metrics

        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!