skip to main content
research-article
Open Access

Towards a unified proof framework for automated fixpoint reasoning using matching logic

Published:13 November 2020Publication History
Skip Abstract Section

Abstract

Automation of fixpoint reasoning has been extensively studied for various mathematical structures, logical formalisms, and computational domains, resulting in specialized fixpoint provers for heaps, for streams, for term algebras, for temporal properties, for program correctness, and for many other formal systems and inductive and coinductive properties. However, in spite of great theoretical and practical interest, there is no unified framework for automated fixpoint reasoning. Although several attempts have been made, there is no evidence that such a unified framework is possible, or practical. In this paper, we propose a candidate based on matching logic, a formalism recently shown to theoretically unify the above mentioned formal systems. Unfortunately, the (Knaster-Tarski) proof rule of matching logic, which enables inductive reasoning, is not syntax-driven. Worse, it can be applied at any step during a proof, making automation seem hopeless. Inspired by recent advances in automation of inductive proofs in separation logic, we propose an alternative proof system for matching logic, which is amenable for automation. We then discuss our implementation of it, which although not superior to specialized state-of-the-art automated provers for specific domains, we believe brings some evidence and hope that a unified framework for automated reasoning is not out of reach.

Skip Supplemental Material Section

Supplemental Material

Auxiliary Presentation Video

Automation of fixpoint reasoning has been extensively studied for various mathematical structures, logical formalisms, and computational domains, resulting in numerous specialized fixpoint provers. However, in spite of great theoretical and practical interest, there is no unified framework for automated fixpoint reasoning. In this paper, we propose a candidate based on matching logic, which is a unifying logic for fixpoints. Unfortunately, the existing proof rules of matching logic are not syntax-driven. Worse, they can be applied at any step during a proof, making automation seem hopeless. Inspired by recent advances in automation of inductive proofs in separation logic, we propose an alternative proof system that is amenable to automation. We then discuss its implementation, which although not superior to specialized state-of-the-art automated provers for specific domains, we believe brings some evidence and hope that a unified framework for automated reasoning is not out of reach.

