6 research outputs found
Computing With Contexts A simple approach
AbstractThis article describes how the use of a higher-order syntax representation of contexts [due to A. Pitts] combines smoothly with higher-order syntax for evaluation rules, so that definitions can be extended to work over contexts. This provides “for free” — without the development of any new language-specific context calculi - evaluation rules for contexts which commute with hole-filling. We have found this to be a useful technique for directly reasoning about operational equivalence. A small illustration is given based on a unique fixed-point induction principle for a notion of guarded context in a functional language
A framework for studying substitution
This paper describes a framework for handling bound variable renaming and substitution mathematically rigorously with the aim at the same time to stay as close as possible to human intuitive preconception about the phenomena, so that proofs could be deduced from intuitive motivations more directly than in the case of standard approaches. The theory is developed for general multi-sorted term algebras with variable binding. Therefore, the results hold for a wide class of term calculi such as the λ-calculus, first-order predicate logic, the abstract syntax of programming languages etc
A theory of binding structures and applications to rewriting
AbstractIn this paper we present a theory of binding structures, and give examples of its application to rewriting. We define the set of binding structures as an abstract algebra, and define a general notion of parameterized homomorphism. A variety of operations on binding structures are presented as homomorphisms, and a collection of properties useful for developing applications is given. Three applications are presented: a generalized notion of term rewriting: a theory of unification for binding structures; and a set of structures and primitive rules intended to serve as a basis for design of rewriting components for (quantified) first-order reasoning systems