主机名:page-component-7bb8b95d7b-pwrkn总加载时间:0渲染日期:2024-09-25T18:49:53.810Z有数据问题:falsehasContentIssue为false

依赖互操作性的基础

部分: JFP研究文章

剑桥大学出版社在线出版:2018年3月13日

皮埃尔·埃瓦里斯特·达甘德
附属:
巴黎索邦大学,UPMC Univ Paris 06,CNRS,INRIA,LIP6 UMR 7606,Paris,France(电子邮件:pierre-evariste.dagand@inria.fr)
尼古拉斯·塔巴雷奥
附属:
INRIA,巴黎,法国(电子邮件:nicolas.tabareau@inria.fr)
埃里克·坦特
附属:
智利圣地亚哥智利大学计算机科学系(DCC)PLEIAD实验室(电子邮件:电子邮箱:dcc.uchile.cl)
权限和权限 [在新窗口中打开]

摘要

核心共享和HTML视图不适用于此内容。但是,由于您有权访问此内容,可以通过“保存PDF”操作按钮获得完整的PDF。

全谱依赖型有望开发出正确构建的软件。然而,即使是经过认证的软件也需要与简单类型或非类型的程序交互,无论是执行系统调用还是使用遗留库。为运行时检查交易静态保证依赖互操作性框架提供了一种机制,通过该机制,可以将简单类型的值安全地强制为依赖类型,相反,可以将依赖类型的程序以防御方式导出到简单类型的应用程序。在本文中,我们给出了依赖互操作性的语义描述。我们的介绍依赖于一个普遍存在的类型等价概念,并以该概念为指导,在最近关于同构类型理论的工作中,它的重要性得到了强调。具体来说,我们发展了以下概念类型理论部分伽罗瓦连接作为依赖互操作性的关键基础,它解释了类型之间强制的偏爱。我们探讨了类型论伽罗瓦连接和反连接在依赖互操作性设置中的适用性。部分Galois连接强制将依赖类型转换为运行时检查,相对于依赖类型编码的不变量,这些检查既可靠又完整。相反,选择一个反连接反而可以让我们产生较弱、健全的条件,从而实现更高效的运行时检查。

我们的框架是在Coq中开发的;因此,它具有建设性,并在严格意义上得到了验证。使用我们的库,用户可以指定数据结构之间特定于域的部分连接。然后,我们的库负责(有时是繁重的)导致可互操作程序的提升。因此,正如我们将要说明的那样,将独立类型程序的提取内部化并手动调整为Coq本身内可互操作的OCaml程序是可能的。

类型
文章
版权
版权所有©剑桥大学出版社2018

工具书类

