×

验证CakeML的特征公式。 (英语) Zbl 1485.68030号

Yang,Hongseok(编辑),《编程语言和系统》。2017年4月22日至29日在瑞典乌普萨拉举行的第26届欧洲编程研讨会(ESOP 2017),是欧洲软件理论与实践联合会议(ETAPS 2017)的一部分。诉讼程序。柏林:斯普林格。莱克特。注释计算。科学。10201, 584-610 (2017).
摘要:特征公式(CF)为生成高阶命令式程序的验证条件提供了一种富有成效的原则性方法,但到目前为止,CF的可靠性只考虑了编程语言(OCaml)的非正式规范。这在验证框架和实际运行的程序之间留下了差距。我们为正式指定的CakeML编程语言提供了一个完整的CF框架。我们的框架扩展了现有的CF方法以支持异常和I/O,从而覆盖了CakeML的完整功能集,并附带了一个经过正式验证的稳健性定理。此外,它还集成了用于验证CakeML程序的现有证明技术。这验证了CF方法,并允许用户在单个定理证明程序中证明从规范到语言语义的高阶命令式程序的端到端定理。
关于整个系列,请参见[Zbl 1360.68021号].

MSC公司:

68甲15 编程语言理论
68甲18 函数编程和lambda演算
68号30 软件工程的数学方面(规范、验证、度量、需求等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Anand,A.,Appel,A.,Morrisett,G.,Paraskevopoulou,Z.,Pollack,R.,Belanger,O.S.,Sozeau,M.,Weaver,M.:CertiCoq:Coq的验证编译器。参见:第三届编程语言Coq国际研讨会(2017年)。http://conf.researchr.org/event/CoqPL-2017/main-certicoq-a-verified-compiler-for-coq
[2] 阿佩尔,AW;Barthe,G.,验证软件工具链,编程语言与系统,1-17(2011),海德堡:施普林格,海德堡·Zbl 1326.68047号 ·doi:10.1007/978-3-642-19718-5_1
[3] 贝维尔,WR;小华盛顿州亨特;JS摩尔;Young,WD,《系统验证方法》,J.Autom。原因。,5,4411-441(1989)·doi:10.1007/BF00243131
[4] Charguéraud,A.:机械化程序验证的特征公式。巴黎迪德罗大学博士论文(2010年)。http://arthur.chargueraud.org/research/2010/论文/ ·兹比尔1323.68202
[5] Charguéraud,A.:通过特征公式进行程序验证。在:Hudak,P.,Weirich,S.(编辑)国际功能编程会议(ICFP)。ACM(2010)·兹比尔1323.68202
[6] Charguéraud,A.:命令式程序验证的特征公式。摘自:Chakravarty,M.M.T.,Hu,Z.,Danvy,O.(编辑)函数编程国际会议(ICFP)。ACM(2011)。doi:doi:10.1145/2034773.2034828·Zbl 1323.68366号
[7] Charguéraud,A。;Pottier,F。;城市,C。;Zhang,X.,高效联合发现实现的正确性和摊余复杂性的机器检查验证,交互定理证明,137-153(2015),海德堡:斯普林格·Zbl 1465.68172号 ·doi:10.1007/978-3-319-22102-19
[8] Chen,H.,Ziegler,D.,Chajed,T.,Chlipala,A.,Kaashoek,M.F.,Zeldovich,N.:使用崩溃灰逻辑验证FSCQ文件系统。收录:Gulati,A.,Weatherspoon,H.(编辑)USENIX年度技术会议。USENIX协会(2016)
[9] Chlipala,A.:基础结构化编程系统:在可扩展程序验证器中结合生成元编程和白逻辑。收录:Morrisett,G.,Uustalu,T.(编辑)函数编程国际会议(ICFP)。ACM(2013)。doi:10.1145/2500365.2500592,doi:doi:10.1 145/2500365.2500592
[10] Chlipala,A.,Malecha,J.G.,Morrisett,G.,Shinnar,A.,Wisnesky,R.:高阶命令式程序的有效交互证明。摘自:Hutton,G.,Tolmach,A.P.(编辑)函数式编程国际会议(ICFP)。ACM(2009)。doi:10.1145/1596550.1596565,doi:doi:10.1 145/159650.1596565·Zbl 1302.68087号
[11] Delaware,B.,Pit Claudel,C.,Gross,J.,Chlipala,A.:Fiat:证明助理中抽象数据类型的演绎合成。收录:Rajamani,S.K.、Walker,D.(编辑)《编程语言原理》(POPL)。ACM(2015)。doi:10.1145/2676726.2677006,doi:doi:10.1 145/267726.2677006·Zbl 1346.68175号
[12] Greenaway,D.、Lim,J.、Andronick,J.和Klein,G.:不要为小事操心:不费吹灰之力地对C代码进行正式验证。摘自:英国爱丁堡ACM SIGPLAN编程语言设计与实现会议,第429-439页。ACM,2014年6月。doi:doi:10.145/2594291.2594296
[13] Homeier,光伏;Berghofer,S。;Nipkow,T。;城市,C。;Wenzel,M.,HOL-omega逻辑,高阶逻辑中的定理证明,244-259(2009),海德堡:施普林格·Zbl 1252.68257号 ·doi:10.1007/978-3642-03359-9_18
[14] Klein,G.、Elphinstone,K.、Heiser,G.,Andronick,J.、Cock,D.、Derrin,P.、Elkaduwe,D.、Engelhardt,K.,Kolanski,R.、Norrish,M.、Sewell,T.、Tuch,H.、Winwood,S.:seL4:操作系统内核的形式验证。在:ACM操作系统原理研讨会,Big Sky,MT,美国,第207-220页。ACM,2009年10月
[15] Kumar,R.,Myreen,M.O.,Norrish,M.,Owens,S.:CakeML:ML的验证实现。In:Jagannathan,S.,Sewell,P.(编辑)编程语言原则(POPL)(2014)。doi:doi:10.1145/2535838.2535841·Zbl 1284.68405号
[16] Lammich,P。;城市,C。;Zhang,X.,精炼为命令式/HOL,交互定理证明,253-269(2015),海德堡:施普林格,海德伯格·Zbl 1465.68290号 ·doi:10.1007/978-3-319-22102-1_17
[17] Lammich,P.:基于精炼的命令式数据结构验证。摘自:Avigad,J.,Chlipala,A.(编辑)认证项目会议(CPP)。ACM(2016)。http://dl.acm.org/citation.cfm?id=2854065,doi:doi:10.1145/2854065.2854067
[18] Myreen,M.O.,Owens,S.:证明将高阶逻辑翻译为纯有状态ML.J.Funct。程序。24(2-3)(2014年)。doi:doi:10.1017/S0956796813000282·Zbl 1297.68053号
[19] O'Connor,L.,Chen,Z.,Rizkallah,C.,Amani,S.,Lim,J.,Murray,T.C.,Nagashima,Y.,Sewell,T.,Klein,G.:通过约束进行精炼:降低核查成本。收录于:Garrigue,J.、Keller,G.、Sumii,E.(编辑)函数式编程国际会议(ICFP)。ACM(2016)。doi:10.1145/2951913.2951940,doi:doi:10.1 145/295913.2951940·Zbl 1361.68045号
[20] 欧文斯,S。;密苏里州米林;库马尔,R。;Tan,YK;Thiemann,P.,《函数大步语义,编程语言和系统》,589-615(2016),海德堡:斯普林格·doi:10.1007/978-3-662-49498-1_23
[21] 不列颠哥伦比亚省皮尔斯:双向编程的怪异世界。ETAPS特邀演讲,2006年3月
[22] Reynolds,J.C.:分离逻辑:共享可变数据结构的逻辑。In:计算机科学中的逻辑(LICS)。IEEE计算机学会(2002)
[23] Schirmer,N.:Isabelle/HOL中顺序命令程序的验证。慕尼黑工业大学博士论文(2006年)。http://arthur.chargueraud.org/research/2010/论文/ ·Zbl 1108.68410号
[24] Strub,P.,Swamy,N.,Fournet,C.,Chen,J.:自我认证:使用Coq在F*中引导认证的类型检查器。In:Field,J.,Hicks,M.(编辑)程序设计语言原理(POPL)。ACM(2012)。doi:10.1145/2103656.2103723,doi:doi:10.1 145/203656.2103723·Zbl 1321.68205号
[25] Swamy,N.,Hritcu,C.,Keller,C.,Rastogi,A.,Delignat-Lavaud,A.,Forest,S.,Bhargavan,K.,Fournet,C.,Strub,P.,Kohlweiss,M.,Zinzindohoue,J.K.,Béguelin,S.Z.:F.in中的依赖类型和多单子效应:BodíK,R.,Majumdar,R.(编辑)编程语言原理(POPL)。ACM(2016)。doi:10.145/2837614.2877655,doi:doi:10.145/2837614.2877655·Zbl 1347.68038号
[26] Tan,Y.K.,Myreen,M.O.,Kumar,R.,Fox,A.,Owens,S.,Norrish,M.:CakeML的新验证编译器后端。收录:函数式编程国际会议(ICFP)。ACM出版社(2016)·Zbl 1493.68091号
[27] 城市,C。;Zhang,X.,《交互式定理证明》(2015),海德堡:斯普林格出版社
[28] Vytiniotis,D.,Jones,S.L.P.,Claessen,K.,Rosén,D.:HALO:haskell通过指称语义实现逻辑。收录于:Giacobazzi,R.,Cousot,R.(编辑)《编程语言原理》(Principles of Programming Languages,POPL)。ACM(2013)。doi:10.1145/2429069.2429121,doi:doi:10.1 145/24290 69.24291 21·兹比尔1301.68085
此参考列表基于出版商或数字数学图书馆提供的信息。它的项目与zbMATH标识符启发式匹配,并且可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。