×

使用时间信用验证分离逻辑中union-find实现的正确性和已摊销的复杂性。 (英语) Zbl 1468.68120号

总结:Union-Find是一个著名的简单数据结构示例,其摊销渐近时间复杂性分析非常重要。根据Alstrup等人的最新证明,我们提出了该分析的Coq形式化。此外,我们将Union-Find实现为一个OCaml库,并正式赋予它一个模块化规范,该规范提供了完整的功能正确性保证以及分摊的复杂性界限。为了在Coq中解释命令式OCaml代码,我们使用CFML工具,该工具为OCaml的一个子集实现分离逻辑,并且我们使用时间信用进行扩展。虽然众所周知,摊销分析可以用时间信用来解释,并且时间信用可以被视为分离逻辑中的资源,但我们认为我们的工作是这种方法的第一次实际演示。最后,为了解释我们方法的元理论基础,我们为非类型的call-by-value(lambda)演算定义了一个带时间信用的分离逻辑,并正式验证了其合理性。

MSC公司:

60年第68季度 规范和验证(程序逻辑、模型检查等)
03B70号 计算机科学中的逻辑
68甲18 函数编程和lambda演算
68第05页 数据结构
68V20型 数学形式化与定理证明
PDF格式BibTeX公司 XML格式引用
全文: 内政部 哈尔

参考文献:

