An Algebra for Higher-Order Terms


Title: An Algebra for Higher-Order Terms
Author: Lars Hupel
Contributor: Yu Zhang
Submission date: 2019-01-15
Abstract: In this formalization, I introduce a higher-order term algebra, generalizing the notions of free variables, matching, and substitution. The need arose from the work on a verified compiler from Isabelle to CakeML. Terms can be thought of as consisting of a generic (free variables, constants, application) and a specific part. As example applications, this entry provides instantiations for de-Bruijn terms, terms with named variables, and Blanchette’s λ-free higher-order terms. Furthermore, I implement translation functions between de-Bruijn terms and named terms and prove their correctness.
  author  = {Lars Hupel},
  title   = {An Algebra for Higher-Order Terms},
  journal = {Archive of Formal Proofs},
  month   = jan,
  year    = 2019,
  note    = {\url{},
            Formal proof development},
  ISSN    = {2150-914x},
License: BSD License
Depends on: Datatype_Order_Generator, Lambda_Free_RPOs, List-Index
Used by: CakeML_Codegen
Status: [ok] This is a development version of this entry. It might change over time and is not stable. Please refer to release versions for citations.