Title
Formal neighbourhoods, combinatory Böhm trees, and untyped normalization by evaluation.
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 Böhm tree of the term. The notion of combinatory Böhm tree is analogous to the usual notion of Böhm 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 Böhm tree as a filter of such formal neighbourhoods. We also define formal topology style denotational semantics of a fragment of Haskell following Martin-Löf, and let each closed program denote a filter of formal neighbourhoods. We prove that the denotation of the output of our algorithm is the Böhm 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
DOI
Venue
2012
10.1016/j.apal.2011.06.021
Annals of Pure and Applied Logic
Keywords
Field
DocType
F.4.1,F.3.2,F.3.1,D.3.1
Discrete mathematics,Lambda calculus,Denotation,Functional programming,Algebra,Combinatory logic,Lazy evaluation,Denotational semantics,Correctness,Haskell,Mathematics
Journal
Volume
Issue
ISSN
163
2
0168-0072
Citations 
PageRank 
References 
2
0.38
15
Authors
2
Name
Order
Citations
PageRank
Peter Dybjer154076.99
Denis Kuperberg2419.68