Skip to main content
Log in

Formal Metatheory of Programming Languages in the Matita Interactive Theorem Prover

  • Published:
Journal of Automated Reasoning Aims and scope Submit manuscript

Abstract

This paper is a report about the use of Matita, an interactive theorem prover under development at the University of Bologna, for the solution of the POPLmark Challenge, part 1a. We provide three different formalizations, including two direct solutions using pure de Bruijn and locally nameless encodings of bound variables, and a formalization using named variables, obtained by means of a sound translation to the locally nameless encoding. According to this experience, we also discuss some of the proof principles used in our solutions, which have led to the development of a generalized inversion tactic for Matita.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Asperti, A., Ricciotti, W., Sacerdoti Coen, C., Tassi, E.: A compact kernel for the calculus of inductive constructions. Sadhana 34(1), 71–144 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  2. Asperti, A., Sacerdoti Coen, C., Tassi, E., Zacchiroli, S.: Crafting a proof assistant. In: Proceedings of Types 2006: Conference of the Types Project (2006)

  3. Asperti, A., Sacerdoti Coen, C., Tassi, E., Zacchiroli, S.: User interaction with the Matita proof assistant. J. Autom. Reason. (Special Issue on User Interfaces for Theorem Proving) 39(2), 109–139 (2007)

    Article  MATH  Google Scholar 

  4. Aydemir, B., Bohannon, A., Fairbairn, M., Foster, J., Pierce, B., Sewell, P., Vytiniotis, D., Washburn, G., Weirich, S., Zdancewic, S.: Mechanized metatheory for the masses: the POPLmark challenge. In: Proceedings of the Eighteenth International Conference on Theorem Proving in Higher Order Logics (TPHOLs 2005) (2005)

  5. Aydemir, B.E., Charguéraud, A., Pierce, B.C., Pollack, R., Weirich, S.: Engineering formal metatheory. In: Necula, G.C., Wadler, P. (eds.) POPL, pp. 3–15 (2008)

  6. Cardelli, L., Martini, S., Mitchell, J.C., Scedrov, A.: An extension of system F with subtyping (TACS). In: Ito, T., Meyer, A.R. (eds.) Proc. of 1st Int. Symp. on Theor. Aspects of Computer Software, TACS’91, Sendai, Japan, 24–27 Sept 1991, vol. 526 of Lecture Notes in Computer Science, pp. 750–770. Springer, Berlin (1991)

    Google Scholar 

  7. Charguéraud, A.: Submissions to the PoplMark Challenge. http://www.chargueraud.orgarthur/research/2006/poplmark/ (2006)

  8. Chlipala, A.: Submission to the PoplMark Challenge. http://adam.chlipala.net/poplmark/ (2006)

  9. Coq: The Coq Proof Assistant Reference Manual, Version 8.0. The Coq Development Team (2004)

  10. Cornes, C., Terrasse, D.: Automating inversion of inductive predicates in Coq’. In: TYPES ’95: Selected Papers from the International Workshop on Types for Proofs and Programs, pp. 85–104. London, UK (1996)

  11. Gabbay, M.J., Pitts, A.M.: A new approach to abstract syntax involving binders. In: 14th Annual Symposium on Logic in Computer Science, pp. 214–224. Washington, DC, USA (1999)

  12. Guidi, F.: Lambda Types on the Lambda Calculus with Abbreviations. Research report UBLCS-2006-25, Department of Computer Science, University of Bologna (2006)

  13. Hirschowitz, A., Maggesi, M.: Submission to the PoplMark Challenge. http://web.math.unifi.it/~maggesi/poplmark/Part1a.v (2007)

  14. Leroy, X.: A Locally Nameless Solution to the POPLmark Challenge. Research report 6098, INRIA (2007)

  15. McBride, C.: Elimination with a motive. In: Callaghan, P., Luo, Z., McKinna, J., Pollack, R. (eds.) Types for Proofs and Programs (Proceedings of the International Workshop, TYPES’00), vol. 2277 of LNCS (2002)

  16. Pitts, A.M.: Nominal logic: a first order theory of names and binding. Inf. Comput. 186(2), 165–193 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  17. Pollack, R.: Closure under alpha-conversion. In: Barendregt, H., Nipkow, T. (eds.) Proceedings of the Workshop on Types for Proofs and Programs, pp. 313–332. Nijmegen, The Netherlands (1993)

    Google Scholar 

  18. Sacerdoti Coen, C., Tassi, E., Zacchiroli, S.: Tinycals: step by step tacticals. In: Proceedings of User Interface for Theorem Provers 2006 (2006)

  19. Sallinens, J.: Submission to the PoplMark Challenge. https://alliance.seas.upenn.edu/∼plclub/cgibin/poplmark/index.php?title=Submission_by_Jevgenijs_Sallinens (2007)

  20. Stump, A.: Submission to the PoplMark Challenge. http://www.cs.uiowa.edu/~astump/poplmark-coq/ (2005)

  21. Urban, C., Pollack, R.: Strong induction principles in the locally nameless representation of binders. In: Workshop on Mechanized Metatheory (2007)

  22. Vouillon, J.: Submission to the PoplMark Challenge. http://www.cis.upenn.edu/~plclub/wiki-static/vouillon-coq/part-a.v (2005)

  23. Werner, B.: Une Théorie des Constructions Inductives. Ph.D. thesis, Université Paris VII (1994)

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Wilmer Ricciotti.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Asperti, A., Ricciotti, W., Sacerdoti Coen, C. et al. Formal Metatheory of Programming Languages in the Matita Interactive Theorem Prover. J Autom Reasoning 49, 427–451 (2012). https://doi.org/10.1007/s10817-011-9228-z

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10817-011-9228-z

Keywords

Navigation