skip to main content
research-article
Open Access
Artifacts Available
Artifacts Evaluated & Functional

Foundations for natural proofs and quantifier instantiation

Published:27 December 2017Publication History
Skip Abstract Section

Abstract

We give foundational results that explain the efficacy of heuristics used for dealing with quantified formulas and recursive definitions. We develop a framework for first order logic (FOL) over an uninterpreted combination of background theories. Our central technical result is that systematic term instantiation is complete for a fragment of FOL that we call safe. Coupled with the fact that unfolding recursive definitions is essentially term instantiation and with the observation that heap verification engines generate verification conditions in the safe fragment explains the efficacy of verification engines like natural proofs that resort to such heuristics. Furthermore, we study recursive definitions with least fixpoint semantics and show that though they are not amenable to complete procedures, we can systematically introduce induction principles that in practice bridge the divide between FOL and FOL with recursive definitions.

Skip Supplemental Material Section

Supplemental Material

naturalproofsandquantifierinstantiation.webm

webm

114.1 MB

References

  1. Aharon Abadi, Alexander Rabinovich, and Mooly Sagiv. 2007. Decidable Fragments of Many-sorted Logic. In LPAR’07. 17–31. http://dl.acm.org/citation.cfm?id=1779419.1779423Google ScholarGoogle Scholar
  2. Rolf Backofen, James Rogers, and K. Vijay-Shanker. 1995. A First-Order Axiomatization of the Theory of Finite Trees. Journal of Logic, Language and Information 4, 1 (1995), 5–39. Google ScholarGoogle ScholarCross RefCross Ref
  3. Clark Barrett, Christopher L. Conway, Morgan Deters, Liana Hadarean, Dejan Jovanovic, Tim King, Andrew Reynolds, and Cesare Tinelli. 2011. CVC4. In CAV’11. 171–177. Google ScholarGoogle ScholarCross RefCross Ref
  4. Clark Barrett and Cesare Tinelli. 2007. CVC3. In CAV’07. 298–302. Google ScholarGoogle ScholarCross RefCross Ref
  5. Egon Börger, Erich Grädel, and Yuri Gurevich. 1997. The Classical Decision Problem. Springer. Google ScholarGoogle ScholarCross RefCross Ref
  6. Robert S. Boyer and J. Strother Moore. 1980. A computational logic. Academic Press.Google ScholarGoogle Scholar
  7. Aaron Bradley. 2007. Safety Analysis of Systems. Ph.D. Dissertation. Stanford University.Google ScholarGoogle Scholar
  8. Aaron R. Bradley and Zohar Manna. 2007. The Calculus of Computation: Decision Procedures with Applications to Verification. Springer-Verlag New York, Inc., Secaucus, NJ, USA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Aaron R. Bradley, Zohar Manna, and Henny B. Sipma. 2006. What’s Decidable About Arrays?. In VMCAI’06, Vol. 3855. Springer, 427–442. Google ScholarGoogle ScholarCross RefCross Ref
  10. James Brotherston, Dino Distefano, and Rasmus Lerchedahl Petersen. 2011. Automated Cyclic Entailment Proofs in Separation Logic. In CADE’11. Springer-Verlag, 131–146. http://dl.acm.org/citation.cfm?id=2032266.2032278 Google ScholarGoogle ScholarCross RefCross Ref
  11. Duc-Hiep Chu, Joxan Jaffar, and Minh-Thai Trinh. 2015. Automatic induction proofs of data-structures in imperative programs. In PLDI’15. 457–466. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Martin Davis and Hilary Putnam. 1960. A Computing Procedure for Quantification Theory. J. ACM 7, 3 (1960), 201–215. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Leonardo de Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. Springer Berlin Heidelberg, Berlin, Heidelberg, 337–340.Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. David Detlefs, Greg Nelson, and James B. Saxe. 2005. Simplify: A Theorem Prover for Program Checking. J. ACM 52, 3 (May 2005), 365–473. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Isil Dillig, Thomas Dillig, Boyang Li, and Kenneth L. McMillan. 2013. Inductive invariant generation via abductive inference. In OOPSLA’13. 443–456. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Heinz-Dieter Ebbinghaus, Jörg Flum, and Wolfgang Thomas. 1994. Mathematical logic (2. ed.). Springer.Google ScholarGoogle Scholar
  17. Yotam M. Y. Feldman, Oded Padon, Neil Immerman, Mooly Sagiv, and Sharon Shoham. 2017. Bounded Quantifier Instantiation for Checking Inductive Invariants. In TACAS 2017 (Lecture Notes in Computer Science), Vol. 10205. 76–95. Google ScholarGoogle ScholarCross RefCross Ref
  18. Harald Ganzinger and Konstantin Korovin. 2003. New Directions in Instantiation-Based Theorem Proving. In LICS’03. IEEE Computer Society, 55–64. Google ScholarGoogle ScholarCross RefCross Ref
  19. Harald Ganzinger and Konstantin Korovin. 2006. Theory Instantiation. In LPAR’06. 497–511. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Yeting Ge and Leonardo Mendonça de Moura. 2009. Complete Instantiation for Quantified Formulas in Satisfiabiliby Modulo Theories. In CAV’09 (Lecture Notes in Computer Science), Vol. 5643. Springer, 306–320. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Paul C. Gilmore. 1960. A Proof Method for Quantification Theory: Its Justification and Realization. IBM Journal of Research and Development 4, 1 (1960), 28–35. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Andrzej Granas and James Dugundji. 2003. Fixed Point Theory. Springer. Google ScholarGoogle ScholarCross RefCross Ref
  23. John Harrison, Josef Urban, and Freek Wiedijk. 2014. History of Interactive Theorem Proving. In Computational Logic. 135–214. Google ScholarGoogle ScholarCross RefCross Ref
  24. Carsten Ihlemann, Swen Jacobs, and Viorica Sofronie-Stokkermans. 2008. On Local Reasoning in Verification. In TACAS’08/ETAPS’08. 265–281. Google ScholarGoogle ScholarCross RefCross Ref
  25. Bart Jacobs and Frank Piessens. 2008. The VeriFast Program Verifier. (2008).Google ScholarGoogle Scholar
  26. Matt Kaufmann and J. Strother Moore. 1997. An Industrial Strength Theorem Prover for a Logic Based on Common Lisp. IEEE Trans. Software Eng. 23, 4 (1997), 203–213. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Matt Kaufmann, J. Strother Moore, and Panagiotis Manolios. 2000. Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers, Norwell, MA, USA.Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. K. Korovin and C. Sticksel. 2010. iProver-Eq: An Instantiation-Based Theorem Prover with Equality. In IJCAR’10 (Lecture Notes in Computer Science), J. Giesl and R. Hähnle (Eds.), Vol. 6173. Springer, 196–202.Google ScholarGoogle Scholar
  29. Laura Kovács and Andrei Voronkov. 2013. First-Order Theorem Proving and Vampire. In CAV’13. 1–35. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Q. L. (Quang Loc) Le, M. Tatsuta, J. ( Jun) Sun, and W. N. (Wei-Ngan) Chin. 2017. A Decidable Fragment in Separation Logic with Inductive Predicates and Arithmetic. In CAV’17. http://hdl.handle.net/10149/621090Google ScholarGoogle Scholar
  31. K. Rustan M. Leino. 2012. Automating Induction with an SMT Solver. In VMCAI’12. 315–331. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Tal Lev-Ami, Neil Immerman, Thomas W. Reps, Mooly Sagiv, Siddharth Srivastava, and Greta Yorsh. 2009. Simulating reachability using first-order logic with applications to verification of linked data structures. Logical Methods in Computer Science 5, 2 (2009). Google ScholarGoogle ScholarCross RefCross Ref
  33. Christof Löding, Parthasarathy Madhusudan, and Lucas Peña. 2017. Foundations for Natural Proofs and Quantifier Instantiation: Artifact. https://github.com/lucaspena/foundations- np- qi- artifcat . (2017).Google ScholarGoogle Scholar
  34. P. Madhusudan, Gennaro Parlato, and Xiaokang Qiu. 2011. Decidable logics combining heap structures and data. In POPL’11. 611–622. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. P. Madhusudan and Xiaokang Qiu. 2011. Efficient Decision Procedures for Heaps Using STRAND. In SAS’11. 43–59. Google ScholarGoogle ScholarCross RefCross Ref
  36. Parthasarathy Madhusudan, Xiaokang Qiu, and Andrei Stefanescu. 2012. Recursive Proofs for Inductive Tree Data-structures. In POPL’12. 123–136. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. Zohar Manna and John McCarthy. 1970. Properties of Programs and Partial Function Logic. Machine Intelligence 5 (1970), 79–98.Google ScholarGoogle Scholar
  38. The Coq development team. 2016. The Coq Proof Assistant Reference Manual. (2016). Version 8.6.Google ScholarGoogle Scholar
  39. Kenneth L. McMillan. 2003. Interpolation and SAT-Based Model Checking. In CAV’03. 1–13. Google ScholarGoogle ScholarCross RefCross Ref
  40. Yiannis N. Moschovakis. 2008. Elementary induction on abstract structures. Dover Publications.Google ScholarGoogle Scholar
  41. Charles Gregory Nelson. 1980. Techniques for Program Verification. Ph.D. Dissertation. Stanford, CA, USA. AAI8011683.Google ScholarGoogle Scholar
  42. Greg Nelson and Derek C. Oppen. 1979. Simplification by Cooperating Decision Procedures. ACM Trans. Program. Lang. Syst. 1, 2 (1979), 245–257. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Huu Hai Nguyen and Wei-Ngan Chin. 2008. Enhancing Program Verification with Lemmas. In CAV’08. 355–369. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Ulf Norell. 2009. Dependently Typed Programming in Agda. In TLDI’09. 1–2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  45. Peter W. O’Hearn. 2012. A Primer on Separation Logic (and Automatic Program Verification and Analysis). In Software Safety and Security - Tools for Analysis and Verification. Vol. 33. IOS Press, 286–318. Google ScholarGoogle ScholarCross RefCross Ref
  46. Derek C. Oppen. 1980. Complexity, Convexity and Combinations of Theories. Theor. Comput. Sci. 12 (1980), 291–302. Google ScholarGoogle ScholarCross RefCross Ref
  47. Sam Owre, John M. Rushby, and Natarajan Shankar. 1992. PVS: A Prototype Verification System. In CADE’11. 748–752. http://dl.acm.org/citation.cfm?id=648230.752639Google ScholarGoogle Scholar
  48. Oden Padon, Giuliano Losa, Mooly Sagiv, and Sharon Shoham. 2017. Paxos Made EPR: Decidable Reasoning about Distributed Protocols. In OOPSLA’17. To Appear.Google ScholarGoogle Scholar
  49. Lawrence C. Paulson. 1993. Isabelle: The Next 700 Theorem Provers. CoRR cs.LO/9301106 (1993). http://arxiv.org/abs/cs.LO/ 9301106Google ScholarGoogle Scholar
  50. Edgar Pek, Xiaokang Qiu, and Parthasarathy Madhusudan. 2014. Natural proofs for data structure manipulation in C using separation logic. In PLDI’14. 440–451. http://dl.acm.org/citation.cfm?id=2594291Google ScholarGoogle Scholar
  51. Ruzica Piskac, Thomas Wies, and Damien Zufferey. 2013. Automating Separation Logic Using SMT. In CAV’13. 773–789. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Ruzica Piskac, Thomas Wies, and Damien Zufferey. 2014. Automating Separation Logic with Trees and Data. In CAV’14. 711–728. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Xiaokang Qiu, Pranav Garg, Andrei Stefanescu, and Parthasarathy Madhusudan. 2013. Natural proofs for structure, data, and separation. In PLDI’13. ACM, 231–242. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Andrew Reynolds. 2016. Conflicts, Models and Heuristics for Quantifier Instantiation in SMT. In Vampire@IJCAR 2016. Proceedings of the 3rd Vampire Workshop, Coimbra, Portugal, July 2, 2016. 1–15.Google ScholarGoogle Scholar
  55. John Alan Robinson. 1965. A Machine-Oriented Logic Based on the Resolution Principle. J. ACM 12, 1 (1965), 23–41. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. Philipp Rümmer. 2012. E-Matching with Free Variables. In LPAR’12. 359–374. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. Uwe Schöning. 2008. Logic for Computer Scientists. Birkhäuser. Google ScholarGoogle ScholarCross RefCross Ref
  58. Stephan Schulz. 2002. E - a brainiac theorem prover. AI Commun. 15, 2-3 (2002), 111–126. http://content.iospress.com/ articles/ai- communications/aic260Google ScholarGoogle Scholar
  59. Thoralf Skolem. 1934. Über die Nicht-charakterisierbarkeit der Zahlenreihe mittels endlich oder abzählbar unendlich vieler Aussagen mit ausschließlich Zahlenvariablen. Fundamenta Mathematica 1 (1934), 150–161. Google ScholarGoogle ScholarCross RefCross Ref
  60. Philippe Suter, Mirco Dotta, and Viktor Kuncak. 2010. Decision Procedures for Algebraic Data Types with Abstractions. In POPL’10. ACM, New York, NY, USA, 199–210. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Quang-Trung Ta, Ton Chanh Le, Siau-Cheng Khoo, and Wei-Ngan Chin. 2016. Automated Mutual Explicit Induction Proof in Separation Logic. CoRR abs/1609.00919 (2016). http://arxiv.org/abs/1609.00919Google ScholarGoogle Scholar
  62. Christoph Weidenbach, Dilyana Dimova, Arnaud Fietzke, Rohit Kumar, Martin Suda, and Patrick Wischnewski. 2009. SPASS Version 3.5. In CADE’09. 140–145. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Foundations for natural proofs and quantifier instantiation

            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 2, Issue POPL
              January 2018
              1961 pages
              EISSN:2475-1421
              DOI:10.1145/3177123
              Issue’s Table of Contents

              Copyright © 2017 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 27 December 2017
              Published in pacmpl Volume 2, Issue POPL

              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