Mechanized Metatheory Revisited

Research output: Contribution to journalArticlepeer-review

Abstract

When proof assistants and theorem provers implement the metatheory of logical systems, they must deal with a range of syntactic expressions (e.g., types, formulas, and proofs) that involve variable bindings. Since most mature proof assistants do not have built-in methods to treat bindings, they have been extended with various packages and libraries that allow them to encode such syntax using, for example, de Bruijn numerals. We put 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. We present an approach to designing programming languages and proof assistants that directly supports bindings in syntax. The roots of this approach can be found in the mobility of binders between term-level bindings, formula-level bindings (quantifiers), and proof-level bindings (eigenvariables). In particular, the combination of Church’s approach to terms and formulas (found in his Simple Theory of Types) and Gentzen’s approach to proofs (found in his sequent calculus) yields a framework for the interaction of bindings with a full range of logical connectives and quantifiers. We will also illustrate how that framework provides a direct and semantically clean treatment of computation and reasoning with syntax containing bindings. Some implemented systems, which support this intimate and built-in treatment of bindings, will be briefly described.

Original languageEnglish
Pages (from-to)625-665
Number of pages41
JournalJournal of Automated Reasoning
Volume63
Issue number3
DOIs
Publication statusPublished - 15 Oct 2019

Keywords

  • Mechanized metatheory
  • Mobility of binders
  • λ Tree syntax

Fingerprint

Dive into the research topics of 'Mechanized Metatheory Revisited'. Together they form a unique fingerprint.

Cite this