×

源级命令程序的验证条件。 (英语) Zbl 1298.68171号

摘要:本文是对验证条件及其在程序验证中的使用进行的系统研究。我们以霍尔逻辑为出发点,详细研究了如何从中获得验证条件生成器程序注释在这个过程中至关重要。最薄弱的先决条件和更新还研究了验证条件的替代方法。我们的研究是在While语言的背景下进行的。本文最后考虑了对该语言的重要扩展。我们还简要介绍了现代程序验证工具及其生成验证条件的方法。

理学硕士:

60年第68季度 规范和验证(程序逻辑、模型检查等)
03B70号 计算机科学中的逻辑
68号30 软件工程的数学方面(规范、验证、度量、需求等)
68-02 与计算机科学有关的研究展览会(专著、调查文章)
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接

参考文献:

[1] Igarashi、Shigeru;伦敦,拉尔夫·L·。;Luckham,David C.,《自动程序验证I:逻辑基础及其实现》,《信息学报》,第4145-182页(1974年)·Zbl 0279.68022号
[2] Donald I.很好,关于计算机程序的机械证明。《技术报告41》,德克萨斯大学奥斯汀分校,1984年3月。;Donald I.很好,关于计算机程序的机械证明。技术报告41,德克萨斯大学奥斯汀分校,1984年3月·Zbl 0544.68012号
[3] James Cornelius King,程序验证人。1969年,美国宾夕法尼亚州匹兹堡卡内基梅隆大学博士论文。;James Cornelius King,程序验证人。1969年,美国宾夕法尼亚州匹兹堡卡内基梅隆大学博士论文。
[4] 博伊尔,R.S。;Moore,J.S.,《计算机科学中的正确性问题》,FORTRAN验证条件生成器(1981),学术出版社·兹比尔0476.68009
[5] 马修·B·德怀尔。;约翰·哈特克利夫;罗比,罗比;Pasareanu、Corina S。;Willem Visser,《软件模型检查中的正式软件分析新兴趋势》,(2007软件工程的未来,FOSE’07(2007),IEEE计算机学会:IEEE计算机协会,华盛顿特区,美国),120-136
[6] 维杰·D’Silva;Daniel Kroening;Georg Weissenbacher,《用于正式软件验证的自动化技术调查》,IEEE《集成电路和系统计算机辅助设计汇刊》(TCAD),27,7,1165-1178(2008)
[7] Jhala,Ranjit;Majumdar、Rupak、软件模型检查、ACM计算。调查。,10月41日,21:1-21:54(2009)·Zbl 1507.68188号
[8] Patrick Cousot、Radhia Cousot,《抽象解释:通过构建或近似不动点对程序进行静态分析的统一格模型》,载于《第四届ACM编程语言原理研讨会论文集》,1977年1月,第238-252页。;Patrick Cousot,Radhia Cousot,《抽象解释:通过构造或逼近不动点对程序进行静态分析的统一格模型》,载于:《第四届ACM编程语言原理研讨会论文集》,1977年1月,第238-252页·Zbl 1149.68389号
[9] Necula,G.C.,《婚姻证明准则》(《1997年POPL会议录》,ACM出版社),106-119
[10] Sabelfeld,A。;Myers,A.,《基于语言的信息流安全》,IEEE通讯选定领域杂志,21,1(2003)
[11] 吉尔·巴特;佩德罗·R·D’Argenio。;Rezk,Tamara,《通过自我组合实现信息流安全》(CSFW(2004),IEEE计算机学会),100-114·Zbl 1252.68072号
[12] 阿尔达姆·达尔瓦斯;雷纳·Hähnle;Sands,David,《安全信息流分析的定理证明方法》,(Hutter,Dieter;Ullmann,Markus,SPC。SPC,《计算机科学讲义》,第3450卷(2005),Springer),193-209年
[13] 雅克·勒克斯(Jacques Loeckx);Kurt Sieber,《程序验证基础》(1987),John Wiley&Sons公司:John Willey&Sons,Inc.,美国纽约州纽约市·Zbl 0625.68017号
[14] Winskel,Glynn,《编程语言的形式语义:导论》(《计算基础》(1993),麻省理工学院出版社:麻省剑桥麻省理工学院出版社)·Zbl 0919.68082号
[15] 约翰·雷诺兹(John C.Reynolds),《程序设计语言理论》(1998),剑桥大学出版社:剑桥大学出版社,英国剑桥·Zbl 0972.68507号
[16] David Gries,《编程科学》(1987),Springer-Verrag New York,Inc.:Springer-Verlag New York,Inc.美国新泽西州塞考克斯·Zbl 0614.68002号
[17] Hoare,C.A.R.,《计算机编程的公理基础》,ACM通信,12576-580(1969)·Zbl 0179.23105号
[18] Robert Floyd,《赋予程序意义》(Schwartz,J.T.,《计算机科学的数学方面》,《应用数学研讨会论文集》(1967)第19期,美国数学学会),19-32·Zbl 0189.50204号
[19] Apt,Krzysztof R.,《霍尔的逻辑十年:一项调查——第1部分,ACM Trans》。程序。语言系统。,3, 4, 431-483 (1981) ·Zbl 0471.68006号
[20] Patrick Cousot,《证明程序的方法和逻辑》(理论计算机科学手册,B卷:形式模型和符号学(B)(1990),Elsevier和MIT出版社),841-994·Zbl 0900.68307号
[21] 克利夫·琼斯(Cliff B.Jones),《早期探索程序的可驾驭推理方式》,IEEE Ann.Hist。计算。,25, 2, 26-49 (2003)
[22] 罗兰德·巴克豪斯(Roland Backhouse),《程序构建-从规范计算实现》(2003),约翰·威利父子公司(John Wiley&Sons,Ltd.)。
[23] Tennent,R.D.,《指定软件》(2001),剑桥大学出版社:美国纽约州纽约市剑桥大学出版社·兹比尔1006.68035
[24] Yves Bertot,证明编程语言语义支持的定理。CoRR,abs/0707.09262007。;Yves-Bertot,编程语言语义中的定理证明支持。CoRR,abs/0707.09262007年·Zbl 1195.68090号
[25] Gordon,Michael J.C.,《在高阶逻辑中机械化编程逻辑》(Birtwistle,G.;Subrahmanyam,P.A.,《硬件验证和自动定理证明的当前趋势》(1989),Springer-Verlag New York,Inc.),387-439
[26] 彼得·霍米埃(Peter V.Homeier)。;Martin,David F.,机械验证验证条件生成器,计算。J.,38,2,131-141(1995)
[27] A.Azura,I.S.W.B.Prasetya,关于在定理证明器中嵌入编程逻辑的调查。乌得勒支大学技术报告,2002年。;A.Azurat,I.S.W.B.Prasetya,关于在定理证明器中嵌入编程逻辑的调查。技术报告,乌得勒支大学,2002年。
[28] Dijkstra,E.W.,《程序设计学科》(1976),普伦蒂斯·霍尔:普伦蒂斯霍尔·恩格尔伍德克利夫斯,新泽西州·Zbl 0368.68005号
[29] Rustan,K。;M.莱诺。;詹姆斯·萨克斯(James B.Saxe)。;Stata,Raymie;Serge Demeyer,《通过保护命令检查Java程序》(Moreira,Ana M.D.,《ECOOP研讨会论文集》,99年)。ECOOP研讨会论文集,《计算机科学讲义》,第1743卷(1999年),施普林格出版社,第110-111页
[30] Rustan,K。;Leino,M.,《扩展静态检查:十年展望》(Informatics-10 Years Back.10 Years.Ahead(2001),Springer-Verlag:Springer-Verlag London,UK),157-175·Zbl 0997.68562号
[31] 科克(David R.Cok)。;约瑟夫·基尼里(Joseph Kiniry),《ESC/Java2:将ESC/Java和JML结合起来》(Barthe,Gilles;Burdy,Lilian;Huisman,Marieke;Lanet,Jean-Louis;Muntean,Traian,CASSIS)。CASSIS,《计算机科学讲义》,第3362卷(2004),斯普林格),第108-128页
[32] Michael Barnett;Chang,Bor-Yuh Evan;Robert DeLine;巴特·雅各布斯;Leino,K.Rustan M.,Boogie:面向对象程序的模块化可重用验证器,(de Boer,Frank S.;Bonsangue,Marcello M.;Graf,Susanne;de Roever,Willem P.,FMCO.FMCO,计算机科学讲义,第4111卷(2005),Springer),364-387
[33] Detlefs,David;格雷格·纳尔逊(Greg Nelson);James B.Saxe,《Simplify:程序检查的定理证明器》,J.ACM,52,3,365-473(2005)·Zbl 1323.68462号
[34] Michael Barnett;Rustan,K。;Leino,M.,非结构化程序的弱前置条件,SIGSOFT Softw。工程注释,31,1,82-87(2006)
[35] 科马克·弗拉纳根;Saxe,James B.,《避免指数爆炸:生成紧凑验证条件》,(POPL'01:第28届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集(2001),ACM:美国纽约州纽约市ACM),193-205·Zbl 1323.68372号
[36] Rustan,K。;Leino,M.,《效率最弱的前提条件》,《Inf.过程》。莱特。,93, 6, 281-288 (2005) ·Zbl 1173.68563号
[37] Kaldewaij,Anne,《编程:算法推导》(1990),普伦蒂斯·霍尔公司:普伦蒂斯霍尔公司,美国新泽西州上鞍河·兹比尔0709.68020
[38] Reiner Hähnle,Richard Bubel,具有显式状态更新的霍尔式微积分。查尔默斯理工大学计算机科学系。;Reiner Hähnle,Richard Bubel,带有显式状态更新的Hoare-style演算。查尔默斯科技大学计算机科学系·Zbl 1254.68073号
[39] 沃尔夫冈·阿伦特;托马斯·巴尔(Thomas Baar);贝恩哈德·贝克特;理查德·布贝尔(Richard Bubel);马丁·吉斯(Martin Giese);雷纳·Hähnle;Wolfram门泽尔;沃伊切赫·莫斯托夫斯基;安德烈亚斯·罗斯(Andreas Roth);施泰芬·施拉格;Schmitt,Peter H.,《KeY工具,软件和系统建模》,4,1,32-54(2005)
[40] Beckert,Bernhard,《Java卡程序形式验证的动态逻辑》,(Attali,Isabelle;Jensen,Thomas P.,Java卡研讨会。Java卡研讨会,计算机科学讲稿,第2041卷(2000),Springer),6-24·Zbl 0980.68525号
[41] Harel,D。;《动态逻辑》(Gabbay,D.;Guenther,F.,《哲学逻辑手册第二卷——经典逻辑的扩展》(1984),D.Reidel出版公司:D.Reider出版公司,荷兰多德雷赫特),497-604·Zbl 0572.03003号
[42] O'Hearn,Peter W。;约翰·雷诺兹(John C.Reynolds)。;Yang,Hongseok,关于改变数据结构的程序的局部推理,(第十五届计算机科学逻辑国际研讨会论文集。第十五届国际计算机科学逻辑研讨会论文集,CSL’01(2001),Springer-Verlag:Springer-Verlag London,UK),1-19·Zbl 0999.68045号
[43] Reynolds,John C.,《分离逻辑:共享可变数据结构的逻辑》,(LICS(2002),IEEE计算机学会),55-74
[44] Rod Burstall,《证明改变数据结构的程序正确性的一些技术》,《机器智能》,第7卷(1972年)·Zbl 0259.68009号
[45] 理查德·博纳特(Richard Bornat),《证明Hoare逻辑中的指针程序》(Backhouse,Roland Carl;Oliveira,JoséNuno,MPC.MPC,计算机科学讲稿,第1837卷(2000),斯普林格),102-126·兹伯利0963.68036
[46] Hoare,C.A.R.,《过程和参数:公理化方法》,(算法语言语义研讨会的会议记录。算法语言语义会议记录,数学课堂讲稿,第188卷(1971),施普林格:施普林格-柏林,海德堡)·Zbl 0221.68020号
[47] Meyer,Bertrand,应用“合同设计”,IEEE Computer,25,10(1992)
[48] 彼得·霍米埃(Peter V.Homeier)。;Martin,David F.,相互递归过程的机械验证,(McRobbie,Michael A.;Slaney,John K.,CADE,计算机科学讲义,第1104卷(1996),Springer),201-215·Zbl 1075.68615号
[49] Kleymann,Thomas,Hoare逻辑和辅助变量,计算的形式方面,11,5,541-566(1999)·Zbl 0978.03026号
[50] von Oheimb,David,《相互递归和局部变量的Hoare逻辑》(软件技术和理论计算机科学基础(1999)),168-180·Zbl 0956.68086号
[51] 亚历山大·博尔吉达(Alexander Borgida);约翰·米洛波洛斯(John Mylopoulos);Reiter,Raymond,关于程序规范中的框架问题,软件工程,21,10,785-798(1995)
[52] 莱昂纳多·德·莫拉;Bjrner,Nikolaj,《可满足性模理论:开胃菜》(Medeiros Oliveira,Marcel Vinicius;Woodcock,Jim,SBMF.SBMF,《计算机科学讲义》,第5902卷(2009),Springer),23-36·Zbl 1266.03047号
[53] 莱昂纳多·德·莫拉;布鲁诺·杜特雷;Natarajan Shankar,《可满足性模理论教程》(第19届计算机辅助验证国际会议论文集,CAV’07(2007),Springer-Verlag:Springer-Verlag Berlin,Heidelberg),20-36·Zbl 1135.68563号
[54] 沙拉德·马利克;赵莹;科诺·F·马迪根。;张林涛;Moskewicz,Matthew W.,Chaff:设计一个高效的SAT求解器,设计自动化会议,0530-535(2001)
[55] 恩,尼克拉斯;Srensson,Niklas,《可扩展SAT解决方案》,(Giunchiglia,Enrico;Tacchella,Armando,SAT,计算机科学讲义,第2919卷(2003),Springer),502-518·Zbl 1204.68191号
[56] Bruno Dutertre、Leonardo De Moura、The Yices SMT Solver。技术报告,SRI,2006年。;Bruno Dutertre、Leonardo De Moura、The Yices SMT Solver。技术报告,SRI,2006年。
[57] 克拉克·巴雷特;Tinelli,Cesare,CVC3,(Damm,Werner;Hermanns,Holger,《第19届计算机辅助验证国际会议论文集》,第19届国际计算机辅助验证会议论文集,CAV’07。第19届计算机辅助验证国际会议记录。第19届计算机辅助验证国际会议记录,CAV’07,计算机科学讲稿,第4590卷(2007),Springer-Verlag:Springer-Verlag Berlin,Germany),298-302·Zbl 1119.68005号
[58] 莱昂纳多·德·莫拉;Björner,Nikolaj,(Z3:高效SMT求解器。Z3:有效SMT解算器,计算机科学讲义,第4963/2008卷(2008),Springer:Springer Berlin),337-340
[59] Sylvain Conchon,Evelyne Contejean,Johannes Kanig,Ergo:多态一阶逻辑模理论的定理证明器,2006。;Sylvain Conchon,Evelyne Contejean,Johannes Kanig,Ergo:多态一阶逻辑模理论的定理证明器,2006年·Zbl 1277.68240号
[60] 托拜厄斯·尼普科;劳伦斯·C·鲍尔森。;马库斯·温泽尔(Isabelle/HOL-高阶逻辑的证明助手。Isabelle/HOL-高级逻辑的证明助理,LNCS,第2283卷(2002),施普林格)·Zbl 0994.68131号
[61] 伊夫·贝托特;Pierre Casteéran,(交互式定理证明和程序开发。Coq'Art:归纳构造的演算。交互式定理证明与程序开发。Coq'Art:The Calculus of Inductive Construction,Texts in Theory Computer Science(2004),Springer Verlag)·Zbl 1069.68095号
[62] Shankar,Natarajan,自动扣除验证,ACM Compute。调查。,2009年10月41日20:1-20:56·Zbl 1507.68197号
[63] 德国人,史蒂文·M。;Wegbreit,Ben,归纳断言的合成器,(1975年5月19日至22日,全国计算机会议和展览会论文集。1975年5月19日至25日,全国电脑会议和博览会论文集,AFIPS’75(1975),ACM:美国纽约州纽约市ACM),369-376
[64] Shmuel Katz;Manna,Zohar,程序的逻辑分析,Commun。ACM,188-206年4月19日(1976年)·Zbl 0353.68016号
[65] Karr,M.,程序变量之间的仿射关系,信息学报,6133-151(1976)·兹比尔0358.68025
[66] 铃木、Norihisa;Ishihata,Kiyoshi,数组绑定检查器的实现,(第四届ACM SIGACT-SIGPLAN编程语言原理研讨会论文集。第四届ASM SIGACT SIGPLAN编程语言原理会议论文集,POPL’77(1977),ACM:美国纽约州纽约市ACM),132-143
[67] 库索特,P。;Halbwachs,N.,程序变量之间线性约束的自动发现,(第五届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录(1978),ACM出版社:ACM出版社,亚利桑那州图森,纽约州纽约市),84-97
[68] 德肖维茨,纳丘姆;Manna,Zohar,程序注释推理规则,(第三届软件工程国际会议论文集。第三届国际软件工程会议论文集,ICSE’78(1978),IEEE出版社:美国新泽西州皮斯卡塔韦IEEE出版社),158-167·Zbl 0463.68023号
[69] 迈克尔·D·恩斯特。;杰克·科克雷尔;威廉·格里斯沃尔德(William G.Griswold)。;David Notkin,《动态发现可能的程序不变量以支持程序进化》,IEEE软件工程学报,2799-123(2001)
[70] Gary T.Leavens。;鲁比,克莱德;Rustan,K。;M.莱诺。;埃里克·波尔;Jacobs,Bart,JML:支持Java详细设计的符号和工具,(OOPSLA’00:2000年面向对象编程、系统、语言和应用会议论文集补遗(2000年),ACM:美国纽约州纽约市ACM),105-106
[71] G.Leavens,Y.Cheon,与JML签订合同设计,2003年。;G.Leavens,Y.Cheon,与JML签订合同设计,2003年。
[72] Poetzsch-Heffter,阿恩;Müller,Peter,《顺序Java的编程逻辑》,(Doaitse Swierstra,S.,ESOP.ESOP,计算机科学讲义,第1576卷(1999),Springer),162-176
[73] 巴特·雅各布斯;约瑟夫·基尼(Joseph Kiniry);Warnier,Martijn,Java程序验证挑战,(de Boer,Frank S.;Bonsangue,Marcello M.;Graf,Susanne;de Roever,Willem P.,FMCO.FMCO,计算机科学讲义,第2852卷(2002),Springer),202-219
[74] Gary T.Leavens。;Leino,K.Rustan M。;Müller,Peter,顺序面向对象程序的规范和验证挑战,Form.Asp。计算。,19, 2, 159-189 (2007) ·Zbl 1121.68074号
[75] Meyer,J。;缪勒,P。;Poetzsch-Heffter,A.,《JIVE系统实现描述》(2000),FernUniversität Hagen
[76] Owre,Sam;约翰·拉什比(John M.Rushby)。;Shankar,Natarajan,PVS:原型验证系统,(Kapur,Deepak,CADE.CADE,计算机科学讲稿,第607卷(1992),Springer),748-752
[77] 雅各布斯,巴特;Poll,Erik,Java建模语言JML的逻辑,(Hußmann,Heinrich,FASE.FASE,计算机科学讲义,第2029卷(2001),Springer),284-299·Zbl 0977.68588号
[78] Jacobs,Bart,《带JML注释的Java程序的弱前置条件推理》,J.Log。阿尔盖布。程序。,58, 1-2, 61-88 (2004) ·Zbl 1073.68024号
[79] von Oheimb,David,Isabelle/HOL中Java的Hoare逻辑,并发和计算:实践和经验,13,13,1173-1214(2001)·Zbl 0997.68019号
[80] Jean-Christophe Filliátre;Marché,Claude,演绎程序验证的Why/Krakatoa/Caduceus平台,(Damm,Werner;Hermanns,Holger,CAV’07论文集。CAV’07论文集,《计算机科学讲义》,第4590卷(2007年),施普林格出版社,173-177
[81] Jean-Christophe Filliátre;Claude Marché,C程序的多元验证,(Davies,Jim;Schulte,Wolfram;Barnett,Michael,ICFEM。ICFEM,计算机科学讲义,第3308卷(2004),Springer),15-29
[82] Loc Correnson、Pascal Cuoq、Armand Puccetti、Julien Signoles、Frama-C用户手册。可从Frama-C网站获取,2010年,http://frama-c.com; Loc Correnson、Pascal Cuoq、Armand Puccetti、Julien Signoles、Frama-C用户手册。可从Frama-C网站获取,2010年,http://frama-c.com
[83] 克劳德·马奇;Paulin-Mohring,Christine;Urbain,Xavier,用于认证JAVA/JAVACARD程序的KRAKATOA工具,JML,J.Log注释。阿尔盖布。程序。,58,1-289-106(2004年)·Zbl 1073.68678号
[84] Patrick Baudin、Pascal Cuoq、Jean-Christophe Filliátre、Claude Marché、Benjamin Monate、Yannick Moy、Virgile Prevosto、ACSL:ANSI/ISO C规范语言。CEA清单和INRIA,2010年。;Patrick Baudin、Pascal Cuoq、Jean-Christophe Filliátre、Claude Marché、Benjamin Monate、Yannick Moy、Virgile Prevosto、ACSL:ANSI/ISO C规范语言。CEA列表和INRIA,2010年。
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。