### 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.

### License

BSD License

### Topics

- Computer science/Programming languages/Lambda calculi

### Session Higher_Order_Terms

- Term_Utils
- Find_First
- Name
- Fresh_Monad
- Fresh_Class
- Term_Class
- Term
- Pats
- Nterm
- Term_to_Nterm
- Unification_Compat
- Lambda_Free_Compat

### Depends on

- Generating linear orders for datatypes
- Formalization of Recursive Path Orders for Lambda-Free Higher-Order Terms
- List Index

### Used by

- A Verified Code Generator from Isabelle/HOL to CakeML

### Auto-related entries

- Substitutions for Lambda-Free Higher-Order Terms
- A shallow embedding of HyperCTL*

## Cite

×

Higher_Order_Terms-AFP

    @article{Higher_Order_Terms-AFP,
      author  = {Lars Hupel},
      title   = {An Algebra for Higher-Order Terms},
      journal = {Archive of Formal Proofs},
      month   = {January},
      year    = {2019},
      note    = {\url{https://isa-afp.org/entries/Higher_Order_Terms.html},
                 Formal proof development},
      ISSN    = {2150-914x},
    }

Download

## Download

× Download latest

Older releases:

- Sep 13, 2023 : Isabelle2023
- Oct 27, 2022 : Isabelle2022
- Dec 14, 2021 : Isabelle2021-1
- Feb 23, 2021 : Isabelle2021
- Apr 18, 2020 : Isabelle2020
- Jun 11, 2019 : Isabelle2019
- Jan 15, 2019 : Isabelle2018