阿尔滕基希,T。,McBride,C&斯威斯特拉,西。(2007)现在,观测值相等!《ACM编程语言与程序验证研讨会论文集》(PLPV'07),第57-68页。谷歌学者
阿沃迪,美国。&鲍尔,A。(2004)命题为[类型].J.日志。计算。 14 (4),447471.谷歌学者
巴尼亚多斯,F、。,加西亚,R。&坦特,É.(2014)渐进效应系统理论。在第19届ACM Sigplan函数编程会议(ICFP’14)的会议记录中。瑞典哥德堡:ACM,第283-295页。谷歌学者
巴尼亚多斯·施瓦特,F、。,加西亚,R。&坦特牌手表,É.(2016)渐变型和效果系统.J.功能。程序。 26,19:119:69.谷歌学者
鲍尔,A。,总量,J。,卢姆斯代恩,P.L.公司。,舒尔曼,M。,索佐,M。&溅出物,B。(2017)HoTT库:Coq中同伦类型理论的形式化。第六届ACM SIGPLAN认证程序和证明会议记录(CPP’17)。法国巴黎:ACM,第164–172页。谷歌学者
布利耶,美国。,佩德罗,下午。&塔巴罗,N。(2017)接下来的700个类型理论的句法模型。第六届ACM SIGPLAN认证程序和证明会议记录(CPP’17)。法国巴黎:ACM,第182-194页。谷歌学者
布雷迪,E.公司。,麦克布莱德,C、。&麦金纳,J。(2004)归纳家庭无需存储其索引.英寸证明和程序的类型,贝拉尔迪,斯特凡诺,科波,马里奥, &达米亚尼,费鲁乔(编辑),《计算机科学讲义》,第3085卷。Springer-Verlag公司,第页。115129.交叉参考谷歌学者
Chlipala公司,A。(2013)具有依赖类型的认证编程.麻省理工学院出版社.谷歌学者
公鸡,J。,德弗里斯,D。&皮森斯,F、。(2016)消除无K的依赖模式匹配.J.功能。程序。 26,e16(电子16).交叉参考谷歌学者
科恩,C、。,Dénès公司,M。&莫特伯格,A。(2013)免费精炼!《第三届认证课程和证明国际会议论文集》(CPP’13),第147-162页。谷歌学者
科斯莫,钢筋混凝土。(2005)类型同构的简要概述.数学。结构。计算。科学。 15 (5),825838.谷歌学者
达冈,私人有限公司。&麦克布莱德,C、。(2012)在饰品之间传递功能。在第17届ACM Sigplan函数编程会议(ICFP’12)的会议记录中。丹麦哥本哈根:ACM,第103–114页。谷歌学者
达冈,第-页。,塔巴罗,N。, &坦特,É.(2016)验证依赖互操作性的部分类型等效性。《第21届ACM Sigplan函数编程会议论文集》(ICFP’16)。日本奈良:ACM,第298-310页。谷歌学者
特拉华州,B。,赞美之声,C、。,总量,J。&Chlipala公司,A。(2015)菲亚特:在校对助手中抽象数据类型的演绎合成。第42届ACM SIGPLAN-SIGACT编程语言原理研讨会(POPL’15)会议记录。印度孟买:ACM,第689-700页。谷歌学者
迪士尼,T。&弗拉纳根,C、。(2011)渐进式信息流输入。《脚本到程序国际研讨会论文集》。谷歌学者
芬内尔,L。, &蒂埃曼,第页。(2013)带参考的逐步安全键入。第26届计算机安全基础研讨会(CSF)会议记录,第224-239页。交叉参考谷歌学者
查找器,钢筋混凝土。, &费雷森,M。(2002)高阶函数的合同。在第七届ACM SIGPLAN函数编程会议(ICFP'02)的会议记录中。美国宾夕法尼亚州匹兹堡:ACM。第48-59页。谷歌学者
加西亚,R。,克拉克,上午。&坦特,É.(2016)抽象的逐渐打字的。第43届ACM SIGPLAN-SIGACT编程语言原理研讨会(POPL’16)会议记录。美国佛罗里达州圣彼得堡:ACM,第429-442页。谷歌学者
Gonthier公司,G.公司。&马布希,A。(2010)Coq中的小尺度反射简介.J.形式化理由。 (2),95152.谷歌学者
霍夫曼,M。&斯特里彻,T。(1994)广群模型反驳了身份证明的唯一性。第九届计算机科学逻辑研讨会论文集(LICS’94)。IEEE计算机学会出版社,第208-212页。谷歌学者
海兰德,J·M·E。(1991)合成域理论的第一步。《国际范畴理论会议论文集》。意大利科莫:Springer-Verlag,第131-156页。谷歌学者
诺尔斯,英国。&弗拉纳根,C、。(2010)混合型检查.ACM事务处理。程序。语言系统。 32 (2),第6条。谷歌学者
让开,高-低。, &吉本斯,J。(2013)关系代数装饰品。在ACM SIGPLAN独立类型编程研讨会(DTP’13)的会议记录中。ACM,第37-48页。谷歌学者
劳伦特,O。(2005)类型的经典同构.数学。结构。计算。科学。 15 (5),9691004.谷歌学者
莱曼,N。&坦特,É.(2017)逐步细化类型。第44届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录(POPL’17)。法国巴黎:ACM,第775-788页。谷歌学者
勒图泽,第页。(2004)程序功能内尔证书–程序提取和辅助Coq南德巴黎大学博士论文。谷歌学者
征收,邮政信箱。(2017)上下文同构。第44届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录(POPL’17)。法国巴黎:ACM,第400-414页。谷歌学者
马修斯,J。, &查找器,钢筋混凝土。(2007)多语言程序的操作语义。第34届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录(POPL'07)。法国尼斯:ACM,第3-10页。谷歌学者
麦克布莱德,C、。(2000)有动机的消除。《国际证据和程序类型研讨会论文集》(类型2000),第197-216页。谷歌学者
麦克布莱德,C、。(2010)装饰代数,代数装饰斯特拉斯克莱德大学技术报告。谷歌学者
麦金纳,J。(2006)为什么依赖类型很重要。第33届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录(POPL'06)。美国南卡罗来纳州查尔斯顿:ACM,第1页。交叉参考谷歌学者
米什拉-林格,N。&剪切(Sheard),T。(2008)纯类型系统中的擦除和多态性。在第11届软件科学和计算结构基础国际会议论文集(FOSSACS'08)。计算机科学讲义,第4962卷。Springer-Verlag,第350-364页。谷歌学者
奥塞拉,下午。,Sjöberg公司,五、。&兹丹塞维奇,美国。(2012)依赖互操作性。在第六届编程语言研讨会会议记录中,遇到了程序验证(PLPV’12)。ACM,第3-14页。交叉参考谷歌学者
欧点,十、。,棕褐色,G.公司。,曼德尔鲍姆,Y。&散步的人,D。(2004)具有依赖类型的动态类型。《ifip理论计算机科学国际会议论文集》,第437-450页。谷歌学者
隆登,下午。,川口,M。&贾拉,R。(2008)液体类型。ACM SIGPLAN编程语言设计与实现会议记录(PLDI 2008)、古普塔、拉吉夫和阿马拉辛格,萨曼P.(编辑)。ACM,第159-169页。谷歌学者
关山,T。,西田,Y。, &五十岚,A。(2015)数据类型的清单契约。第42届ACM SIGPLAN-SIGACT编程语言原理研讨会(POPL’15)会议记录。印度孟买:ACM,第195-207页。谷歌学者
锡克,J。&塔哈,西。(2006)函数式语言的渐进式键入。《方案与功能编程研讨会论文集》,第81–92页。谷歌学者
锡克,J·G·。,维托塞克,M.M.先生。,奇米尼,M。&博伊兰德,J.T.公司。(2015)逐步键入的优化标准。《第一届编程语言进步峰会会议记录》(SNAPL’15),第274-293页。谷歌学者
索佐,M。(2010)方程式:一个相关的模式匹配编译器。第一届交互式定理证明国际会议论文集(ITP’10),考夫曼,M。&保尔森,拉丁美洲。(编辑)。《计算机科学讲义》,第6172卷。Springer-Verlag,第419-434页。谷歌学者
索索,M。&欧里,N。(2008)一流类型的课程。《第21届高阶逻辑定理证明国际会议论文集》,第278-293页。谷歌学者
斯威斯特拉,西。&Alpuim公司,J。(2016)从命题到程序——在Coq中嵌入精化演算。第13届函数与逻辑编程国际研讨会(FLOPS’16)会议记录,第29-44页。谷歌学者
坦特,É.&塔巴罗,N。(2015)Coq中的逐步认证编程。第11届ACM动态语言研讨会(DLS’15)会议记录。美国宾夕法尼亚州匹兹堡:ACM,第26-40页。谷歌学者
Coq开发团队. (2016)Coq证明助理参考手册8.6版。谷歌学者
单价基金项目. (2013)同伦类型理论:数学的单叶基础高级研究所:http://homotopypetheory.org/book.谷歌学者
蒂埃曼,第页。&芬内尔,L。(2014)注释类型系统的渐进式键入。第23届欧洲编程语言与系统研讨会(ESOP’14)会议记录,,Z.公司。(d)。《计算机科学讲义》,第8410卷。格勒诺布尔,法国:斯普林格·弗拉格出版社,第47-66页。谷歌学者
托罗,M。&坦特,É.(2015)Scala的可定制渐变多态效果。第30届ACM SIGPLAN面向对象编程系统、语言和应用会议论文集(OOPSLA’15)。美国宾夕法尼亚州匹兹堡:ACM,第935-953页。谷歌学者
瓦德勒,第页。&布洛特,美国。(1989)如何使即席多态性不那么即席。在第16届ACM程序设计语言原理研讨会论文集(POPL'89)。美国德克萨斯州奥斯汀:ACM,第60-76页。谷歌学者
威廉姆斯,T。,达冈,私人有限公司。&雷米,D。(2014)实践中的装饰品。第十届ACM SIGPLAN通用编程研讨会会议记录(WGP 2014),马加莱斯,J.P.公司。&龙普夫,T型(编辑)。瑞典哥德堡:ACM,第15-24页。谷歌学者
Xi(希),小时。&普芬宁,F、。(1998)通过依赖类型消除数组绑定检查。《ACM SIGPLAN编程语言设计与实现会议论文集》(PLDI’98)。ACM,第249-257页。谷歌学者
齐默尔曼,T。&赫伯林,小时。(2015)Coq证明助手中定理沿同构的自动透明传递.arXiv:1505.05028v4。谷歌学者
提交响应

讨论

尚未发布此文章的讨论。