References

  1. David Baelde, Dale Miller, and Zachary Snow. 2010. Focused inductive theorem proving. In Proceedings of the 5th International Joint Conference on Automated Reasoning (IJCAR'10). Springer, Edinburgh, UK, 278-292. https://doi.org/10.1007/978-3-642-14203-1_24 Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Clark Barrett, Christopher L. Conway, Morgan Deters, Liana Hadarean, Dejan Jovanović, Tim King, Andrew Reynolds, and Cesare Tinelli. 2011. CVC4. In Proceedings of the 23rd International Conference on Computer Aided Verification (CAV'11). Springer, Berlin, Heidelberg, 171-177.Google ScholarGoogle ScholarCross RefCross Ref
  3. Josh Berdine, Cristiano Calcagno, and Peter W. O'Hearn. 2004. A decidable fragment of separation logic. In Proceedings of the 24th International Conference on Foundations of Software Technology and Theoretical Computer Science (FSTTCS'04). Springer, Heidelberg, Germany, 97-109. https://doi.org/10.1007/978-3-540-30538-5_9 Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Josh Berdine, Cristiano Calcagno, and Peter W. O'Hearn. 2005. Symbolic execution with separation logic. In Proceedings of the 3rd Asian conference on Programming Languages and Systems (APLAS'05). Springer, Tsukuba, Japan, 52-68. https: //doi.org/10.1007/11575467_5 Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Nikolaj Bjørner and Joe Hendrix. 2009. Linear functional fixed-points. In Proceedings of the 21st International Conference on Computer Aided Verification (CAV'09). Springer, Grenoble, France, 124-139. https://doi.org/10.1007/978-3-642-02658-4_13 Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Patrick Blackburn, Maarten de Rijke, and Yde Venema. 2001. Modal logic. Cambridge University Press, New York, NY, USA.Google ScholarGoogle Scholar
  7. Denis Bogdănaş and Grigore Roşu. 2015. K-Java: A complete semantics of Java. In Proceedings of the 42nd Symposium on Principles of Programming Languages (POPL'15). ACM, Mumbai, India, 445-456. https://doi.org/10.1145/2676726.2676982 Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. William W. Boone. 1958. The word problem. Proceedings of the National Academy of Sciences 44, 10 ( 1958 ), 1061-1065. https://doi.org/10.1073/pnas.44.10.1061 Google ScholarGoogle ScholarCross RefCross Ref
  9. Ahmed Bouajjani, Cezara Drăgoi, Constantin Enea, and Mihaela Sighireanu. 2009. A logic-based framework for reasoning about composite data structures. In Proceedings of the 20th International Conference on Concurrency Theory (CONCUR'09). Springer, Bologna, Italy, 178-195. https://doi.org/10.1007/978-3-642-04081-8_13 Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. James Brotherston, Dino Distefano, and Rasmus Lerchedahl Petersen. 2011. Automated cyclic entailment proofs in separation logic. In Proceedings of the 23rd International Conference on Automated Deduction (CAV'11). Springer, Utah, USA, 131-146.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. James Brotherston, Carsten Fuhs, Juan A. Navarro Pérez, and Nikos Gorogiannis. 2014. A Decision Procedure for Satisfiability in Separation Logic with Inductive Predicates. In Proceedings of the Joint Meeting of the Twenty-Third EACSL Annual Conference on Computer Science Logic ( CSL) and the Twenty-Ninth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS) (Vienna, Austria) (CSL-LICS '14). ACM, New York, NY, USA, Article 25, 10 pages. https://doi.org/10.1145/ 2603088.2603091 Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. James Brotherston, Nikos Gorogiannis, and Rasmus L. Petersen. 2012. A generic cyclic theorem prover. In Programming Languages and Systems, Ranjit Jhala and Atsushi Igarashi (Eds.). Springer, Kyoto, Japan, 350-367.Google ScholarGoogle Scholar
  13. James Brotherston and Max Kanovich. 2014. Undecidability of propositional separation logic and its neighbours. J. ACM 61, 2, Article 14 ( April 2014 ), 43 pages. https://doi.org/10.1145/2542667 Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Xiaohong Chen, Dorel Lucanu, and Grigore Roşu. 2020a. Initial algebra semantics in matching logic. Technical Report http://hdl.handle.net/2142/107781. University of Illinois at Urbana-Champaign.Google ScholarGoogle Scholar
  15. Xiaohong Chen and Grigore Roşu. 2019. Matching-logic. In Proceedings of the 34th Annual ACM/IEEE Symposium on Logic in Computer Science (LICS'19). ACM, Vancouver, Canada, 1-13.Google ScholarGoogle Scholar
  16. Xiaohong Chen and Grigore Roşu. 2020. A general approach to define binders using matching logic. In Proceedings of the 25th ACM SIGPLAN International Conference on Functional Programming (ICFP'20). ACM/IEEE.Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Xiaohong Chen, Minh-Thai Trinh, Nishant Rodrigues, Lucas Peña, and Grigore Roşu. 2020b. Towards a unified proof framework for automated fixpoint reasoning using matching logic. Technical Report. University of Illinois at UrbanaChampaign. http://hdl.handle. net/2142/108369Google ScholarGoogle Scholar
  18. Wei-Ngan Chin, Cristina David, Huu Hai Nguyen, and Shengchao Qin. 2012. Automated verification of shape, size and bag properties via user-defined predicates in separation logic. Science of Computer Programming 77, 9 (Aug. 2012 ), 1006-1036. https://doi.org/10.1016/j.scico. 2010. 07.004 Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Duc-Hiep Chu, Joxan Jafar, and Minh-Thai Trinh. 2015. Automatic induction proofs of data-structures in imperative programs. In Proceedings of the 36th Annual ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'15). ACM, Portland Oregon, 457-466. https://doi.org/10.1145/2737924.2737984 Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Ernie Cohen, Markus Dahlweid, Mark Hillebrand, Dirk Leinenbach, Michał Moskal, Thomas Santen, Wolfram Schulte, and Stephan Tobies. 2009. VCC: A practical system for verifying concurrent C. In Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics (TPHOLs'09). Springer, Munich, Germany, 23-42. https://doi.org/ 10.1007/978-3-642-03359-9 Google ScholarGoogle ScholarCross RefCross Ref
  21. Andrei Ştefănescu, Daejun Park, Shijiao Yuwen, Yilong Li, and Grigore Roşu. 2016. Semantics-based program verifiers for all languages. In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'16). ACM, Amsterdam, The Netherlands, 74-91. https://doi.org/10.1145/ 2983990.2984027 Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Leonardo De Moura and Nikolaj Bjørner. 2008. Z3: An eficient SMT solver. In Proceedings of the 14th International conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'08). Springer, Budapest, Hungary, 337-340. https://doi.org/10.1007/978-3-540-78800-3_24 Google ScholarGoogle ScholarCross RefCross Ref
  23. Constantin Enea, Ondřej Lengál, Mihaela Sighireanu, and Tomáš Vojnar. 2017. Compositional entailment checking for a fragment of separation logic. Formal Methods in System Design 51, 3 (Dec. 2017 ), 575-607. https://doi.org/10.1007/s10703-017-0289-4 Google ScholarGoogle ScholarCross RefCross Ref
  24. Zoltán Ésik. 1997. Completeness of Park induction. Theoretical Computer Science 177, 1 ( 1997 ), 217-283. https://doi.org/10. 1016/S0304-3975 ( 96 ) 00240-X Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Robert Goldblatt. 1992. Logics of Time and Computation (2. ed.). Number 7 in CSLI Lecture Notes. Center for the Study of Language and Information, Stanford, CA.Google ScholarGoogle Scholar
  26. Yuri Gurevich and Saharon Shelah. 1985. Fixed-point extensions of first-order logic. In Proceedings of the 26th Annual Symposium on Foundations of Computer Science (SFCS'85). IEEE, Portland, OR, 346-353.Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Chris Hathhorn, Chucky Ellison, and Grigore Roşu. 2015. Defining the undefinedness of C. In Proceedings of the 36th annual ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'15). ACM, Portland Oregon, 336-345. https://doi.org/10.1145/2813885.2737979 Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Everett Hildenbrandt, Manasvi Saxena, Xiaoran Zhu, Nishant Rodrigues, Philip Daian, Dwight Guth, Brandon Moore, Yi Zhang, Daejun Park, Andrei Ştefănescu, and Grigore Roşu. 2018. KEVM: A complete semantics of the Ethereum virtual machine. In Proceedings of the 2018 IEEE Computer Security Foundations Symposium (CSF'18). IEEE, Oxford, UK, 204-217. http://jellopaper.org.Google ScholarGoogle ScholarCross RefCross Ref
  29. C. A. R. Hoare. 1969. An axiomatic basis for computer programming. Commun. ACM 12, 10 (Oct. 1969 ), 576-580. https: //doi.org/10.1145/363235.363259 Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Gerard J. Holzmann. 1997. The model checker SPIN. IEEE Trans. Softw. Eng. 23, 5 ( 1997 ), 279-295. https://doi.org/10.1109/ 32.588521 Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Radu Iosif, Adam Rogalewicz, and Jiri Simacek. 2013. The tree width of separation logic with recursive definitions. In Proceedings of the 24th International Conference on Automated Deduction (CADE'13). Springer, New York, USA, 21-38. https://doi.org/10.1007/978-3-642-38574-2_2 Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Bart Jacobs, Jan Smans, and Frank Piessens. 2010. A quick tour of the VeriFast program verifier. In Proceedings of the 8th Asian Symposium of Programming Languages and Systems (APLAS'10). Springer, Shanghai, China, 304-311. https: //doi.org/10.1007/978-3-642-17164-2 Google ScholarGoogle ScholarCross RefCross Ref
  33. Jens Katelaan, Christoph Matheja, and Florian Zuleger. 2019. Efective Entailment Checking for Separation Logic with Inductive Definitions. In Tools and Algorithms for the Construction and Analysis of Systems, Tomáš Vojnar and Lijun Zhang (Eds.). Springer International Publishing, Cham, 319-336.Google ScholarGoogle Scholar
  34. Laura Kovács, Simon Robillard, and Andrei Voronkov. 2017. Coming to terms with quantified reasoning. In Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages (Paris, France) (POPL 2017 ). Association for Computing Machinery, New York, NY, USA, 260-270. https://doi.org/10.1145/3009837.3009887 Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Dexter Kozen. 1982. Results on the propositional-calculus. In Proceedings of the 9th Colloquium on Automata, Languages and Programming. Springer, Ninth Colloquium Aarhus, Denmark, 348-359. https://doi.org/10.1007/BFb0012782 Google ScholarGoogle ScholarCross RefCross Ref
  36. Shuvendu Lahiri and Shaz Qadeer. 2008. Back to the future: Revisiting precise program verification using SMT solvers. In Proceedings of the 35th annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'08). ACM, California USA, 171-182. https://doi.org/10.1145/1328438.1328461 Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. K. Rustan M. Leino and Michał Moskal. 2014. Co-induction simply. In Proceedings of the 19th International Symposium on Formal Methods (FM'14). Springer, Singapore, 382-398. https://doi.org/10.1007/978-3-319-06410-9 Google ScholarGoogle ScholarCross RefCross Ref
  38. Orna Lichtenstein and Amir Pnueli. 2000. Propositional Temporal Logics: Decidability and Completeness. Logic Journal of the IGPL 8, 1 ( 2000 ), 55-85. http://dblp.uni-trier.de/db/journals/igpl/igpl8.html#LichtensteinP00Google ScholarGoogle ScholarCross RefCross Ref
  39. Christof Löding, Madhusudan Parthasarathy, and Lucas Peña. 2017. Foundations for natural proofs and quantifier instantiation. Proceedings of the ACM on Programming Languages (POPL'17) 2, 1 ( 2017 ), 1-30. https://doi.org/10.1145/3158098 Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Dorel Lucanu and Grigore Roşu. 2007. CIRC: A circular coinductive prover. In Proceedings of the 2nd international conference on Algebra and coalgebra in computer science (CALCO'07). Springer, Berlin, Heidelberg, Bergen, Norway, 372-378.Google ScholarGoogle ScholarCross RefCross Ref
  41. The Coq development team. 2004. The Coq proof assistant reference manual. LogiCal Project.Google ScholarGoogle Scholar
  42. Daejun Park, Andrei Ştefănescu, and Grigore Roşu. 2015. KJS: A complete formal semantics of JavaScript. In Proceedings of the 36th annual ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'15). ACM, Portland Oregon, 346-356. https://doi.org/10.1145/2737924.2737991 Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Juan Antonio Navarro Pérez and Andrey Rybalchenko. 2011. Separation logic + superposition calculus = heap theorem prover. In Proceedings of the 32nd annual ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI'11). ACM, California, USA, 556-566. https://doi.org/10.1145/1993498.1993563 Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Ruzica Piskac, Thomas Wies, and Damien Zuferey. 2013. Automating separation logic using SMT. In Proceedings of the 25th International Conference on Computer Aided Verification (CAV'13). Springer, Saint Petersburg, Russia, 773-789. https://doi.org/10.1007/978-3-642-39799-8_54 Google ScholarGoogle ScholarCross RefCross Ref
  45. Amir Pnueli. 1977. The temporal logic of programs. In Proceedings of the 18th Annual Symposium on Foundations of Computer Science (FCS'77). IEEE, IEEE, DC, USA, 46-57.Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Zvonimir Rakamarić, Jesse Bingham, and Alan J. Hu. 2007a. An inference-rule-based decision procedure for verification of heap-manipulating programs with mutable data and cyclic data structures. In Proceedings of the 8th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI'07). Springer, California, USA, 106-121. https://doi.org/10.1007/978-3-540-69738-1_8 Google ScholarGoogle ScholarCross RefCross Ref
  47. Zvonimir Rakamarić, Roberto Bruttomesso, Alan J. Hu, and Alessandro Cimatti. 2007b. Verifying heap-manipulating programs in an SMT framework. In Proceedings of the 5th International Symposium on Automated Technology for Verification and Analysis (ATVA'07). Springer, Tokyo, Japan, 237-252. https://doi.org/10.1007/978-3-540-75596-8_18 Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Silvio Ranise and Calogero Zarba. 2006. A theory of singly-linked lists and its extensible decision procedure. In Proceedings of the 4th IEEE International Conference on Software Engineering and Formal Methods (SEFM'06). IEEE, Macao, China, 206-215. https://doi.org/10.1109/sefm. 2006.7 Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. John C. Reynolds. 2002. Separation logic: A logic for shared mutable data structures. In Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science (LICS'02). IEEE, Copenhagen, Denmark, 55-74. https://doi.org/10.1109/lics. 2002.1029817 Google ScholarGoogle ScholarCross RefCross Ref
  50. Grigore Roşu. 2017. Matching logic. Logical Methods in Computer Science 13, 4 (Dec. 2017 ), 1-61. https://doi.org/10.23638/lmcs13( 4 :28) 2017 Google ScholarGoogle ScholarCross RefCross Ref
  51. Mihaela Sighireanu, Juan A. Navarro Pérez, Andrey Rybalchenko, Nikos Gorogiannis, Radu Iosif, Andrew Reynolds, Cristina Serban, Jens Katelaan, Christoph Matheja, Thomas Noll, Florian Zuleger, Wei-Ngan Chin, Quang Loc Le, Quang-Trung Ta, Ton-Chanh Le, Thanh-Toan Nguyen, Siau-Cheng Khoo, Michal Cyprian, Adam Rogalewicz, Tomas Vojnar, Constantin Enea, Ondrej Lengal, Chong Gao, and Zhilin Wu. 2019. SL-COMP: Competition of solvers for separation logic. In Tools and Algorithms for the Construction and Analysis of Systems, Dirk Beyer, Marieke Huisman, Fabrice Kordon, and Bernhard Stefen (Eds.). Springer International Publishing, Cham, 116-132.Google ScholarGoogle Scholar
  52. Quang-Trung Ta, Ton Chanh Le, Siau-Cheng Khoo, and Wei-Ngan Chin. 2019. Automated mutual induction proof in separation logic. Formal Aspects of Computing 31, 2 (April 2019 ), 207-230. https://doi.org/10.1007/s00165-018-0471-5 Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Alfred Tarski. 1955. A lattice-theoretical fixpoint theorem and its applications. Pacific journal of Mathematics 5, 2 ( 1955 ), 285-309. https://doi.org/10.2140/pjm. 1955. 5. 285 Google ScholarGoogle ScholarCross RefCross Ref
  54. The Isabelle development team. 2018. Isabelle. https://isabelle.in.tum.de/.Google ScholarGoogle Scholar
  55. Hiroshi Unno, Sho Torii, and Hiroki Sakamoto. 2017. Automating induction for solving Horn clauses. In Proceedings of the 29th International Conference on Computer Aided Verification (CAV'17). Springer, Heidelberg, Germany, 571-591. https://doi.org/10.1007/978-3-319-63390-9_30 Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Towards a unified proof framework for automated fixpoint reasoning using matching 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 4, Issue OOPSLA
        November 2020
        3108 pages
        EISSN:2475-1421
        DOI:10.1145/3436718
        Issue’s Table of Contents

        Copyright © 2020 Owner/Author

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 13 November 2020
        Published in pacmpl Volume 4, Issue OOPSLA

        Permissions

        Request permissions about this article.

        Request Permissions

        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!