Abstract:This paper studies normalisation by evaluation for typed lambda calculus from a categorical and algebraic viewpoint. The first part of the paper analyses the lambda definability result of Jung and Tiuryn via Kripke logical relations and shows how it can be adapted to unify definability and normalisation, yielding an extensional normalisation result. In the second part of the paper the analysis is refined further by considering intensional Kripke relations (in the form of Artin glueing) and shown to provide a function for normalising terms, casting normalisation by evaluation in the context of categorical glueing. The technical development includes an algebraic treatment of the syntax and semantics of the typed lambda calculus that allows the definition of the normalisation function to be given within a simply typed metatheory. A normalisation-by-evaluation program in a dependently-typed functional programming language is synthesised.
What problem does this paper attempt to address?
The problems that this paper attempts to solve mainly focus on two aspects:
1. **Extensional Normalisation Problem**: Define normal terms and establish the equivalence relationship between each term and its normal form. Specifically, for a given type \(\tau\) and context \(\Gamma\), a set of normal terms \(N_\tau(\Gamma) \subseteq L_\tau(\Gamma)\) needs to be determined, and it needs to be proved that for each term \(t \in L_\tau(\Gamma)\), there exists a normal term \(N \in N_\tau(\Gamma)\) such that \(t =_{\beta\eta} N\).
2. **Intensional Normalisation Problem**: Define and prove the correctness of the normalisation function that maps terms to their normal forms. Specifically, construct a function \(nf_{\tau, \Gamma}: L_\tau(\Gamma) \to N_\tau(\Gamma)\) that satisfies the following three properties:
1. For all normal terms \(N \in N_\tau(\Gamma)\), \(nf_{\tau, \Gamma}(N) = N\).
2. For all terms \(t \in L_\tau(\Gamma)\), \(nf_{\tau, \Gamma}(t) =_{\beta\eta} t\).
3. For all pairs of terms \(t, t' \in L_\tau(\Gamma)\), if \(t =_{\beta\eta} t'\), then \(nf_{\tau, \Gamma}(t) = nf_{\tau, \Gamma}(t')\).
### Specific Content Analysis
#### Part One: From Definability to Normalisation
The first part shows how to adapt Jung and Tiuryn's lambda - definability results to unified definability and normalisation through Kripke logical relations by analyzing them, thus obtaining extensional normalisation results. This part also explores the concepts of neutral terms and normal terms and provides their semantic interpretations.
#### Part Two: Achieving Normalisation through Categorical Gluing
The second part further refines the analysis, considering the intensional Kripke relations in the form of Artin - Wraith gluing, and shows how to normalise terms through normalisation evaluation techniques. The work in this part finally formalises the close relationship between normalisation evaluation and categorical gluing.
### Technological Development
- The paper adopts an algebraic method to handle the syntax and semantics of simply - typed lambda calculus, so that the definition of the normalisation function can be given in a simple type meta - theory.
- A normalisation evaluation program in a dependently - typed functional programming language has been developed.
### Main Contributions
- It provides a new categorical - theoretic and algebraic perspective to study normalisation evaluation in typed lambda calculus.
- It unifies the two previously unconnected problems of definability and normalisation.
- It provides an in - depth understanding of the concepts of neutral terms and normal terms and their semantic backgrounds.
Through these works, the paper not only solves the above two core problems but also provides a solid theoretical basis and technical tools for further research.