skip to main content
research-article

VeriML: typed computation of logical terms inside a language with effects

Published:27 September 2010Publication History
Skip Abstract Section

Abstract

Modern proof assistants such as Coq and Isabelle provide high degrees of expressiveness and assurance because they support formal reasoning in higher-order logic and supply explicit machine-checkable proof objects. Unfortunately, large scale proof development in these proof assistants is still an extremely difficult and time-consuming task. One major weakness of these proof assistants is the lack of a single language where users can develop complex tactics and decision procedures using a rich programming model and in a typeful manner. This limits the scalability of the proof development process, as users avoid developing domain-specific tactics and decision procedures.

In this paper, we present VeriML - a novel language design that couples a type-safe effectful computational language with first-class support for manipulating logical terms such as propositions and proofs. The main idea behind our design is to integrate a rich logical framework - similar to the one supported by Coq - inside a computational language inspired by ML. The language design is such that the added features are orthogonal to the rest of the computational language, and also do not require significant additions to the logic language, so soundness is guaranteed. We have built a prototype implementation of VeriML including both its type-checker and an interpreter. We demonstrate the effectiveness of our design by showing a number of type-safe tactics and decision procedures written in VeriML.

Skip Supplemental Material Section

Supplemental Material

icfp-weds-1545-stampoulis.mov

