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.
Similar content being viewed by others
References
Altenkirch, T.: Constructions, inductive types and strong normalization. Ph.D. thesis, University of Edinburgh (1993)
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)
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
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
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)
Barras, B.: Coq en coq. Rapport de Recherche 3026, INRIA (1996)
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)
Barras, B.: Auto-validation d’un système de preuves avec familles inductives. Thèse de doctorat, Université Paris 7 (1999)
Berghofer, S.: A solution to the PoplMark challenge in Isabelle/HOL (2006). http://www.in.tum.de/~berghofe/papers/Poplmark/
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
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
Charguéraud, A.: Working with coq on the poplmark challenge. Available electronically at http://www.chargueraud.org/arthur/research/2006/poplmark/
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)
Huet, G.: Residual theory in λ-calculus: a formal development. J. Funct. Program. 4(3), 371–394 (1994)
Leroy, X.: A locally nameless solution to the POPLmark challenge. Research Report RR-6098, INRIA (2007). http://hal.inria.fr/inria-00123945/en/
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
Mckinna, J., Pollack, R.: Some lambda calculus and type theory formalized. J. Autom. Reason. 23(3), 373–409 (1999). doi:10.1023/A:1006294005493
Nipkow, T.: More Church–Rosser proofs (in Isabelle/HOL. J. Autom. Reason. 26(1), 51–66 (2001). doi:10.1023/A:1006496715975
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
Pitts, A.M.: Nominal logic, a first order theory of names and binding. Inf. Comput. 186, 165–193 (2003)
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
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
The Coq Development Team: The coq proof assistant reference manual—version V8.2 (2008). http://coq.inria.fr
Urban, C.: Nominal techniques in isabelle/hol. J. Autom. Reason. 40(4), 327–356 (2008). doi:10.1007/s10817-008-9097-2
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
Vouillon, J.: Solution to the poplmark challenge in coq (2005). Available electronically at http://alliance.seas.upenn.edu/~plclub/cgi-bin/poplmark/
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
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
Author information
Authors and Affiliations
Corresponding author
Rights 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
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10817-011-9230-5