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.
翻译:本文从绝对值和代数角度从绝对值和代数角度,通过对羊排微积分进行评价,对羊排微积分进行正常化研究; 论文第一部分分析Jung和Tiuryn通过Kripke逻辑关系对羊排的可定义性结果,并展示如何加以调整,以统一确定性和正常化,从而产生扩展性正常化结果; 在本文第二部分,通过考虑惯性Kripke关系(以Artin粘结形式),进一步细化分析,并显示提供了一个使术语正常化的功能; 在绝对胶合方面,通过评估使正常化。 技术开发包括对羊排微积分的语法和语义进行代数处理,使正常化功能的定义能够在简单打入的元体内给出。 在依赖型功能性编程语言中,对标准化的逐项评价方案进行了综合。