Denotational semantics of recursive types in synthetic guarded domain theory

Rasmus E. Møgelberg, M. Paviotti
{"title":"Denotational semantics of recursive types in synthetic guarded domain theory","authors":"Rasmus E. Møgelberg, M. Paviotti","doi":"10.1145/2933575.2934516","DOIUrl":null,"url":null,"abstract":"Guarded recursion is a form of recursion where recursive calls are guarded by delay modalities. Previous work has shown how guarded recursion is useful for reasoning operationally about programming languages with advanced features including general references, recursive types, countable non-determinism and concurrency.Guarded recursion also offers a way of adding recursion to type theory while maintaining logical consistency. In previous work we initiated a programme of denotational semantics in type theory using guarded recursion, by constructing a computationally adequate model of the language PCF (simply typed lambda calculus with fixed points). This model was intensional in that it could distinguish between computations computing the same result using a different number of fixed point unfoldings.In this work we show how also programming languages with recursive types can be given denotational semantics in type theory with guarded recursion. More precisely, we give a computationally adequate denotational semantics to the language FPC (simply typed lambda calculus extended with recursive types), modelling recursive types using guarded recursive types. The model is inten-sional in the same way as was the case in previous work, but we show how to recover extensionality using a logical relation.All constructions and reasoning in this paper, including proofs of theorems such as soundness and adequacy, are by (informal) reasoning in type theory, often using guarded recursion.Categories and Subject Descriptors F.3.2 [Semantics of Programming Languages]: Denotational semantics; F.4.1 [Mathematical Logic and Formal Languages]: Lambda calculus and related systems","PeriodicalId":206395,"journal":{"name":"2016 31st Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)","volume":"16 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2016-07-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"21","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2016 31st Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2933575.2934516","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 21

Abstract

Guarded recursion is a form of recursion where recursive calls are guarded by delay modalities. Previous work has shown how guarded recursion is useful for reasoning operationally about programming languages with advanced features including general references, recursive types, countable non-determinism and concurrency.Guarded recursion also offers a way of adding recursion to type theory while maintaining logical consistency. In previous work we initiated a programme of denotational semantics in type theory using guarded recursion, by constructing a computationally adequate model of the language PCF (simply typed lambda calculus with fixed points). This model was intensional in that it could distinguish between computations computing the same result using a different number of fixed point unfoldings.In this work we show how also programming languages with recursive types can be given denotational semantics in type theory with guarded recursion. More precisely, we give a computationally adequate denotational semantics to the language FPC (simply typed lambda calculus extended with recursive types), modelling recursive types using guarded recursive types. The model is inten-sional in the same way as was the case in previous work, but we show how to recover extensionality using a logical relation.All constructions and reasoning in this paper, including proofs of theorems such as soundness and adequacy, are by (informal) reasoning in type theory, often using guarded recursion.Categories and Subject Descriptors F.3.2 [Semantics of Programming Languages]: Denotational semantics; F.4.1 [Mathematical Logic and Formal Languages]: Lambda calculus and related systems
综合保护域理论中递归类型的指称语义
保护递归是递归的一种形式,递归调用由延迟模式保护。以前的工作已经表明,保护递归对于具有高级特性的编程语言的操作推理是如何有用的,这些高级特性包括一般引用、递归类型、可数非确定性和并发性。保护递归还提供了一种将递归添加到类型理论中同时保持逻辑一致性的方法。在以前的工作中,我们通过构建PCF语言(带不动点的简单类型λ演算)的计算充分模型,在类型理论中使用保护递归启动了一个指称语义程序。这个模型是有内涵的,因为它可以区分使用不同数量的不动点展开来计算相同结果的计算。在这项工作中,我们展示了递归类型的编程语言如何在有保护递归的类型理论中被赋予指称语义。更准确地说,我们为FPC语言(用递归类型扩展的简单类型lambda演算)提供了计算上足够的指称语义,使用受保护的递归类型对递归类型进行建模。与之前的工作一样,该模型是内向性的,但我们展示了如何使用逻辑关系恢复外延性。本文中所有的构造和推理,包括定理的证明,如健全性和充分性,都是通过类型论中的(非正式)推理,通常使用保护递归。F.3.2[程序设计语言的语义]:指称语义;F.4.1[数理逻辑和形式语言]:Lambda演算和相关系统
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信