Implementing mathematics with the Nuprl proof development system
Implementing mathematics with the Nuprl proof development system
A framework for defining logics
Journal of the ACM (JACM)
Unification under a mixed prefix
Journal of Symbolic Computation
TIL: a type-directed optimizing compiler for ML
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
A notation for lambda terms. A generalization of environment
Theoretical Computer Science
Implementing typed intermediate languages
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Higher order unification via explicit substitutions
Information and Computation
Compiler Construction in Higher Order Logic Programming
PADL '02 Proceedings of the 4th International Symposium on Practical Aspects of Declarative Languages
Inductive Definitions in the system Coq - Rules and Properties
TLCA '93 Proceedings of the International Conference on Typed Lambda Calculi and Applications
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
System Description: Teyjus - A Compiler and Abstract Machine Based Implementation of lambda-Prolog
CADE-16 Proceedings of the 16th International Conference on Automated Deduction: Automated Deduction
System Description: Twelf - A Meta-Logical Framework for Deductive Systems
CADE-16 Proceedings of the 16th International Conference on Automated Deduction: Automated Deduction
Journal of Functional Programming
Explicit substitutions in the reduction of lambda terms
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
A treatment of higher-order features in logic programming
Theory and Practice of Logic Programming
Practical generic programming in OCaml
ML '07 Proceedings of the 2007 workshop on Workshop on ML
ACM Transactions on Computational Logic (TOCL)
LPAR'07 Proceedings of the 14th international conference on Logic for programming, artificial intelligence and reasoning
Hi-index | 0.00 |
Higher-order representations of objects such as programs, specifications and proofs are important to many metaprogramming and symbolic computation tasks. Systems that support such representations often depend on the implementation of an intensional view of the terms of suitable typed lambda calculi. Refined lambda calculus notations have been proposed that can be used in realizing such implementations. There are, however, choices in the actual deployment of such notations whose practical consequences are not well understood. Towards addressing this lacuna, the impact of three specific ideas is examined:the de Bruijn representation of bound variables, the explicit encoding of substitutions in terms and the annotation of terms to indicate their independence on external abstractions. Qualitative assessments are complemented by experiments over actual computations. The empirical study is based on 驴Prolog programs executed using suitable variants of a low level, abstract machine based implementation of this language.