×

HOL-Boogie–用于验证C编译器的交互式证明后端。 (英语) Zbl 1185.68211号

摘要:Boogie是命令式核心语言的验证条件生成器。它具有编程语言C#和C的前端,通过一阶逻辑中的注释(即前条件和后条件、断言和循环不变量)进行了丰富。此外,还引入了诸如重影字段、重影变量、重影代码和规范函数等概念,以支持特定的建模方法。Boogie的验证条件(通过注释程序中的(wp)演算构造)通常被转移到Simplify或(Z3)等自动化定理证明程序中。这还包括根据描述记忆及其基本操作的理论扩展特定于语言的建模结构;这个理论被称为机器/记忆模型。本文提出了一个证明环境HOL-Boogie,它将Boogie与交互式定理证明程序Isabelle/HOL结合起来,用于特定的C前端和机器/内存模型。特别是,我们提出了结合自动化和交互式证明方法的代码验证的特定技术。我们环境的主要目标是帮助程序验证工程师在他们的任务中“调试”注释,并在纯自动证明尝试失败的情况下找到组合证明。

MSC公司:

68N20型 编译与解释理论
60年第68季度 规范和验证(程序逻辑、模型检查等)
68吨15 定理证明(演绎、解析等)(MSC2010)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Alkassar,E.,Hillebrand,M.A.,Leinenbach,D.C.,Schirmer,N.W.,Starostin,A.,Tsyban,A.:平衡负载:利用语义堆栈进行系统验证。J.汽车。原因。42(2–4), 389–454 (2009) ·Zbl 1191.68407号 ·doi:10.1007/s10817-009-9123-z
[2] Barnes,J.,Barnes,JG.:《高完整性软件:安全与保障的SPARK方法》。Addison-Wesley Longman,波士顿(2003)
[3] Barnett,M.,Chang,B.-Y.E.,DeLine,R.,Jacobs,B.,Leino,K.R.M.:Boogie:面向对象程序的模块化可重用验证器。In:FMCO 2005。LNCS,第4111卷,第364–387页,Springer(2006)
[4] Barnett,M.、Fähndrich,M.,Leino,K.R.M.、Logozzo,F.、Müller,P.、Schulte,W.、Venter,H.、Xia,S.:规范号。微软研究院,雷蒙德。http://research.microsoft.com/specsharp (2008)
[5] Barnett,M.,Leino,K.R.M.:非结构化程序的弱前置条件。摘自:PASTE’05,第82–87页,ACM,纽约(2005)
[6] Barnett,M.、Leino,K.R.M.、Moskal,M.和Rümmer,P.:布吉程序验证。微软研究院,雷蒙德。http://research.microsoft.com/boogie/ (2008)
[7] Barnett,M.,Leino,K.R.M.,Schulte,W.:规范#编程系统:概述。在:CASSIS 2004。LNCS,第3362卷,第49-69页。施普林格,纽约(2005)
[8] Basin,D.、Kuruma,H.、Miyazaki,K.、Takaragi,K.和Wolff,B.:验证签名架构:比较案例研究。表Asp。计算。19(1), 63–91 (2007) ·Zbl 1111.68075号 ·doi:10.1007/s00165-006-0012-5
[9] Beyer,S.、Jacobi,C.、Kröning,D.、Leinenbach,D.、Paul,W.J.:将所有内容放在一起:VAMP的正式验证。国际期刊软件。技术工具。8(4–5), 411–430 (2006) ·doi:10.1007/s10009-006-0204-6
[10] Blazy,S.,Leroy,X.:类C命令式语言的内存模型的形式验证。收录人:Lau,K.-K.,Banach,R.(编辑)ICFEM。《计算机科学讲义》,第3785卷,第280-299页,纽约斯普林格出版社(2005年)
[11] Bobot,F.、Conchon,S.、Contejean,E.、Lescuyer,S.:在SMT求解器中实现多态性。收录:Barrett,C.,de Moura,L.(编辑)SMT 2008:第六届可满足性模国际研讨会(2008)
[12] Böhme,S.:HOL-Boogie。网址:http://www4.in.tum.de/\(\sim\)boehmes/hol-boogie.xhtml(2008)
[13] Böhme,S.,Leino,K.R.M.,Wolff,B.:HOL-Boogie–Boogie程序验证程序的交互式证明程序。收录:Mohamed,O.A.,Muñoz,C.,Tahar,S.(编辑)TPHOL。计算机科学课堂讲稿,第5170卷,第150-166页。施普林格,纽约(2008)·Zbl 1165.68399号
[14] Brucker,A.D.,Wolff,B.:HOL中面向对象数据模型的可扩展编码,以及IMP应用程序++. J.汽车。原因。41(3–4), 219–249 (2008) ·Zbl 1191.68619号 ·数字对象标识代码:10.1007/s10817-008-9108-3
[15] Cohen,E.、Dahlweid,M.、Hillebrand,M.和Leinenbach,D.、Moskal,M.,Santen,T.、Schulte,W.、Tobies,S.:VCC:验证并发C.In的实用系统:高阶逻辑中的定理证明(TPHOLs 2009)。《计算机科学讲义》,第5674卷。德国慕尼黑施普林格出版社(2009年出版)
[16] Cohen,E.,Moskal,M.,Schulte,W.,Tobies,S.:C.In的精确而高效的内存模型:第四届系统软件验证国际研讨会(SSV 2009)。理论计算机科学电子笔记。Elsevier Science B.V.(2009年出版)
[17] Corp.,M.:Visual studio 2005开发人员库。在线文档。http://msdn.microsoft.com/en-us/library/ms235402(VS.80).aspx(2005)
[18] Crocker,D.,Carlton,J.:使用自动推理验证C程序。收录于:SEFM’07:第五届IEEE软件工程与形式化方法国际会议论文集,第7-14页。IEEE计算机学会,Los Alamitos(2007)
[19] Das,M.:工业强度代码的正式规范——从神话到现实。收件人:Ball,T.,Jones,R.B.(编辑)CAV。计算机科学讲义,第4144卷,第1页。施普林格,纽约(2006)
[20] Daum,M.,Dörrenbächer,J.,Wolff,B.:证明微内核调度器的公平性和实现正确性。J.汽车。原因。42(2–4), 349–388 (2009) ·Zbl 1191.68409号 ·doi:10.1007/s10817-009-9119-8
[21] Dawson,J.E.:伊莎贝尔的机器词理论。年:第七届关键系统自动验证国际研讨会(AVOC'07)。Elsevier,阿姆斯特丹(2007)
[22] de Moura,L.,Björner,N.:Z3:高效SMT求解器。收录于:TACAS 2008。LNCS,第4963卷,第337-340页。施普林格,纽约(2008)
[23] DeLine,R.,Leino,K.R.M.:BoogiePL:用于检查面向对象程序的类型化过程语言。技术代表2005-70,Microsoft Research(2005)
[24] Detlefs,D.,Nelson,G.,Saxe,J.B.:简化:用于程序检查的定理证明器。《美国医学会期刊》52(3),365–473(2005)·兹比尔1323.68462 ·doi:10.1145/1066100.1066102
[25] Erkök,L.,Matthews,J.:在Isabelle/HOL中使用Yices作为自动求解器。摘自:《2008年自动形式方法》,美国新泽西州普林斯顿,第3-13页。ACM,纽约(2008)
[26] Filliátre,J.-C.:为什么:多语言多探测车验证条件生成器。南巴黎大学LRI技术代表1366(2003)
[27] Filliátre,J.-C.,Marché,C.:C程序的多重验证。In:ICFEM 2004。LNCS,第3308卷,第15-29页。施普林格,纽约(2004年)
[28] Filliátre,J.-C.,Marché,C.:演绎程序验证的Why/Krakatoa/Caduceus平台。In:CAV 2007。LNCS,第4590卷,第173-177页。施普林格,纽约(2007)
[29] Flanagan,C.,Leino,K.R.M.,Lillibridge,M.,Nelson,G.,Saxe,J.B.,Stata,R.:Java的扩展静态检查。收录于:PLDI 2002,第234–245页。ACM,纽约(2002)
[30] Fontaine,P.,Marion,J.-Y.,Merz,S.,Prensa Nieto,L.,Tiu,A.:表达+自动化+稳健性:走向SMT求解器和交互式证明助手的结合。摘自:Hermanns,H.,Palsberg,J.(编辑),第12届系统构建和分析工具和算法国际会议-TACAS’06,03/2006。计算机科学课堂讲稿,第3920卷,第167-181页。施普林格,纽约(2006)·Zbl 1180.68240号
[31] Ganzinger,H.、Hagen,G.、Nieuwenhuis,R.、Tinelli,C.:DPLL(T):快速决策程序。摘自:《第16届计算机辅助验证国际会议记录》,CAV’04,第175-188页。施普林格,纽约(2004)·Zbl 1103.68616号
[32] Heiser,G.、Elphinstone,K.、Kuz,I.、Klein,G.和Petters,S.M.:面向可信计算系统:将微内核提升到新的水平。SIGOPS 41(4),3-11(2007)·数字对象标识代码:10.1145/1278901.1278904
[33] Hurd,J.:高阶逻辑定理证明程序中的一阶证明策略。收录于:Archer,M.,Vito,B.D.,Muñoz,C.(编辑)《高阶逻辑中战略/战术的设计和应用》(STRATA 2003),NASA/CP-2003-212448号,NASA技术报告,第56-68页(2003)
[34] Jacobs,B.,Smans,J.,Piessens,F.,Schulte,W.:一种用于主流多线程程序健全模块化验证的简单顺序推理方法。选举人。注释Theor。计算。科学。174(9), 23–47 (2007) ·doi:10.1016/j.entcs.2007.04.005
[35] Leinenbach,D.,Paul,W.,Petrova,E.:面向C0编译器的形式验证:代码生成和实现正确性。收录于:SEFM 2005,第2-12页。IEEE,皮斯卡塔韦(2005)
[36] Leino,K.R.M.,Millstein,T.,Saxe,J.B.:从验证条件反例中生成错误跟踪。科学。计算。程序。55(1–3), 209–226 (2005) ·Zbl 1075.68018号 ·doi:10.1016/j.scico.2004.05.016
[37] Leino,K.R.M.,Saxe,J.B.,Stata,R.:通过保护命令检查Java程序。收录:FTfJP 1999,技术代表251,Fernniversität Hagen(1999)
[38] McLaughlin,S.、Barrett,C.、Ge,Y.:合作定理证明器:结合HOL-light和CVC-lite的案例研究。选举人。注释Theor。计算。科学。144(2), 43–51 (2006) ·doi:10.1016/j.entcs.2005.12.005
[39] Meng,J.,Paulson,L.C.:针对机器生成的解决问题的轻量级相关过滤。收录于:《ESCoR:经验成功的计算机推理》,第53–69页(2006)
[40] Morgan,C.:规范声明。ACM TOPLAS 10(3),403-419(1988)·Zbl 0825.68302号 ·doi:10.1145/44501.44503
[41] Mürk,O.,Larsson,D.,Hähnle,R.:KeY-C:C程序验证工具。收录:Pfenning,F.(编辑)CADE。计算机科学课堂讲稿,第4603卷,第385-390页。施普林格,纽约(2007)
[42] Nelson,G.:Dijkstra微积分的推广。ACM TOPLAS 11(4),517–561(1989)·数字对象标识代码:10.1145/69558.69559
[43] Nipkow,T.、Paulson,L.C.、Wenzel,M.:Isabelle/HOL——高阶逻辑的证明助手。LNCS,第2283卷。斯普林格,纽约(2002)·兹比尔0994.68131
[44] Norrish,M.:C在HOL中正式成立。剑桥大学计算机实验室博士论文(1998年)
[45] Paul,W.,Santen,T.,Tobies,S.:验证50000行代码。未来——微软欧洲创新杂志,第42–43页(2008年)
[46] Paul,W.、von der Rhieden,T.、Santen,T.和Schulte,W.:Verisoft XT项目。萨尔兰大学(2007年)
[47] Ranise,S.、Tinelli,C.:SMT-LIB标准:1.2版。公司技术代表。科学。,爱荷华大学(2006)
[48] Schirmer,N.:Isabelle/HOL中顺序命令程序的验证。慕尼黑理工大学博士论文(2006年)·Zbl 1108.68410号
[49] Schulte,W.,Xia,S.,Smans,J.,Piessens,F.:验证C编译器的一瞥(扩展摘要)。输入:C/C++验证研讨会(2007年)
[50] Tuch,H.、Klein,G.、Norrish,M.:类型、字节和分离逻辑。摘自:Hofmann,M.,Felleisen,M.(编辑)POPL,第97-108页。ACM,纽约(2007)·Zbl 1295.68094号
[51] Wenzel,M.,Wolff,B.:在Isabelle/Isar框架中构建形式化方法工具。摘自:TPHOLs 2007,LNCS,第4732卷,第351-366页。施普林格,纽约(2007)·Zbl 1144.68369号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。