References

  1. }}Henk P. Barendregt and Herman Geuvers. Proof-assistants using dependent type systems. In A. Robinson and A. Voronkov, editors, Handbook of Automated Reasoning. Elsevier Sci. Pub. B.V., 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. }}B. Barras, S. Boutin, C. Cornes, J. Courant, Y. Coscoy, D. Delahaye, D. de Rauglaudre, J.C. Filliâtre, E. Giménez, H. Herbelin, et al. The Coq proof assistant reference manual (version 8.3), 2010.Google ScholarGoogle Scholar
  3. }}S. Boutin. Using reflection to build efficient and certified decision procedures. Lecture Notes in Computer Science, 1281:515--529. 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. }}A. R. Bradley and Z. Manna. The calculus of computation: decision procedures with applications to verification. Springer-Verlag New York Inc, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. }}C. Chen and H. Xi. Combining programming with theorem proving. In Proceedings of the tenth ACM SIGPLAN international conference on Functional programming, page 77. ACM, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. }}A. Chlipala. Certified Programming with Dependent Types, 2008. URL http://adam.chlipala.net/cpdt.Google ScholarGoogle Scholar
  7. }}Adam J. Chlipala, J. Gregory Malecha, Greg Morrisett, Avraham Shinnar, and Ryan Wisnesky. Effective interactive proofs for higher-order imperative programs. In Proceeding of the 14th ACM SIGPLAN international conference on Functional programming, pages 79--90. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. }}D. Delahaye. A tactic language for the system Coq. Lecture notes in computer science, pages 85--95, 2000.Google ScholarGoogle Scholar
  9. }}D. Delahaye. A proof dedicated meta-language. Electronic Notes in Theoretical Computer Science, 70(2) 96--109, 2002.Google ScholarGoogle ScholarCross RefCross Ref
  10. }}X. Feng, Z. Shao, Y. Guo, and Y. Dong. Combining domain-specific and foundational logics to verify complete software systems. In Proc. 2nd IFIP Working Conference on Verified Software: Theories, Tools, and Experiments (VSTTE'08), volume 5295 of LNCS, pages 54--69. Springer, October 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. }}S. Fogarty, E. Pasalic, J. Siek, and W. Taha. Concoqtion: indexed types now! In Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation, pages 112--121. ACM New York, NY, USA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. }}M. J. Gordon, R. Milner, and C.P. Wadsworth. Edinburgh LCF: a mechanized logic of computation. Springer-Verlag Berlin, 10: 11--25, 1979.Google ScholarGoogle Scholar
  13. }}R. Harper, F. Honsell, and G. Plotkin. A framework for defining logics. Journal of the ACM, 40 (1): 143--184, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. }}J. Harrison. HOL Light: A tutorial introduction. Lecture Notes in Computer Science, pages 265--269, 1996.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. }}C. Hawblitzel and E. Petrank. Automated verification of practical garbage collectors. ACM SIGPLAN Notices, 44 (1): 441--453, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. }}G. Klein, K. Elphinstone, G. Heiser, J. Andronick, D. Cock, P. Derrin, D. Elkaduwe, K. Engelhardt, R. Kolanski, M. Norrish, et al. seL4: Formal verification of an OS kernel. In Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles, pages 207--220. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. }}X. Leroy. Formal verification of a realistic compiler. Communications of the ACM, 52 (7): 107--115. 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. }}D.R. Licata, N. Zeilberger, and R. Harper. Focusing on binding and computation. In Logic in Computer Science, 2008. LICS'08, pages 241--252. 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. }}A. Nanevski, G. Morrisett, and L. Birkedal. Polymorphism and separation in hoare type theory. In Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming, pages 62--73. ACM New York, NY, USA. 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. }}Aleksandar Nanevski, Frank Pfenning, and Brigitte Pientka. Contextual modal type theory. ACM Trans. Comput. Log., 9 (3), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. }}Aleksandar Nanevski, Viktor Vafeiadis, and Josh Berdine. Structuring the verification of heap-manipulating programs. In Proceedings of the 37th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 261--274. ACM, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. }}T. Nipkow, L.C. Paulson, and M. Wenzel. Isabelle/HOL : A Proof Assistant for Higher-Order Logic, volume 2283 of LNCS, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. }}Ulf Norell. Towards a practical programming language based on dependent type theory. Technical report, Goteborg University, 2007.Google ScholarGoogle Scholar
  24. }}C. Paulin-Mohring. Inductive definitions in the system Coq; rules and properties. Lecture Notes in Computer Science, pages 328--328, 1993.Google ScholarGoogle Scholar
  25. }}Brigitte Pientka. A type-theoretic foundation for programming with higher-order abstract syntax and first-class substitutions. In Proceedings of the 35th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 371--382. ACM, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. }}Brigitte Pientka and Joshua Dunfield. Programming with proofs and explicit contexts. In Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming, pages 163--173. ACM New York, NY, USA, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. }}B.C. Pierce. Types and programming languages. The MIT Press, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. }}A. Poswolsky and C. Schürmann. Practical programming with higher-order encodings and dependent types. Lecture Notes in Computer Science, 4960: 93, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. }}K. Slind and M. Norrish. A brief overview of HOL4. In TPHOLs, pages 28--32. Springer, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. }}M. Sozeau. Subset coercions in Coq. Types for Proofs and Programs, pages 237--252, 2007. Google ScholarGoogle ScholarCross RefCross Ref
  31. }}A. Stampoulis and Z. Shao. VeriML: Typed computation of logical terms inside a language with effects (extended version). Technical report YALEU/DCS/TR-1430, Dept. of Computer Science, Yale University, New Haven, CT, 2010. URL http://flint.cs.yale.edu/publications/veriml.htm.Google ScholarGoogle Scholar
  32. }}G.S. Tseitin. On the complexity of derivation in propositional calculus. Studies in constructive mathematics and mathematical logic. 2 (115--125): 10--13, 1968.Google ScholarGoogle Scholar
  33. }}Benjamin Werner. Une Théorie des Constructions Inductives. PhD thesis, A L'Université Paris 7, Paris, France, 1994.Google ScholarGoogle Scholar

Index Terms

  1. VeriML: typed computation of logical terms inside a language with effects

      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 ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 45, Issue 9
        ICFP '10
        September 2010
        382 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/1932681
        Issue’s Table of Contents
        • cover image ACM Conferences
          ICFP '10: Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
          September 2010
          398 pages
          ISBN:9781605587943
          DOI:10.1145/1863543

        Copyright © 2010 ACM

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 27 September 2010

        Check for updates

        Qualifiers

        • research-article

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      ePub

      View this article in ePub.

      View ePub
      About Cookies On This Site

      We use cookies to ensure that we give you the best experience on our website.

      Learn more

      Got it!