### Skapa referens, olika format (klipp och klistra)

**Harvard**

Dybjer, P. och Kuperberg, D. (2012) *Formal neighbourhoods, combinatory Bohm trees, and untyped normalization by evaluation*.

** BibTeX **

@article{

Dybjer2012,

author={Dybjer, Peter and Kuperberg, D.},

title={Formal neighbourhoods, combinatory Bohm trees, and untyped normalization by evaluation},

journal={Annals of Pure and Applied Logic},

issn={0168-0072},

volume={163},

issue={2},

pages={122-131},

abstract={We prove the correctness of an algorithm for normalizing untyped combinator terms by evaluation. The algorithm is written in the functional programming language Haskell, and we prove that it lazily computes the combinatory Bohm tree of the term. The notion of combinatory Bohm tree is analogous to the usual notion of Bohm tree for the untyped lambda calculus. It is defined operationally by repeated head reduction of terms to head normal forms. We use formal neighbourhoods to characterize finite, partial information about data, and define a Bohm tree as a filter of such formal neighbourhoods. We also define formal topology style denotational semantics of a fragment of Haskell following Martin-Lof, and let each closed program denote a filter of formal neighbourhoods. We prove that the denotation of the output of our algorithm is the Bohm tree of the input term. The key construction in the proof is a "glueing" relation between terms and semantic neighbourhoods which is defined by induction on the latter. This relation is related to the glueing relation which was earlier used for proving the correctness of normalization by evaluation algorithm for typed combinatory logic. },

year={2012},

keywords={Combinatory logic, Normalization by evaluation, Formal neighbourhoods, Lazy evaluation, Bohm trees, domains, vautour m, 2004, untyped normalizatio },

}

** RefWorks **

RT Journal Article

SR Electronic

ID 154361

A1 Dybjer, Peter

A1 Kuperberg, D.

T1 Formal neighbourhoods, combinatory Bohm trees, and untyped normalization by evaluation

YR 2012

JF Annals of Pure and Applied Logic

SN 0168-0072

VO 163

IS 2

SP 122

OP 131

AB We prove the correctness of an algorithm for normalizing untyped combinator terms by evaluation. The algorithm is written in the functional programming language Haskell, and we prove that it lazily computes the combinatory Bohm tree of the term. The notion of combinatory Bohm tree is analogous to the usual notion of Bohm tree for the untyped lambda calculus. It is defined operationally by repeated head reduction of terms to head normal forms. We use formal neighbourhoods to characterize finite, partial information about data, and define a Bohm tree as a filter of such formal neighbourhoods. We also define formal topology style denotational semantics of a fragment of Haskell following Martin-Lof, and let each closed program denote a filter of formal neighbourhoods. We prove that the denotation of the output of our algorithm is the Bohm tree of the input term. The key construction in the proof is a "glueing" relation between terms and semantic neighbourhoods which is defined by induction on the latter. This relation is related to the glueing relation which was earlier used for proving the correctness of normalization by evaluation algorithm for typed combinatory logic.

LA eng

DO 10.1016/j.apal.2011.06.021

LK http://dx.doi.org/10.1016/j.apal.2011.06.021

OL 30