Bindings as bounded natural functors
We present a general framework for specifying and reasoning about syntax with bindings. Abstract binder types are modeled using a universe of functors on sets, subject to a number of operations that can be used to construct complex binding patterns and binding-aware datatypes, including non-well-fou...
Saved in:
Published in | Proceedings of ACM on programming languages Vol. 3; no. POPL; pp. 1 - 34 |
---|---|
Main Authors | , , , |
Format | Journal Article |
Language | English |
Published |
New York, NY, USA
ACM
02.01.2019
|
Subjects | |
Online Access | Get full text |
Cover
Loading…
Summary: | We present a general framework for specifying and reasoning about syntax with bindings. Abstract binder types are modeled using a universe of functors on sets, subject to a number of operations that can be used to construct complex binding patterns and binding-aware datatypes, including non-well-founded and infinitely branching types, in a modular fashion. Despite not committing to any syntactic format, the framework is ``concrete'' enough to provide definitions of the fundamental operators on terms (free variables, alpha-equivalence, and capture-avoiding substitution) and reasoning and definition principles. This work is compatible with classical higher-order logic and has been formalized in the proof assistant Isabelle/HOL. |
---|---|
ISSN: | 2475-1421 2475-1421 |
DOI: | 10.1145/3290335 |