Abstract

We formulate principles of induction and recursion for a variant of lambda calculus in its original syntax (i.e., with only one sort of names) where α-conversion is based upon name swapping as in nominal abstract syntax. The principles allow to work modulo α-conversion and implement the Barendregt variable convention. We derive them all from the simple structural induction principle on concrete terms and work out applications to some fundamental meta-theoretical results, such as the substitution lemma for α-conversion and the lemma on substitution composition. The whole work is implemented in Agda.

Highlights

  • We are interested in methods for formalising in constructive type theory the metatheory of the lambda-calculus

  • The problem has to do with the fact that the consideration of the α-equivalence classes is conducted through the use of convenient representatives thereof. These are chosen by the so-called Barendregt Variable Convention (BVC): each term representing its α-class is assumed to have bound names all different and different from all names free in the current context

  • The main contribution of this work is a full implementation in Constructive Type Theory of principles of induction and recursion allowing to work on α-classes of terms of the lambda calculus

Read more

Summary

Introduction

We are interested in methods for formalising in constructive type theory the metatheory of the lambda-calculus. In the first case the solution rests upon a weak version of higher-order abstract syntax, whereas the second one is an axiomatisation in which — to [6] cited above— equality is postulated as embodying α-conversion and a model of the system based on locally nameless syntax has been constructed Another approach to the formulation of the alpha-structural principles originates in the observation that, if the property to be tried is α-compatible —i.e., it is a property of the α-classes and not just of the concrete terms— (complete) induction on the size of terms can be used to bridge over the possible gap pointed out above in proofs by induction that confine themselves to convenient choice of bound names. The entire code is available at: https://github.com/ernius/formalmetatheory-nominal and has been compiled with the last Agda version 2.4.2.2 and 0.9 standard library

Infrastructure
Syntax
Alpha-Structural Induction and Recursion Principles
Applications in Meta-Theory
Free Variables
Substitution
Conclusions
Case Analysis and Examining Constructor Arguments
Alpha Equality
Recursion Mentioning a Bound Variable
Recursion with an Additional Parameter
Recursion with Varying Parameters and Terms as Range
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call