It Is Time to Mechanize Programming Language Metatheory

How close are we to a world in which mechanically verified software is commonplace? A world in which theorem proving technology is used routinely by both software developers and programming language researchers alike? One crucial step towards achieving these goals is mechanized reasoning about language metatheory. The time has come to bring together the theorem proving and programming language communities to address this problem. We have proposed the POPLMark challenge as a concrete set of benchmarks intended both for measuring progress in this area and for stimulating discussion and collaboration. Our goal is to push the boundaries of existing technology to the point where we can achieve mechanized metatheory for the masses.

[1]  Robert W. Floyd,et al.  Assigning Meanings to Programs , 1993 .

[2]  Jaime G. Carbonell,et al.  Automated Deduction — CADE-16 , 2002, Lecture Notes in Computer Science.

[3]  Frank Pfenning,et al.  System Description: Twelf - A Meta-Logical Framework for Deductive Systems , 1999, CADE.

[4]  J. S. Moore,et al.  A Grand Challenge Proposal for Formal Methods: A Verified Stack , 2002, 10th Anniversary Colloquium of UNU/IIST.

[5]  Benjamin C. Pierce,et al.  Theoretical Aspects of Computer Software , 2001, Lecture Notes in Computer Science.

[6]  Natarajan Shankar,et al.  PVS: Combining Specification, Proof Checking, and Model Checking , 1996, FMCAD.

[7]  Giorgio Ghelli,et al.  Coherence of Subsumption, Minimum Typing and Type-Checking in F<= , 1992, Math. Struct. Comput. Sci..

[8]  John C. Mitchell,et al.  Theoretical aspects of object-oriented programming: types, semantics, and language design , 1994, Choice Reviews Online.

[9]  Philip Wadler,et al.  Featherweight Java: a minimal core calculus for Java and GJ , 1999, OOPSLA '99.

[10]  C. A. R. Hoare The Verifying Compiler, a Grand Challenge for Computing Research , 2005, VMCAI.

[11]  George Porter,et al.  The apprentice challenge , 2002, TOPL.

[12]  David B. MacQueen,et al.  The Definition of Standard ML (Revised) , 1997 .

[13]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[14]  Toby Walsh,et al.  CSPLIB: A Benchmark Library for Constraints , 1999, CP.

[15]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

[16]  Benjamin C. Pierce,et al.  Mechanized Metatheory for the Masses: The PoplMark Challenge , 2005, TPHOLs.

[17]  Tobias Nipkow,et al.  A Proof Assistant for Higher-Order Logic , 2002 .

[18]  J. Schwartz Mathematical Aspects of Computer Science , 1967 .

[19]  Robin Milner,et al.  Definition of standard ML , 1990 .

[20]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[21]  Geoff Sutcliffe,et al.  The TPTP Problem Library , 1994, Journal of Automated Reasoning.

[22]  Luca Cardelli,et al.  An Extension of System F with Subtyping , 1991, TACS.

[23]  G. M. Clemence,et al.  Blow up of smooth solutions to the barotropic compressible magnetohydrodynamic equations with finite mass and energy , 2008, 0811.4359.

[24]  Pierre Castéran,et al.  Interactive Theorem Proving and Program Development , 2004, Texts in Theoretical Computer Science An EATCS Series.