Mechanized Metatheory for the Masses: The PoplMark Challenge

@inproceedings{Aydemir2005MechanizedMF,
  title={Mechanized Metatheory for the Masses: The PoplMark Challenge},
  author={Brian E. Aydemir and Aaron Bohannon and Matthew Fairbairn and Nate Foster and Benjamin C. Pierce and Peter Sewell and Dimitrios Vytiniotis and Geoffrey Washburn and Stephanie Weirich and Steve Zdancewic},
  booktitle={TPHOLs},
  year={2005}
}
How close are we to a world where every paper on programming languages is accompanied by an electronic appendix with machine-checked proofs? We propose an initial set of benchmarks for measuring progress in this area. Based on the metatheory of System F<:, a typed lambda-calculus with second-order polymorphism, subtyping, and records, these benchmarks embody many aspects of programming languages that are challenging to formalize: variable binding at both the term and type levels, syntactic… 
A weak HOAS approach to the POPLmark Challenge
TLDR
A weak Higher-Order Abstract Syntax formalization of the type language of pure System F<: within Coq, a proof assistant based on the Calculus of Inductive Constructions to accomplish the proof of the transitivity property of algorithmic subtyping.
A List-machine Benchmark for Mechanized Metatheory: (Extended Abstract)
A List-Machine Benchmark for Mechanized Metatheory
TLDR
A benchmark to compare theorem-proving systems on their ability to express proofs of compiler correctness, and specific criteria for evaluating the utility of mechanized metatheory systems are proposed.
Mechanized Metatheory Revisited: An Extended Abstract
TLDR
The argument that bindings are such an intimate aspect of the structure of expressions that they should be accounted for directly in the underlying programming language support for proof assistants and not added later using packages and libraries is put forward.
POPLMark reloaded: Mechanizing proofs by logical relations
TLDR
A new collection of benchmark problems in mechanizing the metatheory of programming languages, in order to compare and push the state of the art of proof assistants, focuses on proofs using logical relations (LRs) and proposes establishing strong normalization of a simply typed calculus with a proof by Kripke-style LRs as a benchmark.
1 : 12 Mechanized Metatheory Revisited : An Extended Abstract 3
TLDR
The argument that bindings are such an intimate aspect of the structure of expressions that they should be accounted for directly in the underlying programming language support for proof assistants and not added later using packages and libraries is put forward.
Mechanized Metatheory Revisited
  • Dale Miller
  • Computer Science
    Journal of Automated Reasoning
  • 2018
TLDR
This work puts forward the argument that bindings are such an intimate aspect of the structure of expressions that they should be accounted for directly in the underlying programming language support for proof assistants and not via packages and libraries.
Soundness of the simply typed lambda calculus in ACL2
TLDR
A method is introduced for performing proofs in ACL2 of the soundness of the simply typed λ-calculus, including a macro which automates the process of defining functions and theorems to facilitate reasoning about recursive data types.
It Is Time to Mechanize Programming Language Metatheory
TLDR
The POPLMark challenge is proposed as a concrete set of benchmarks intended both for measuring progress in this area and for stimulating discussion and collaboration to achieve mechanized metatheory for the masses.
...
...

References

SHOWING 1-10 OF 77 REFERENCES
A Syntactic Approach to Type Soundness
TLDR
A new approach to proving type soundness for Hindley/Milner-style polymorphic type systems by an adaptation of subject reduction theorems from combinatory logic to programming languages and the use of rewriting techniques for the specification of the language semantics is presented.
Type Inference Verified: Algorithm W in Isabelle/HOL
This paper presents the first machine-checked verification of Milner's type inference algorithm W for computing the most general type of an untyped λ-term enriched with let-expressions. This term
A new approach to abstract syntax involving binders
  • M. GabbayA. Pitts
  • Computer Science
    Proceedings. 14th Symposium on Logic in Computer Science (Cat. No. PR00158)
  • 1999
TLDR
It is shown that in FM-set theory one can express statements quantifying over 'fresh' names and this is used to give a novel set-theoretic interpretation of name abstraction.
Extensible records in a pure calculus of subtyping
TLDR
It is argued that thinking in terms of translations may help in simplifying and organizing the various record calculi that have been proposed, as well as in generating new ones.
Some Lambda Calculus and Type Theory Formalized
TLDR
A substantial body of knowledge about lambda calculus and Pure Type Systems is surveyed, formally developed in a constructive type theory using the LEGO proof system, leading to the strengthening lemma.
Certification of a Type Inference Tool for ML: Damas–Milner within Coq
TLDR
This paper presents the Coq formalization of the typing system and its inference algorithm, and establishes formally the correctness and the completeness of the type inference algorithm with respect to the typing rules of the language.
A definitional approach to primitivexs recursion over higher order abstract syntax
TLDR
The existence of a combinator for primitive recursion with parameters over HOAS is proved, and the definition of the combinator is facilitated by the use of terms with infinite contexts.
Types and programming languages
TLDR
This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages, with a variety of approaches to modeling the features of object-oriented languages.
Executing Higher Order Logic
TLDR
The design of a prototyping component for the theorem prover Isabelle/HOL is reported on, consisting of datatypes, recursive functions and inductive definitions, which are compiled into a functional program.
...
...