Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

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

Published: 13 November 2020 Publication History

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.

Supplementary Material

Auxiliary Presentation Video (oopsla20main-p136-p-video.mp4)
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
[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.
[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
[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
[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
[6]
Patrick Blackburn, Maarten de Rijke, and Yde Venema. 2001. Modal logic. Cambridge University Press, New York, NY, USA.
[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
[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
[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
[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.
[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
[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.
[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
[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.
[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.
[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.
[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/108369
[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
[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
[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
[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
[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
[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
[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
[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.
[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.
[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
[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.
[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
[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
[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
[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
[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.
[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
[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
[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
[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
[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#LichtensteinP00
[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
[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.
[41]
The Coq development team. 2004. The Coq proof assistant reference manual. LogiCal Project.
[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
[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
[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
[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.
[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
[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
[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
[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
[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
[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.
[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
[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
[54]
The Isabelle development team. 2018. Isabelle. https://isabelle.in.tum.de/.
[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

Cited By

View all
  • (2024)A Logical Treatment of Finite AutomataTools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-031-57246-3_20(350-369)Online publication date: 4-Apr-2024
  • (2023)Read It, Don't Watch It: Captioning Bug Recordings AutomaticallyProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00197(2349-2361)Online publication date: 14-May-2023
  • (2023)Efficiency Matters: Speeding Up Automated Testing with GUI Rendering InferenceProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00084(906-918)Online publication date: 14-May-2023
  • Show More Cited By

Index Terms

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

      Recommendations

      Comments

      Information & Contributors

      Information

      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
      This work is licensed under a Creative Commons Attribution International 4.0 License.

      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 for this article.

      Check for updates

      Author Tags

      1. automated reasoning
      2. fixpoints
      3. induction
      4. matching logic

      Qualifiers

      • Research-article

      Funding Sources

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)191
      • Downloads (Last 6 weeks)11
      Reflects downloads up to 01 Nov 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)A Logical Treatment of Finite AutomataTools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-031-57246-3_20(350-369)Online publication date: 4-Apr-2024
      • (2023)Read It, Don't Watch It: Captioning Bug Recordings AutomaticallyProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00197(2349-2361)Online publication date: 14-May-2023
      • (2023)Efficiency Matters: Speeding Up Automated Testing with GUI Rendering InferenceProceedings of the 45th International Conference on Software Engineering10.1109/ICSE48619.2023.00084(906-918)Online publication date: 14-May-2023
      • (2022)Malicious Selling Strategies in Livestream E-commerce: A Case Study of Alibaba’s Taobao and ByteDance’s TikTokACM Transactions on Computer-Human Interaction10.1145/357719930:3(1-29)Online publication date: 22-Dec-2022
      • (2022)Nominal Matching LogicProceedings of the 24th International Symposium on Principles and Practice of Declarative Programming10.1145/3551357.3551375(1-15)Online publication date: 20-Sep-2022
      • (2022)Loop Verification with Invariants and ContractsVerification, Model Checking, and Abstract Interpretation10.1007/978-3-030-94583-1_4(69-92)Online publication date: 16-Jan-2022
      • (2021)Multi-Head Spatio-Temporal Attention Mechanism for Urban Anomaly Event PredictionProceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies10.1145/34780995:3(1-21)Online publication date: 14-Sep-2021
      • (2021)Automated Query Reformulation for Efficient Search based on Query Logs From Stack OverflowProceedings of the 43rd International Conference on Software Engineering10.1109/ICSE43902.2021.00116(1273-1285)Online publication date: 22-May-2021
      • (2021)guiganProceedings of the 43rd International Conference on Software Engineering10.1109/ICSE43902.2021.00074(748-760)Online publication date: 22-May-2021
      • (2021)Non-well-founded Deduction for Induction and CoinductionAutomated Deduction – CADE 2810.1007/978-3-030-79876-5_1(3-24)Online publication date: 5-Jul-2021

      View Options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Get Access

      Login options

      Full Access

      Media

      Figures

      Other

      Tables

      Share

      Share

      Share this Publication link

      Share on social media