Skip to main content
Log in

A Solution to the PoplMark Challenge Based on de Bruijn Indices

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

Abstract

The PoplMark challenge proposes a set of benchmarks intended to assess the usability of proof assistants in the context of research on programming languages. It is based on the metatheory of System F\(_{\mathtt{<:}}\). We present a solution to the challenge using de Bruijn indices, developed with the Coq proof assistant.

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. Altenkirch, T.: Constructions, inductive types and strong normalization. Ph.D. thesis, University of Edinburgh (1993)

  2. Altenkirch, T.: A formalization of the strong normalization proof for System F in LEGO. In: Bezem, J.G.M. (ed.) Typed Lambda Calculi and Applications. LNCS, vol. 664, pp. 13–28 (1993)

  3. Appel, A.W., Melliès, P.A., Richards, C.D., Vouillon, J.: A very modal model of a modern, major, general type system. In: POPL ’07: Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 109–122. ACM, New York, NY, USA (2007). doi:10.1145/1190216.1190235

    Chapter  Google Scholar 

  4. Aydemir, B., Charguéraud, A., Pierce, B.C., Pollack, R., Weirich, S.: Engineering formal metatheory. In: POPL ’08: Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 3–15. ACM, New York, NY, USA (2008). doi:10.1145/1328438.1328443

    Chapter  Google Scholar 

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

  6. Barras, B.: Coq en coq. Rapport de Recherche 3026, INRIA (1996)

  7. Barras, B.: Verification of the interface of a small proof system in coq. In: Gimenez, E., Paulin-Mohring, C. (eds.) Proceedings of the 1996 Workshop on Types for Proofs and Programs. LNCS, vol. 1512, pp. 28–45. Springer, Aussois, France (1996)

    Chapter  Google Scholar 

  8. Barras, B.: Auto-validation d’un système de preuves avec familles inductives. Thèse de doctorat, Université Paris 7 (1999)

  9. Berghofer, S.: A solution to the PoplMark challenge in Isabelle/HOL (2006). http://www.in.tum.de/~berghofe/papers/Poplmark/

  10. Berghofer, S., Urban, C.: A head-to-head comparison of de bruijn indices and names. Electron. Notes Theor. Comput. Sci. 174(5), 53–67 (2007). doi:10.1016/j.entcs.2007.01.018

    Article  Google Scholar 

  11. Bruijn, N.: Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church–Rosser theorem. Indag. Math. 34(5), 381–392 (1972). http://alexandria.tue.nl/repository/freearticles/597619.pdf

    Google Scholar 

  12. Charguéraud, A.: Working with coq on the poplmark challenge. Available electronically at http://www.chargueraud.org/arthur/research/2006/poplmark/

  13. Gordon, A.D.: A mechanisation of name-carrying syntax up to alpha-conversion. In: HUG ’93: Proceedings of the 6th International Workshop on Higher Order Logic Theorem Proving and its Applications, pp. 413–425. Springer, London, UK (1994)

    Chapter  Google Scholar 

  14. Huet, G.: Residual theory in λ-calculus: a formal development. J. Funct. Program. 4(3), 371–394 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  15. Leroy, X.: A locally nameless solution to the POPLmark challenge. Research Report RR-6098, INRIA (2007). http://hal.inria.fr/inria-00123945/en/

  16. McBride, C., McKinna, J.: Functional pearl: i am not a number–i am a free variable. In: Haskell ’04: Proceedings of the 2004 ACM SIGPLAN Workshop on Haskell, pp. 1–9. ACM, New York, NY, USA (2004). doi:10.1145/1017472.1017477

    Chapter  Google Scholar 

  17. Mckinna, J., Pollack, R.: Some lambda calculus and type theory formalized. J. Autom. Reason. 23(3), 373–409 (1999). doi:10.1023/A:1006294005493

    Article  MathSciNet  MATH  Google Scholar 

  18. Nipkow, T.: More Church–Rosser proofs (in Isabelle/HOL. J. Autom. Reason. 26(1), 51–66 (2001). doi:10.1023/A:1006496715975

    Article  MathSciNet  MATH  Google Scholar 

  19. Pfenning, F., Elliot, C.: Higher-order abstract syntax. In: PLDI ’88: Proceedings of the ACM SIGPLAN 1988 Conference on Programming Language Design and Implementation, pp. 199–208. ACM, New York, NY, USA (1988). doi:10.1145/53990.54010

    Chapter  Google Scholar 

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

    Article  MathSciNet  MATH  Google Scholar 

  21. Rasmussen, O.: The Church–Rosser theorem in Isabelle: a proof porting experiment. Tech. Rep. 364, University of Cambridge, Computer Laboratory (1995). http://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-364.ps.gz

  22. Shankar, N.: A mechanical proof of the Church–Rosser theorem. J. ACM 35(3), 475–522 (1988). doi:10.1145/44483.44484. http://portal.acm.org/citation.cfm?id=44484

    Article  MathSciNet  MATH  Google Scholar 

  23. The Coq Development Team: The coq proof assistant reference manual—version V8.2 (2008). http://coq.inria.fr

  24. Urban, C.: Nominal techniques in isabelle/hol. J. Autom. Reason. 40(4), 327–356 (2008). doi:10.1007/s10817-008-9097-2

    Article  MathSciNet  MATH  Google Scholar 

  25. Urban, C., Berghofer, S., Norrish, M.: Barendregt’s variable convention in rule inductions. In: CADE-21: Proceedings of the 21st International Conference on Automated Deduction, pp. 35–50. Springer, Berlin, Heidelberg (2007). doi:10.1007/978-3-540-73595-3_4

    Chapter  Google Scholar 

  26. Vouillon, J.: Solution to the poplmark challenge in coq (2005). Available electronically at http://alliance.seas.upenn.edu/~plclub/cgi-bin/poplmark/

  27. Vouillon, J.: Polymorphic regular tree types and patterns. In: POPL ’06: Conference Record of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 103–114. ACM, New York, NY, USA (2006). doi:10.1145/1111037.1111047

    Chapter  Google Scholar 

  28. Vouillon, J., Melliès, P.A.: Semantic types: a fresh look at the ideal model for types. In: POPL ’04: Proceedings of the 31st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 52–63. ACM, New York, NY, USA (2004). doi:10.1145/964001.964006

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jérôme Vouillon.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Vouillon, J. A Solution to the PoplMark Challenge Based on de Bruijn Indices. J Autom Reasoning 49, 327–362 (2012). https://doi.org/10.1007/s10817-011-9230-5

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10817-011-9230-5

Keywords

Navigation