[1] Aho,A.V.、Hopcroft,J.E.、Ullman,J.D.:计算机算法的设计与分析。Addison Wesley,波士顿(1974)·Zbl 0326.68005号
[2] Alstrup,S.、Thorup,M.、Görtz,I.L.、Rauhe,T.、Zwick,U.:具有恒定时间删除的Union-find。ACM事务处理。算法11(1),6:1-6:28(2014)·Zbl 1398.68101号 ·doi:10.1145/2636922
[3] Amadio,R.,Régis-Gianas,Y.:功能性程序成本注释的证明和推理。在:资源分析的基础和实践方面。计算机科学讲义,第7177卷,第72-89页。施普林格(2011)·兹比尔1367.68046
[4] Amadio,R.M.、Ayache,N.、Bobot,F.、Boender,J.、Campbell,B.、Garnier,I.、Madet,A.、McKinna,J.,Mulligan,D.P.、Piccolo,M.、Pollack,R.、Régis-Gianas,Y.、Coen,C.S.、Stark,I.和Tranquilli,P.认证复杂性(CerCo)。在:资源分析的基础和实践方面。计算机科学课堂讲稿,第8552卷,第1-18页。斯普林格(2014)·Zbl 1445.68057号
[5] Appel,A.W.:《用续篇进行编译》。剑桥大学出版社,剑桥(1992)
[6] Aspinall,D.,Beringer,L.,Hofmann,M.,Loidl,H.,Momigliano,A.:资源的程序逻辑。西奥。计算。科学。389(3), 411-445 (2007) ·Zbl 1133.68010号 ·doi:10.1016/j.tcs.2007.09.003
[7] Aspinall,D.,Hofmann,M.,Konečn,M.:一种具有使用方面的类型系统。J.功能。程序。18(2), 141-178 (2008) ·Zbl 1142.68019号 ·doi:10.1017/S0956796807006399
[8] Atkey,R.:利用分离逻辑进行摊销资源分析。日志。方法计算。科学。7(2:17) (2011) ·Zbl 1260.68083号
[9] Ayache,N.、Amadio,R.M.、Régis-Gianas,Y.:C程序中成本注释的证明和推理。In:工业关键系统的形式化方法。计算机科学课堂讲稿,第7437卷,第32-46页。施普林格(2012)·Zbl 1367.68046号
[10] Baker,H.G.:在串行计算机上实时处理列表。Commun公司。ACM 21(4),280-294(1978)·Zbl 0371.68009号 ·doi:10.1145/359460.359470
[11] Bertot,Y.,Castéran,P.:交互式定理证明和程序开发-Coq'Art:归纳构造的微积分。理论计算机科学课文。EATCS系列,施普林格(2004)·Zbl 1069.68095号
[12] Blelloch,G.E.,Greiner,J.:序列函数语言中的并行性。收录于:函数编程语言和计算机体系结构(FPCA),第226-237页(1995)
[13] Carbonneaux,Q.,Hoffmann,J.,Ramananandro,T.,Shao,Z.:C程序堆栈空间边界的端到端验证。摘自:编程语言设计与实现(PLDI),第270-281页(2014)
[14] Charguéraud,A.:机械化程序验证的特征公式。巴黎第七大学博士论文(2010年)·Zbl 1323.68202号
[15] Charguéraud。A.命令程序验证的特征公式。未出版(2013年)·Zbl 1323.68366号
[16] Charguéraud,A.,Pottier,F.:对高效union-find实现的正确性和摊销复杂性进行机器检查验证。In:交互式定理证明(ITP)。《计算机科学讲义》,第9236卷,第137-153页。斯普林格(2015)·Zbl 1465.68172号
[17] Charguéraud,A.,Pottier,F.:在线附带材料(2017)
[18] Chlipala,A.:Bedrock结构化编程系统:在可扩展程序验证器中结合生成元编程和Hoare逻辑。摘自:函数编程国际会议(ICFP),第391-402页(2013)
[19] Chlipala,A.、Malecha,G.、Morrisett,G.,Shinnar,A.、Wisnesky,R.:高阶命令式程序的有效交互证明。摘自:函数式编程国际会议(ICFP),第79-90页(2009年)·Zbl 1302.68087号
[20] Chlipala,A.、Malecha,G.、Morrisett,G.,Shinnar,A.、Sozeau,M.、Wisnesky,R.:Ynot(2011)
[21] Clochard,M.,Filliátre,J.C.,Paskevich,A.:如何避免证明不存在整数溢出。In:验证软件:理论、工具和实验。计算机科学讲义,第9593卷,第94-109页。斯普林格(2015)
[22] Conchon,S.,Filliátre,J.:一种持久的union-find数据结构。摘自:美国医学会ML研讨会,第37-46页(2007年)
[23] Cormen,T.H.,Leiserson,C.E.,Rivest,R.L.,Stein,C.:算法导论,第3版。麻省理工学院出版社,剑桥(2009)·Zbl 1187.68679号
[24] Crary,K.,Weirich,S.:资源约束认证。摘自:《程序设计语言原理》(POPL),第184-198页(2000)·Zbl 1323.68368号
[25] Danielsson,N.A.:纯函数数据结构的轻量级半形式时间复杂性分析。In:编程语言原理(POPL)(2008)·Zbl 1295.68060号
[26] Danner,N.、Paykin,J.、Royer,J.S.:高阶语言的静态成本分析。In:编程语言与程序验证(PLPV),pp.25-34(2013)
[27] Dornic,V.,Jouvelot,P.,Gifford,D.K.:估算程序复杂性的多形时间系统。ACM信函。程序。语言系统。1(1), 33-45 (1992) ·数字对象标识代码:10.1145/130616.130620
[28] Galil,Z.,Italiano,G.F.:不相交集并问题的数据结构和算法。ACM计算。Surv公司。23(3), 319-344 (1991) ·数字对象标识代码:10.1145/116873.116878
[29] Galler,B.A.,Fischer,M.J.:改进的等效算法。Commun公司。ACM 7(5),301-303(1964年)·Zbl 0129.10302号 ·数字对象标识代码:10.1145/364099.364331
[30] Guéneau,A.,Myreen,M.O.,Kumar,R.,Norrish,M.:CakeML的验证特征配方。摘自:欧洲规划研讨会(ESOP)。计算机科学课堂讲稿,第10201卷,第584-610页。施普林格(2017)·Zbl 1485.68030号
[31] Harfst,G.C.,Reingold,E.M.:联合发现数据结构的潜在摊销分析。SIGACT新闻31(3),86-95(2000)·数字对象标识代码:10.1145/356458.356463
[32] Hoffmann,J.,Hofmann,M.:多项式潜力的摊销资源分析。摘自:欧洲规划研讨会(ESOP)。计算机科学课堂讲稿,第6012卷,第287-306页。施普林格(2010)·Zbl 1260.68074号
[33] Hoffmann,J.、Aehlig,K.、Hofmann,M.:多元摊销资源分析。ACM事务处理。程序。语言系统。34(3), 14:1-14:62 (2012) ·Zbl 1284.68132号 ·doi:10.1145/2362389.2362393
[34] 霍夫曼,J.,马尔玛,M.,邵,Z.:证明锁自由的定量推理。摘自:计算机科学中的逻辑(LICS),第124-133页(2013)·Zbl 1366.68171号
[35] 霍夫曼,J.,达斯,A.,翁,S.:面向OCaml的自动资源约束分析。摘自:《程序设计语言原理》(POPL),第359-373页(2017年)·Zbl 1380.68123号
[36] Hofmann,M.:有界空间和函数就地更新的类型系统。北欧J.计算。7(4), 258-289 (2000) ·兹比尔0971.68023
[37] Hofmann,M.,Jost,S.:一阶函数程序堆空间使用的静态预测。收录于:《程序设计语言原理》(POPL),第185-197页(2003)·Zbl 1321.68180号
[38] Hopcroft,J.E.,Ullman,J.D.:集合合并算法。SIAM J.计算。2(4), 294-303 (1973) ·Zbl 0253.68003号 ·数字对象标识代码:10.1137/02024
[39] 豪厄尔,R.R.:关于多变量的渐近表示法。堪萨斯州立大学技术代表2007-4(2008)
[40] 豪厄尔,R.R.:算法:自上而下的方法。草案(2012年)·Zbl 07662226号
[41] Hutton,G.:关于褶皱的普遍性和表现力的教程。J.功能。程序。9(4), 355-372 (1999) ·兹伯利0948.68036 ·doi:10.1017/S0956796899003500
[42] Jung,R.,Swasey,D.,Sieczkowski,F.,Svendsen,K.,Turon,A.,Birkedal,L.,Dreyer,D.:Iris:作为并发推理正交基础的幺半群和不变量。摘自:《程序设计语言原理》(POPL),第637-650页(2015)·Zbl 1346.68135号
[43] Jung,R.、Krebbers,R.,Birkedal,L.、Dreyer,D.:高阶鬼态。摘自:函数编程国际会议(ICFP),第256-269页(2016)·Zbl 1361.68066号
[44] Kaplan,H.、Shafrir,N.、Tarjan,R.E.:删除后的Union-find。摘自:离散算法研讨会(SODA),第19-28页(2002年)·Zbl 1093.68577号
[45] Kozen,D.C.:算法的设计和分析。《计算机科学文本和专著》,斯普林格出版社(1992年)·Zbl 0757.68083号
[46] Krebbers,R.、Jung,R.,Bizjak,A.、Jourdan,J.H.、Dreyer,D.、Birkedal,L.:高阶并发分离逻辑的本质。摘自:欧洲规划研讨会(ESOP)。计算机科学课堂讲稿,第10201卷,第696-723页。施普林格(2017)·Zbl 1485.68069号
[47] Krishnaswami,N.R.:用高阶分离逻辑验证高阶命令式程序。卡内基梅隆大学计算机科学学院博士论文(2012年)
[48] Lammich,P.,Meis,R.:强制性HOL的分离逻辑框架。正式证据档案(2012年)
[49] Le Métayer,D.:ACE:一种自动的复杂性评估器。ACM事务处理。程序。语言系统。10(2), 248-266 (1988) ·doi:10.1145/42190.42347
[50] Leino,K.R.M.,Moskal,M.:VACID-0:验证数据结构不变量的充分正确性,第0版,手稿KRML 209(2010)
[51] MacKenzie,K.,Wolverson,N.:Camelot和Grail:JVM的资源软件功能编程。趋势功能。程序。4, 29-46 (2003)
[52] Madhavan,R.,Kulal,S.,Kuncak,V.:基于契约的记忆高阶函数资源验证。摘自:《程序设计语言原理》(POPL),第330-343页(2017年)·兹比尔1380.68099
[53] McCarthy,J.A.、Fetscher,B.、New,M.S.、Feltey,D.、Findler,R.B.:运行时间内部验证的Coq库。摘自:《函数和逻辑编程》,《计算机科学讲义》,第9613卷,第144-162页。斯普林格(2016)·Zbl 1475.68457号
[54] Müller,P.,Schwerhoff,M.,Summers,A.J.:使用符号执行自动验证迭代分离连词。In:计算机辅助验证(CAV)。计算机科学课堂讲稿,第9779卷,第405-425页。斯普林格(2016)
[55] Nanevski,A.,Ahmed,A.,Morrisett,G.,Birkedal,L.:霍尔类型理论中的抽象谓词和可变ADT。摘自:欧洲规划研讨会(ESOP)。计算机科学讲义,第4421卷,第189-204页。施普林格(2007)·Zbl 1187.68158号
[56] Nanevski,A.,Morrisett,G.,Birkedal,L.:霍尔类型理论,多态性和分离。J.功能。程序。18(5-6), 865-911 (2008) ·Zbl 1155.68354号 ·网址:10.1017/S0956796808006953
[57] Nanevski,A.,Morrisett,G.,Shinnar,A.,Govereau,P.,Birkedal,L.:Ynot:命令式程序的依赖类型。摘自:函数式编程国际会议(ICFP),第229-240页(2008)·Zbl 1323.68142号
[58] Nipkow,T.:已验证摊销复杂性。In:交互式定理证明(ITP)。计算机科学课堂讲稿,第9236卷,第310-324页。斯普林格(2015)·Zbl 1465.68059号
[59] Okasaki,C.:纯功能数据结构。剑桥大学出版社,剑桥(1999)·Zbl 0941.68032号
[60] Patwarve,M.M.A.,Blair,J.,Manne,F.:分离集数据结构的联合发现算法实验。摘自:实验算法国际研讨会(SEA)。《计算机科学讲义》,第6049卷,第411-423页。施普林格(2010)
[61] Pilkiewicz,A.,Pottier,F.:单调状态的本质。In:语言设计与实现中的类型(TLDI)(2011)
[62] Reistad,B.,Gifford,D.K.:估算执行时间的静态相关成本。摘自:ACM Lisp和函数编程(LFP)研讨会,第65-78页(1994)
[63] Reynolds,J.C.:分离逻辑:共享可变数据结构的逻辑。摘自:计算机科学中的逻辑(LICS),第55-74页(2002年)
[64] Sands,D.,Gustavsson,J.,Moran,A.:Lambda计算和线性加速。内容:计算、复杂性、分析、转换的本质。献给尼尔·D·琼斯的散文。《计算机科学讲义》,第2566卷,第60-84页。斯普林格(2002)·Zbl 1026.68020号
[65] Seidel,R.,Sharir,M.:路径压缩的自顶向下分析。SIAM J.计算。34(3), 515-525 (2005) ·Zbl 1075.68105号 ·doi:10.1137/S0097539703439088
[66] Tarjan,R.E.:一个好的但不是线性集合并集算法的效率。J.ACM 22(2),215-225(1975)·Zbl 0307.68029号 ·数字对象标识代码:10.1145/321879.321884
[67] Tarjan,R.E.:摊销的计算复杂性。SIAM J.代数离散方法6(2),306-318(1985)·Zbl 0599.68046号 ·doi:10.1137/0606031
[68] Tarjan,R.E.课堂笔记:不相交集合联合(1999)
[69] Tarjan,R.E.,van Leeuwen,J.:集合联合算法的最坏情况分析。J.ACM 31(2),245-281(1984)·Zbl 0632.68043号 ·数字对象标识代码:10.1145/62.2160
[70] Wegbreit,B.:机械程序分析。Commun公司。ACM 18(9),528-539(1975)·Zbl 0306.68008号 ·数字对象标识代码:10.1145/361002.361016
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。