| | |
Summary: Normalization by Evaluation Does not Need
Types
Klaus Aehlig \Lambda
Abstract
A variant of normalization by evaluation is presented that works for
weakly normalizing terms of the untyped –calculus. The main tool is
defining the (semantical) application in such a way that applying a syn
tactical object to an arguments performs the application by bringing the
argument into the syntax as well.
1 Introduction and related work
Normalization by evaluation [3] is usually presented as follows: Take an appro
priate semantics for the typed –calculus and define evaluation ``as usual''. Be
cause fijequality holds in the ``real world'', normalization is already performed
by evaluation. The task then is to get a syntactical representation out of the
semantical object. This is usually achieved by defining two functionals '' ae and # ae
(also called ``make self evaluating''/``procedure to object'' or ``reflect''/``reify'')
for every type by induction on the type.
Although this approach has been generalized [1, 6] to polymorphic types and
system F or by adding constants [2] the restriction to typed terms and the
requirement of knowing the type still seems to be a major restriction to the use
|