POPLMark reloaded: mechanizing proofs by logical relations

Andreas Abel, Guillaume Allais, Aliya Hameer, Brigitte Pientka, Alberto Momigliano, Steven Schäfer, Kathrin Stark

Research output: Contribution to journalArticlepeer-review

26 Citations (Scopus)

Abstract

We propose 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. In particular, we focus on proofs using logical relations (LRs) and propose establishing strong normalization of a simply typed calculus with a proof by Kripke-style LRs as a benchmark. We give a modern view of this well-understood problem by formulating our LR on well-typed terms. Using this case study, we share some of the lessons learned tackling this problem in different dependently typed proof environments. In particular, we consider the mechanization in Beluga, a proof environment that supports higher-order abstract syntax encodings and contrast it to the development and strategies used in general-purpose proof assistants such as Coq and Agda. The goal of this paper is to engage the community in discussions on what support in proof environments is needed to truly bring mechanized metatheory to the masses and engage said community in the crafting of future benchmarks.
Original languageEnglish
Article numbere19
Number of pages43
JournalJournal of Functional Programming
Volume29
DOIs
Publication statusPublished - 10 Dec 2019

Keywords

  • logical relations
  • proofs
  • benchmark

Fingerprint

Dive into the research topics of 'POPLMark reloaded: mechanizing proofs by logical relations'. Together they form a unique fingerprint.

Cite this