A Two-Level Logic Perspective on (Simultaneous) Substitutions
Abstract
Lambda-tree syntax (λts), also known as higher-order abstract syntax (hoas), is a representational technique where the pure λ-calculus in a meta language is used to represent binding constructs in an object language. A key feature of λts is that capture-avoiding substitution in the object language is represented by β-reduction in the meta language. However, to reason about the meta-theory of (simultaneous) substitutions , it may seem that λts gets in the way: not only does iterated β-reduction not capture simultaneity, but also β-redexes are not first-class constructs. This paper proposes a representation of (simultaneous) substitutions in the two-level logic approach (2lla), where properties of a specification language are established in a strong reasoning meta-logic that supports inductive reasoning. A substitution, which is a partial map from variables to terms, is represented in a form similar to typing contexts, which are partial maps from variables to types; both are first-class in 2lla. The standard typing rules for substitutions are then just a kind of context relation that are already well-known in 2lla. This representation neither changes the reasoning kernel, nor requires any modification of existing type systems, and does not sacrifice any expressivity.
Origin | Files produced by the author(s) |
---|
Loading...