Combining de Bruijn indices and higher-order abstract syntax in Coq

13Citations
Citations of this article
10Readers
Mendeley users who have this article in their library.
Get full text

Abstract

The use of higher-order abstract syntax is an important approach for the representation of binding constructs in encodings of languages and logics in a logical framework. Formal meta-reasoning about such object languages is a particular challenge. We present a mechanism for such reasoning, formalized in Coq, inspired by the Hybrid tool in Isabelle. At the base level, we define a de Bruijn representation of terms with basic operations and a reasoning framework. At a higher level, we can represent languages and reason about them using higher-order syntax. We take advantage of Coq's constructive logic by formulating many definitions as Coq programs. We illustrate the method on two examples: the untyped lambda calculus and quantified propositional logic. For each language, we can define recursion and induction principles that work directly on the higher-order syntax. © Springer-Verlag Berlin Heidelberg 2007.

Cite

CITATION STYLE

APA

Capretta, V., & Felty, A. P. (2007). Combining de Bruijn indices and higher-order abstract syntax in Coq. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 4502 LNCS, pp. 63–77). Springer Verlag. https://doi.org/10.1007/978-3-540-74464-1_5

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free