1999
DOI: 10.1017/s0956796899003366
|View full text |Cite
|
Sign up to set email alerts
|

de Bruijn notation as a nested datatype

Abstract: “I have no data yet. It is a capital mistake to theorise before one has data.” Sir Arthur Conan Doyle The Adventures of Sherlock Holmesde Bruijn notation is a coding of lambda terms in which each occurrence of a bound variable x is replaced by a natural number, indicating the ‘distance’ from the occurrence to the abstraction that introduced x. One might suppose that in any datatype for representing de Bruijn terms, the distance restriction on numbers would have to be maintained as an explicit datatype in… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
122
0

Year Published

2005
2005
2017
2017

Publication Types

Select...
6
1
1

Relationship

0
8

Authors

Journals

citations
Cited by 118 publications
(122 citation statements)
references
References 10 publications
(5 reference statements)
0
122
0
Order By: Relevance
“…Therefore, only b appears in the displayed right-hand side of the recursive equation. 4 Viewed from a different angle that already accepts to use Mendler's style, the variable j is there only for type-checking purposes: It allows to get a well-typed step term although it will not be visible afterwards. The advantage of this artifact is that no modification of the ambient type system is needed.…”
Section: Bushesmentioning
confidence: 99%
See 1 more Smart Citation
“…Therefore, only b appears in the displayed right-hand side of the recursive equation. 4 Viewed from a different angle that already accepts to use Mendler's style, the variable j is there only for type-checking purposes: It allows to get a well-typed step term although it will not be visible afterwards. The advantage of this artifact is that no modification of the ambient type system is needed.…”
Section: Bushesmentioning
confidence: 99%
“…A simple example of a nested datatype where an invariant is guaranteed through its definition are the powerlists [2], with recursive equation PList A = A + PList(A × A), where the type PList A represents trees of 2 n elements of A with some n ≥ 0 (that is not fixed) since, throughout this article, we will only consider the least solutions to these equations. The basic example where variable binding is represented through a nested datatype is a higherorder de Bruijn representation of untyped lambda calculus, following ideas of [3][4][5]. The lambda terms with free variables taken from A are given by Lam A, with recursive equation…”
Section: Introductionmentioning
confidence: 99%
“…For example, the following definition introduces a type of λ-terms over variables drawn from α, with De Bruijn notation for bound variables [8]:…”
Section: )mentioning
confidence: 99%
“…The Maybe approach, also known as the nested data type approach (Bellegarde & Hook, 1994;Bird & Paterson, 1999;Altenkirch & Reus, 1999), is a first step towards better describing the binding structure of terms, and enforcing stronger guarantees about code that manipulates terms. Let us start with the definition of the type of λ -terms with this approach:…”
Section: The Maybe Approachmentioning
confidence: 99%