×

高阶逻辑中的效应多态性(证明珍珠)。 (英语) Zbl 1468.68062号

总结:概念单子由于类型系统限制,无法在高阶逻辑(HOL)中表示。我展示了如果单子被限制为固定类型的值,这个概念可以在HOL中形式化。基于这个想法,我开发了一个效果规范库以及monad和monad转换器的实现。因此,我可以对HOL定义中的具体单子进行抽象,从而对不同(组合)效果使用相同的定义。我用一元解释器说明了效果多态性的有用性。

MSC公司:

68甲18 函数编程和lambda演算
68N20型 编译与解释理论
60年第68季度 规范和验证(程序逻辑、模型检查等)
68V20型 数学形式化与定理证明
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Back,R.J.,Wright,J.:精化计算——系统介绍。柏林施普林格(1998)·Zbl 0949.68094号 ·doi:10.1007/978-1-4612-1674-2
[2] Ballarin,C.:Locales:数学理论的模块系统。J.自动化。原因。52(2), 123-153 (2014). https://doi.org/10.1007/s10817-013-9284-7 ·Zbl 1315.68218号 ·doi:10.1007/s10817-013-9284-7
[3] Blanchette,J.C.、Hölzl,J.、Lochbihler,A.、Panny,L.、Popescu,A.、Traytel,D.:Isabelle/HOL的真正模块化(co)数据类型。In:ITP 2014。LNCS,第8558卷,第93-110页。斯普林格(2014)·Zbl 1416.68151号
[4] Bulwahn,L.、Krauss,A.、Haftmann,F.、Erkök,L.和Matthews,J.:使用Isabelle/HOL的强制函数编程。In:TPHOLs 2008。LNCS,第5170卷,第134-149页。施普林格(2008)。https://doi.org/10.1007/978-3-540-71067-7_14 ·Zbl 1165.68352号
[5] Eberl,M.,Hölzl,J.,Nipkow,T.:概率密度函数的验证编译器。收录人:Vitek,J.(编辑)《2015年员工持股计划》。LNCS,第9032卷,第80-104页。斯普林格(2015)。https://doi.org/10.1007/978-3-662-46669-8_4 ·Zbl 1335.68037号
[6] Erwig,M.,Kollmansberger,S.:函数珍珠:Haskell中的概率函数编程。《功能程序杂志》16,21-34(2006)。https://doi.org/10.1017/S0956796805005721 ·Zbl 1091.68023号 ·doi:10.1017/S0956796805005721
[7] Gibbons,J.,Hinze,R.:只要做:简单的一元方程式推理。摘自:ICFP 2011,第2-14页。ACM(2011)。https://doi.org/10.1145/2034773.2034777 ·Zbl 1323.68207号
[8] Grimm,N.、Maillard,K.、Fournet,C.、Hriţcu,C.、Maffei,M.、Protzenko,J.、Ramananandro,T.、Rastogi,A.、Swamy,N.和Zanella Béguelin,S.:关系验证的一元框架:应用于信息安全、程序等效和优化。收录于:CPP 2018,第130-145页。ACM(2018)。https://doi.org/10.1145/3167090
[9] 哈里森:多任务的本质。收录:Johnson,M.,Vene,V.(编辑)《代数方法论和软件技术》(AMAST 2006)。LNCS,第4019卷,第158-172页。斯普林格(2006)。https://doi.org/10.1007/11784180_14 ·Zbl 1236.68038号
[10] Hinze,R.:起重操作员和法律。http://www.cs.ox.ac.uk/ralf.hinze/Lifting.pdf。2018年6月12日(2010年)访问
[11] Hölzl,J.,Lochbihler,A.,Traytel,D.:概率系统类型的形式化层次结构。致:ITP 2015。LNCS,第9236卷,第203-220页。施普林格(2015)。https://doi.org/10.1007/978-3-319-22102-1_13 ·Zbl 1465.68199号
[12] 霍米耶,P.V.:HOL-Omega逻辑。收录:Berghofer,S.、Nipkow,T.、Urban,C.、Wenzel,M.(编辑)TPHOLs 2009。LNCS,第5674卷,第244-259页。斯普林格(2009)。https://doi.org/10.1007/978-3642-03359-9_18 ·Zbl 1252.68257号
[13] 哈夫曼:单子变压器的正式验证。收录于:ICFP 2012,第15-16页。ACM(2012)。https://doi.org/10.1145/2364527.2364532 ·Zbl 1291.68145号
[14] Huffman,B.,Kunčar,O.:提升和转移:Isabelle/HOL中商的模块化设计。日期:CPP 2013。LNCS,第8307卷,第131-146页。施普林格(2013)。https://doi.org/10.1007/978-3-319-03545-1_9 ·Zbl 1426.68284号
[15] Huffman,B.,Matthews,J.,White,P.:Isabelle/HOLCF中的公理构造函数类。摘自:Hurd,J.、Melham,T.(编辑)TPHOLs。LNCS,第3603卷,第147-162页。斯普林格(2005)。https://doi.org/10.1007/11541868_10 ·Zbl 1152.68521号
[16] Hutton,G.:解析的高阶函数。J.功能。程序。2(3), 323-343 (1992) ·Zbl 0817.68097号 ·doi:10.1017/S0956796800000411
[17] Jeuring,J.、Jansson,P.、Amaral,C.:测试类型分类法。收录于:Haskell 2012,第49-60页。ACM(2012)。https://doi.org/10.1145/2364506.2364514
[18] Kunčar,O.:Isabelle循环检查器的正确性:在证明助手中重载的可实现性。收录于:CPP 2015,第85-94页。ACM(2015)。https://doi.org/10.1145/2676724.2693175
[19] Lammich,P.,Tuerk,T.:将一元程序的数据求精应用于Hopcroft算法。收录于:ITP 2012。LNCS,第7406卷,第166-182页。施普林格(2012)。https://doi.org/10.1007/978-3642-32347-8_12 ·Zbl 1360.68757号
[20] Liang,S.、Hudak,P.、Jones,M.:单声道变形金刚和模块化口译员。收录于:POPL 1995,第333-343页。ACM(1995)。https://doi.org/10.1145/199484.199528
[21] Lobo Vesga,E.:厄瓜多尔国家安全局(Hacia la formalicacion del razonamiento ecuacional sobre mónadas)。技术报告,EAFIT大学(2013年)。http://hdl.handle.net/10784/4554
[22] Lochbihler,A.:高阶逻辑中的概率函数和密码预言。摘自:Thiemann,P.(编辑)ESOP。LNCS,第9632卷,第503-531页。斯普林格(2016)。https://doi.org/10.1007/978-3-662-49498-1_20 ·Zbl 1335.68033号
[23] Lochbihler,A.:高阶逻辑中的效应多态性(证据珍珠)。载于:Ayala-Rincón,M.,Muñoz,C.A.(编辑)《交互式定理证明》(ITP 2017),第10499卷,第389-409页。施普林格(2017)。https://doi.org/10.1007/978-3-319-66107-0_25 ·Zbl 1468.68061号
[24] Lochbihler,A.,Schneider,J.:应用函子的赤道推理。摘自:Blanchette,J.C.,Merz,S.(编辑)ITP 2016。LNCS,第9807卷,第252-273页。斯普林格(2016)。https://doi.org/10.1007/978-3-319-43144-4_16 ·Zbl 1464.68063号
[25] Mitchell,J.C.:表示独立性和数据抽象。收录于:POPL 1986,第263-276页。ACM(1986)。https://doi.org/10.1145/512644.512669
[26] Moggi,E.:编程语言的抽象观点。技术报告ECS-LFCS-90-113,LFCS,爱丁堡大学信息学院(1990)
[27] Nipkow,T.,Klein,G.:具体语义。柏林施普林格(2014)。https://doi.org/10.1007/978-3-319-10542-0 ·Zbl 1410.68004号 ·doi:10.1007/978-3-319-10542-0
[28] Nipkow,T.,Paulson,L.C.:证明珍珠:定义有限集上的函数。摘自:Hurd,J.,Melham,T.(编辑)TPHOLs 2005。LNCS,第3603卷,第385-396页。斯普林格(2005)·Zbl 1152.68529号
[29] Piróg,M.,Gibbons,J.:《共创性复生单子》。In:编程语义的数学基础(MFPS 2014)。ENTCS,第308卷,第273-288页(2014年)。https://doi.org/10.1016/j.entcs.2014.10.015 ·Zbl 1337.68189号
[30] Ramsey,N.,Pfeffer,A.:随机lambda演算和概率分布的单数。载于:持久性有机污染物清单2002,第154-165页。ACM(2002)。https://doi.org/10.1145/503272.503288 ·Zbl 1323.68150号
[31] Reynolds,J.C.:类型、抽象和参数多态性。In:IFIP 1983。信息处理,第83卷,第513-523页。北荷兰/IFIP(1983年)
[32] Sternagel,C.,Thiemann,R.:开发独立认证机构的框架。载于:Ayala-Rincón,M.,Mackie,I.(编辑)《逻辑和语义框架及应用》(LSFA 2014),第312卷,第51-67页。ENTCS(2015)。https://doi.org/10.1016/j.entcs.2015.04.004 ·Zbl 1342.68304号
[33] Wadler,P.:如何用成功列表取代失败:在惰性函数语言中用于异常处理、回溯和模式匹配的方法。In:Jouannaud,J.P.(编辑)《函数式编程语言与计算机体系结构》(FPCA 1985)。LNCS,第201卷,第113-128页。斯普林格(1985)。https://doi.org/10.1007/3-540-15975-4_33 ·Zbl 0568.68007号
[34] Wadler,P.:函数编程的Monads。收录:Jeuring,J.,Meijer,E.(编辑)《高级函数编程》。LNCS,第925卷,第24-52页。斯普林格(1995)。https://doi.org/10.1007/3-540-59451-5_2
[35] Wenzel,M.:高阶逻辑中的类型类和重载。收录:Gunter,E.L.,Felty,A.(编辑)TPHOLs 1997。LNCS,第1275卷,第307-322页。施普林格(1997)。https://doi.org/10.1007/BFb0028402
[36] Wimmer,S.、Hu,S.和Nipkow,T.:验证记忆和动态编程。In:Avigad,J.,Mahboubi,A.(编辑)交互式定理证明。2018年ITP。LNCS,第10895卷,第579-596页。查姆施普林格(2018)·Zbl 1511.68094号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。