PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
A functional theory of local names
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Bananas in space: extending fold and unfold to exponential types
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Revisiting catamorphisms over datatypes with embedded functions (or, programs from outer space)
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Primitive recursion for higher-order abstract syntax
Theoretical Computer Science
Semantical Analysis of Higher-Order Abstract Syntax
LICS '99 Proceedings of the 14th Annual IEEE Symposium on Logic in Computer Science
Boxes go bananas: encoding higher-order abstract syntax with parametric polymorphism
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Functional pearl: i am not a number--i am a free variable
Haskell '04 Proceedings of the 2004 ACM SIGPLAN workshop on Haskell
A proof theory for generic judgments
ACM Transactions on Computational Logic (TOCL)
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Nominal Techniques in Isabelle/HOL
Journal of Automated Reasoning
Higher-order encodings with constructors
Higher-order encodings with constructors
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
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
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Mechanizing the metatheory of LF
ACM Transactions on Computational Logic (TOCL)
Hobbits for Haskell: a library for higher-order encodings in functional programming languages
Proceedings of the 4th ACM symposium on Haskell
Hi-index | 0.00 |
Although name-bindings are ubiquitous in computer science, they are well-known to be cumbersome to encode and reason about in logic and type theory. There are many proposed solutions to this problem in the literature, but most of these proposals, however, have been extensional, meaning they are defined in terms of other concepts in the theory. This makes it difficult to apply these proposals in intensional theories like the Calculus of Inductive Constructions, or CIC. In this paper, we introduce an approach to encoding name-bindings that is intensional, as it attempts to capture the meaning of a name-binding in itself. This approach combines in a straightforward manner with CIC to form the Calculus of Nominal Inductive Constructions, or CNIC. CNIC supports induction over data containing bindings, comparing of names for equality, and associating meta-language types with names in a fashion similar to HOAS, features which have been shown difficult to support in practice.