An algorithm for testing conversion in type theory
Logical frameworks
MetaML and multi-stage programming with explicit annotations
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
&pgr;-calculus in (Co)inductive-type theory
Theoretical Computer Science - Special issues on models and paradigms for concurrency
Primitive recursion for higher-order abstract syntax
Theoretical Computer Science
Inductive Definitions in the system Coq - Rules and Properties
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
Recursion for Higher-Order Encodings
CSL '01 Proceedings of the 15th International Workshop on Computer Science Logic
A New Approach to Abstract Syntax Involving Binders
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
Semantical Analysis of Higher-Order Abstract Syntax
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
A definitional approach to primitivexs recursion over higher order abstract syntax
MERLIN '03 Proceedings of the 2003 ACM SIGPLAN workshop on Mechanized reasoning about languages with variable binding
Combining higher-order abstract syntax with first-order abstract syntax in ATS
Proceedings of the 3rd ACM SIGPLAN workshop on Mechanized reasoning about languages with variable binding
Functional Programming With Higher-order Abstract Syntax and Explicit Substitutions
Electronic Notes in Theoretical Computer Science (ENTCS)
Mechanizing metatheory in a logical framework
Journal of Functional Programming
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Transactions on Computational Logic (TOCL)
Programming with proofs and explicit contexts
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
Electronic Notes in Theoretical Computer Science (ENTCS)
Case Analysis of Higher-Order Data
Electronic Notes in Theoretical Computer Science (ENTCS)
Directly reflective meta-programming
Higher-Order and Symbolic Computation
Combining de Bruijn indices and higher-order abstract syntax in Coq
TYPES'06 Proceedings of the 2006 international conference on Types for proofs and programs
Practical programming with higher-order encodings and dependent types
ESOP'08/ETAPS'08 Proceedings of the Theory and practice of software, 17th European conference on Programming languages and systems
A fresh look at programming with names and binders
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Journal of Automated Reasoning
Mtac: a monad for typed tactic programming in Coq
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
Higher-order encodings use functions provided by one language to represent variable binders of another. They lead to concise and elegant representations, which historically have been difficult to analyze and manipulate. In this paper we present the $\nabla$-calculus, a calculus for defining general recursive functions over higher-order encodings. To avoid problems commonly associated with using the same function space for representations and computations, we separate one from the other. The simply-typed λ-calculus plays the role of the representation-level. The computation-level contains not only the usual computational primitives but also an embedding of the representation-level. It distinguishes itself from similar systems by allowing recursion under representation-level λ-binders while permitting a natural style of programming which we believe scales to other logical frameworks. Sample programs include bracket abstraction, parallel reduction, and an evaluator for a simple language with first-class continuations.