×

使用Boogie验证Whiley程序。 (英语) Zbl 1512.68059号

概要:发展日益复杂的核查系统的努力继续有增无减。Dafny、Spec#、ESC/Java、SPARK Ada和Whiley等工具试图以与类型检查类似的方式将规范和验证无缝集成到编程语言中。一种常见的集成方法是生成验证条件,并将其交给自动定理证明器。这提供了一个很好的关注点分离,并允许互换使用不同的定理证明器。然而,生成核查条件仍然是一项艰巨的任务,使用更“高级”的中间核查语言已经司空见惯。特别是,Boogie提供了一种广泛使用和理解的中间验证语言。一个常见的困难是源语言和中间验证语言之间可能存在阻抗不匹配。在本文中,我们探讨了使用Boogie作为中间验证语言来验证Whiley中的程序。这一点值得注意,因为Whiley语言(除其他外)具有丰富的类型系统,具有相当大的阻抗失配潜力。我们提供了将Whiley翻译成Boogie的全面说明,这表明可以对Whiley语言的大多数方面进行建模。Whiley语言提出的主要挑战包括:Whiley的表达型系统的编码以及对流类型和泛型的支持;规范中的表达式定义明确的隐含假设;从表达式中调用方法的能力;从函数或方法返回多个值的能力;无限制lambda函数的存在;以及有限的框架语法。我们证明,与为Whiley验证定制的本地Whiley验证器相比,生成的验证工具可以验证更多的程序。此外,我们的工作证明Boogie(在大多数情况下)足够通用,可以作为多种源语言的中间语言。

理学硕士:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
60年第68季度 规范和验证(程序逻辑、模型检查等)
68伏15 定理证明(自动和交互式定理证明、演绎、解析等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Ahmadi,R.,Leino,K.R.M.,Nummenmaa,J.:具有特征的Dafny程序的自动验证。摘自:类Java程序形式化技术研讨会论文集(FTFJP),第4:1-4:5页。ACM出版社(2015)
[2] Ahrendt,W.、Beckert,B.、Bubel,R.、Hähnle,R.,Schmitt,P.H.、Ulbrich,M.(编辑):演绎软件验证——KeY Book-从理论到实践,LNCS,第10001卷。斯普林格(2016)。doi:10.1007/978-3-319-49812-6
[3] Altidor,J.,Huang,S.S.,Smaragdakis,Y.:驯服通配符:结合定义方差和使用方差。在:美国计算机学会编程语言设计与实现会议论文集(PLDI),第602-613页。ACM出版社(2011)
[4] Ameri,M.,Furia,C.A.:为什么只是Boogie?在中间验证语言之间进行翻译。摘自:《综合形式方法会议记录》,第79-95页(2016年)
[5] Amighi,A.、Blom,S.、Darabi,S.,Huisman,M.、Mostowski,W.、Zaharieva-Stojanovski,M.:使用VerCors验证并发系统。收录于:国际正规方法学校(SFM),LNCS,第8483卷,第172-216页。Springer-Verlag(2014)·Zbl 1445.68131号
[6] Appel,AW,《认证编译器程序逻辑》(2014),剑桥:剑桥大学出版社,剑桥·Zbl 1298.68009号 ·doi:10.1017/CBO9781107256552
[7] Arlt,S.,Rümmer,P.,Schäf,M.:Joogie:从Java到Jimple再到Boogie。摘自:Java程序分析最新技术研讨会论文集(2013年)
[8] Astrauskas,V.、Müller,P.、Poli,F.、Summers,A.J.:利用锈蚀类型进行模块化规范和验证。摘自:ACM面向对象编程、系统、语言和应用(OOPSLA)会议记录,第147页。ACM出版社(2019)
[9] Banerjee,A.,Naumann,D.A.,Rosenberg,S.:关于全局不变量的局部推理的区域逻辑。摘自:《欧洲面向对象编程会议记录》,第387-411页。Springer-Verlag(2008)。doi:10.1007/978-3-540-70592-5_17
[10] 班瓦特,F。;Müller,P.,字节码的程序逻辑,Electron。注释计算。科学。,141, 1, 255-273 (2005) ·doi:10.1016/j.entcs.2005.02.026
[11] Baranowski,M.,He,S.,Rakamarić,Z.:使用SMACK验证Rust程序。摘自:《验证和分析自动化技术》,第528-535页。斯普林格·弗拉格(2018)
[12] Barbanera,F.,Caglini,M.D.C.:交叉和并集类型。摘自:《计算机软件理论方面会议论文集》,第651-674页(1991年)·Zbl 1493.68080号
[13] Barnes,J.:高度诚信Ada:SPARK方法。Addison Wesley Longman,Inc.,雷丁(1997)·Zbl 0884.68017号
[14] Barnett,M.,Chang,B.E.,DeLine,R.,Jacobs,B.,Leino,K.R.M.:Boogie:面向对象程序的模块化可重用验证器。摘自:《组件和对象形式化方法学报》(FMCO),第364-387页(2006)
[15] 巴内特,M。;DeLine,R。;Fähndrich,M。;KRM Leino;Schulte,W.,《使用不变量验证面向对象程序》,J.object Technol。,3, 6, 27-56 (2004) ·doi:10.5381/jot.2004.3.6.a2
[16] 巴内特,M。;Fähndrich,M。;KRM Leino;缪勒,P。;舒尔特,W。;Venter,H.,规范和验证:规范#经验,Commun。ACM,54,6,81-91(2011)·doi:10.145/1953122.1953145
[17] Barnett,M.,Leino,K.R.M.:非结构化程序的弱前置条件。摘自:软件工具和工程(PASTE)程序分析研讨会论文集,第82-87页。ACM出版社(2005)
[18] Barnett,M.,Leino,K.R.M.:去之前没有声明的地方。摘自:《验证软件会议记录:理论、工具、实验》,LNCS,第6217卷,第157-168页。施普林格出版社(2010)
[19] Barrett,C.,Tinelli,C.:CVC3。摘自:《计算机辅助验证会议记录》,第298-302页(2007年)
[20] Barrett,C.W.、Conway,C.L.、Deters,M.、Hadarean,L.、Jovanovic,D.、King,T.、Reynolds,A.、Tinelli,C.:CVC4。摘自:《计算机辅助验证会议记录》,LNCS,第6806卷,第171-177页。Springer-Verlag(2011)·Zbl 0714.65036号
[21] Barrett,C.W.,Stump,A.,Tinelli,C.:SMT-LIB标准版本2.0。在:第八届可满足性模块理论国际研讨会论文集,苏格兰爱丁堡,(SMT’10)(2010)
[22] Baudin,P.、Cuo,P.,Filliátre,J.C.、Marché,C.、Monate,B.、Moy,Y.、Prevosto,V.:ACSL:ANSI/ISO C规范语言(版本1.8)
[23] Beame,P。;Liew,V.,《验证非线性整数算法》,J.ACM,66,3,22:1-22:30(2019)·兹比尔1473.68105 ·数字对象标识代码:10.1145/3319396
[24] Bertot,Y.,Casteéran,P.:交互式定理证明和程序开发。Coq'Art:归纳结构的微积分。理论计算机科学课文。Springer-Verlag(2004)·Zbl 1069.68095号
[25] Betts,A.,Chong,N.,Donaldson,A.F.,Qadeer,S.,Thomson,P.:GPU验证:GPU内核的验证程序。摘自:ACM面向对象编程、系统、语言和应用(OOPSLA)会议记录,第113-132页。ACM出版社(2012)
[26] Blanchard,A.,Kosmatov,N.,Loulergue,F.:关于使用Frama-C验证物联网软件的经验教训。摘自:《高性能计算与仿真会议论文集》,第21-30页。IEEE(2018)
[27] Blom,S.、Huisman,M.:用于验证并发程序的VerCors工具。摘自:《形式方法研讨会论文集》(FM),第8442卷,第127-131页。Springer-Verlag(2014)
[28] Bobot,F.,Filliátre,J.C.,Marché,C.,Paskevich,A.:Why3:牧养你的一群谚语。参加:中级验证语言研讨会(2011年)
[29] Boerman,J.、Huisman,M.、Joosten,S.J.C.:关于JML的推理:KeY和OpenJML之间的差异。在:《综合形式方法会议记录》,LNCS,第11023卷,第30-46页。斯普林格·弗拉格(2018)
[30] Bornat,R.:用Hoare逻辑证明指针程序。摘自:程序构造数学会议记录(2000)·兹伯利0963.68036
[31] Bouillaguet,C.,Kuncak,V.,Wies,T.,Zee,K.,Rinard,M.C.:在Jahob数据结构验证系统中使用一阶定理证明器。摘自:验证、模型检查和抽象解释会议记录,第74-88页(2007年)·Zbl 1132.68348号
[32] Boyapati,C.,Khurshid,S.,Marinov,D.:Korat:基于Java谓词的自动化测试。《软件测试与分析国际研讨会论文集》,第123-133页(2002年)。doi:10.1145/566171.566191
[33] Brandon,C.,Chapin,P.:SPARK/Ada cubesat控制程序。摘自:《可靠软件技术会议记录》,第51-64页(2013年)
[34] 伯迪,L。;Cheon,Y。;科克,DR;Ernst,医学博士;Kiniry,J。;Leavens,燃气轮机;KRM Leino;Poll,E.,《JML工具和应用概述》,Electron。注释计算。科学。,80, 75-91 (2003) ·doi:10.1016/S1571-0661(04)80810-7
[35] Cadar,C.,Dunbar,D.,Engler,D.:Klee:为复杂系统程序自动生成高覆盖率测试。载:《操作系统设计与实现会议论文集》,第209-224页(2008年)
[36] Cardelli,L.:结构子类型和权力类型的概念。摘自:ACM编程语言原则研讨会论文集,第70-79页。ACM出版社(1988)
[37] Cataño,N.,Huisman,M.:使用ESC/Java对Gemplus电子钱包进行正式规范和静态检查。摘自:《欧洲形式方法研讨会论文集》,LNCS,第2391卷,第272-289页。Springer-Verlag(2002)·Zbl 1064.68577号
[38] Chalin,P.、Kiniry,J.R.、Leavens,G.T.、Poll,E.:超越断言:JML和ESC/Java2的高级规范和验证。摘自:《组件和对象形式化方法学报》(FMCO),第342-363页(2005)
[39] Chalin,P.,Rioux,F.:JML运行时断言检查:使用强有效性改进错误报告和效率。摘自:《形式方法研讨会论文集》,LNCS,第5014卷,第246-261页。Springer-Verlag(2008)
[40] 查普曼,R.,沙达,F.:我们到了吗?用SPARK进行工业定理证明20年。摘自:交互式定理证明会议(ITP),第17-26页(2014)
[41] Chen,Y.,Furia,C.A.:中间验证器的稳健性测试。载于:《核查和分析自动化技术会议记录》,LNCS,第11138卷,第91-108页。施普林格(2018)
[42] Cheon,Y.,Leavens,G.T.:一种简单实用的单元测试方法:JML和JUnit方法。摘自:《欧洲面向对象编程会议记录》,第231-255页。斯普林格(2002)。doi:10.1007/3-540-47993-7_10·Zbl 1049.68762号
[43] Chin,J.,Pearce,D.J.:使用基于规范的测试查找错误很容易!《程序设计的艺术、科学与工程》5,第13条(2021年)
[44] Cimatti,A.、Griggio,A.、Irfan,A.、Roveri,M.、Sebastiani,R.:用增量线性化解决非线性整数算法的实验。参见:《可满足性测试(SAT)理论与应用会议记录》,LNCS,第10929卷,第383-398页。斯普林格·弗拉格(2018)·Zbl 1511.68244号
[45] Cohen,E.,Dahlweid,M.,Hillebrand,M.,Leinenbach,D.,Moskal,M.,Santen,T.,Schulte,W.,Tobies,S.:验证并发C的实用系统。Springer-Verlag(2009)
[46] Cok,D.R.:OpenJML:通过扩展OpenJDK实现Java 7的JML。收录于:《NASA正式方法研讨会论文集》,LNCS,第6617卷,第472-479页。Springer-Verlag(2011)
[47] Cok,D.R.:OpenJML:使用JML、OpenJDK和Eclipse对Java 7进行软件验证。摘自:《正式综合开发环境研讨会论文集》,第149卷,第79-92页(2014年)
[48] Cok,D.R.,Kiniry,J.:ESC/Java2:将ESC/Java和JML结合起来。摘自:《安全、可靠和互操作智能设备的构造和分析会议记录》,第108-128页(2005年)
[49] Conchon,S.、Coquereau,A.、Iguernlala,M.、Mebsout,A.:Alt ergo 2.2。在:可满足性模理论(SMT)研讨会上。HAL CCSD(2018)
[50] Cook,B.,Kroening,D.,Sharygina,N.:程序验证的精确定理证明。载:《利用形式化方法、验证和确认的应用研讨会论文集》,第96-114页(2004年)·Zbl 1081.68673号
[51] Corzilius,F.,Loup,U.,Junges,S.,Al brahám,E.:SMT-RAT:符合SMT的非线性实数工具箱-(工具演示)。参见:《可满足性测试(SAT)理论与应用会议记录》,LNCS,第7317卷,第442-448页。Springer-Verlag(2012)
[52] Cuoq,P.,Kirchner,F.,Kosmatov,N.,Prevosto,V.,Signoles,J.,Yakobowski,B.:Frama-C:软件分析视角。摘自:《软件工程与形式化方法会议论文集》,LNCS,第7504卷,第233-247页。Springer-Verlag(2012)
[53] de Moura,L.,Björner,N.:Z3:高效SMT求解器。摘自:系统构建和分析工具和算法会议记录,第337-340页(2008)
[54] de Moura,L.M.,Björner,N.:SMT求解器的高效E-matching。摘自:自动扣除会议记录,第183-198页(2007年)·Zbl 1213.68578号
[55] Detlefs,D。;纳尔逊,G。;Saxe,JB,Simplify:用于程序检查的定理证明器,J.ACM,52,3,365-473(2005)·Zbl 1323.68462号 ·doi:10.1145/1066100.1066102
[56] Detlefs,D.L.,Leino,K.R.M.,Nelson,G.,Saxe,J.B.:扩展静态检查。SRC研究报告159,康柏系统研究中心(1998)
[57] Dijkstra,EW,防护命令,程序的不确定性和形式派生,Commun。ACM,18,453-457(1975)·兹比尔0308.68017 ·数字对象标识代码:10.1145/360933.360975
[58] Dross,C.、Efstathopoulos,P.、Lesens,D.、Mentré,D.、Moy,Y.:铁路、空间、安全:spark 2014的三个案例研究。In:嵌入式实时系统(ERTS)大会会议记录(2014)
[59] Dross,C.、Furia,C.A.、Huisman,M.、Monahan,R.、Müller,P.:验证2019年:项目验证竞赛(扩展报告)。CoRR arXiv:2008.13610(2020)
[60] Dubochet,G.,Odersky,M.:在JVM上编译结构类型:从scala的角度比较反射和生成技术。在:面向对象语言、程序和系统研讨会(ICOOLPS)的实现、编译和优化会议记录,第34-41页。ACM出版社(2009)
[61] Dutertre,B.:Yices 2.2。摘自:《计算机辅助验证会议记录》,LNCS,第8559卷,第737-744页。Springer-Verlag(2014)
[62] Dutertre,B.,de Moura,L.M.:DPLL(T)的快速线性算法求解器。摘自:《计算机辅助验证会议记录》,第81-94页(2006年)
[63] Eilers,M.,Müller,P.:Nagini:Python的静态验证器。摘自:《计算机辅助验证会议记录》,LNCS,第10981卷,第596-603页。斯普林格·弗拉格(2018)
[64] Fähndrich,M.,Leino,K.R.M.:在面向对象语言中声明和检查非空类型。摘自:ACM面向对象编程、系统、语言和应用(OOPSLA)会议记录,第302-312页。ACM出版社(2003)
[65] Filliâtre,J.,Paskevich,A.:程序遇到证明者的原因3。摘自:《欧洲规划研讨会论文集》,第125-128页(2013年)·Zbl 1435.68366号
[66] Filliátre,J.C.:用Why3验证两行C:程序验证练习。摘自:《验证软件会议记录:理论、工具、实验》,LNCS,第7152卷,第83-97页。Springer-Verlag(2012)
[67] Filliátre,J.C.,Marché,C.:演绎程序验证的Why/Krakatoa/Caduceus平台。摘自:《计算机辅助验证会议记录》,LNCS,第4590卷,第173-177页。Springer-Verlag(2007)
[68] Flanagan,C.,Leino,K.R.M.,Lillibridge,M.,Nelson,G.,Saxe,J.B.,Stata,R.:Java的扩展静态检查。摘自:ACM编程语言设计与实现(PLDI)会议记录,第234-245页(2002)
[69] Furia,C.A.,Poskitt,C.M.,Tschannen,J.:AutoProof验证器:非专业人士和标准代码的可用性。In:正式集成开发环境(F-IDE)研讨会会议记录(2015)
[70] Games,M.:马丁·加德纳(Martin Gardner)将约翰·康威(John Conway)的新纸牌游戏《生活》(life)完美结合。《科学美国人》223120-123(1970)
[71] Ge,Y.,de Moura,L.M.:可满足模理论中量化公式的完整实例化。摘自:《计算机辅助验证会议记录》,第306-320页(2009年)·Zbl 1242.68280号
[72] Gil,J.,Maman,I.:Whiteoak:将结构类型引入Java。摘自:ACM面向对象编程、系统、语言和应用(OOPSLA)会议记录,第73-90页。ACM出版社(2008)
[73] Goodloe,A.E.,Muñoz,C.,Kirchner,F.,Correnson,L.:数字程序的验证:从实数到浮点数。收录于:《NASA正式方法研讨会论文集》,LNCS,第7871卷,第441-446页。Springer-Verlag(2013)
[74] Goues,C.L.,Leino,K.R.M.,Moskal,M.:布吉验证调试器(工具文件)。摘自:《软件工程与形式化方法会议论文集》,LNCS,第7041卷,第407-414页。Springer-Verlag(2011)
[75] Gries,D.:多重赋值语句。IEEE传输。柔和。工程4,89-93(1978)·Zbl 0381.68017号
[76] Gries,D.,《编程科学》(1981年),柏林:斯普林格·弗拉格出版社,柏林·Zbl 0472.68003号 ·doi:10.1007/978-1-4612-5983-1
[77] Guha,A.,Saftoiu,C.,Krishnamurthi,S.:使用流量分析对局部控制和状态进行分类。摘自:《欧洲编程研讨会论文集》,第256-275页(2011年)·Zbl 1326.68048号
[78] Gulwani,S.、Tiwari,A.:对线性算术和未解释函数的组合抽象进行断言检查。摘自:《欧洲规划研讨会论文集》,第3924卷,第279-293页(2006年)·Zbl 1178.68153号
[79] Heule,S.,Kassios,I.T.,Müller,P.,Summers,A.J.:使用抽象谓词和抽象函数生成许可逻辑的验证条件。摘自:《欧洲面向对象编程会议记录》,第451-476页(2013年)
[80] Hoare,C.,《验证编译器:计算研究的重大挑战》,J.ACM,50,1,63-69(2003)·兹比尔1032.68868 ·doi:10.145/602382.602403
[81] Hocking,A.B.,Knight,J.C.,Aiello,M.A.,Shiraishi,S.:论证软件符合ISO 26262。摘自:《软件可靠性工程研讨会论文集》,第226-231页。IEEE计算机学会(2014)
[82] Hoder,K.,Kovács,L.,Voronkov,A.:《吸血鬼》中的不变世代。摘自:《系统构建和分析工具和算法会议记录》,LNCS,第6605卷,第60-64页。Springer-Verlag(2011)
[83] Huisman,M.,Klebanov,V.,Monahan,R.:验证2016年本次验证竞赛组织者报告(2013年)
[84] Igarashi,A.,Nagira,H.:面向对象编程的联合类型。J.对象技术。6(2) (2007)
[85] Jacobs,B.,Smans,J.,Philippearts,P.,Vogels,F.,Penninckx,W.,Piessens,F.:VeriFast:一款强大、可靠、可预测的C和Java快速验证器。摘自:《NASA正式方法研讨会论文集》,第41-55页(2011年)
[86] Jacobs,B.,Smans,J.,Piessens,F.:快速浏览VeriFast程序验证器。摘自:《亚洲编程语言与系统研讨会论文集》,第304-311页(2010年)
[87] 詹宁斯,TJ;Carré,BA,用于正式验证的Ada子集(SPARK),Ada User,9,增补,121-126(1989)
[88] Jovanovic,D.:用MCSAT解决非线性整数算法。参见:《验证、模型检查和抽象解释会议记录》,LNCS,第10145卷,第330-346页。Springer-Verlag(2017)·Zbl 1484.68220号
[89] Jung,R.,Dang,H.H.,Kang,J.,Dreyer,D.:堆叠借土:Rust的别名模型。摘自:ACM编程语言原则研讨会会议记录,p.第41条(2020年)
[90] Jung,R.、Jourdan,J.H.、Krebbers,R.和Dreyer,D.:RustBelt:确保Rust编程语言的基础。摘自:《美国计算机学会编程语言原则研讨会论文集》,第66:1-66:34页。ACM出版社(2018)
[91] Kassios,I.T.:动态帧:支持无限制的帧、依赖和共享。摘自:《形式方法研讨会论文集》,LNCS,第4085卷,第268-283页。Springer-Verlag(2006)
[92] Kassios,I.T.:动态框架和自动验证。技术代表教程。第二次成本行动IC0701培训学校(2011年)·Zbl 1252.68192号
[93] Klebanov,V.、Müller,P.、Shankar,N.、Leavens,G.T.、Wüstholz,V.,Alkassar,E.、Arthan,R.、Bronish,D.、Chapman,R.,Cohen,E.、Hillebrand,M.、Jacobs,B.、Leino,K.R.M.、Monahan,R..、Piessens,F.、Polikarpova,N.,Ridge,T.、Smans,J.、Tobies,S.、Tuerk,T.,Ulbrich,M.,Weiß,B.:第一次验证软件竞赛:经验报告(VSComp)。收录:形式方法(FM)研讨会论文集,LNCS。Springer-Verlag(2011)
[94] Kosmatov,N.,Signoles,J.:关于使用Frama-C进行运行时断言检查的教训。摘自:《运行时验证会议记录》,LNCS,第8174卷,第386-399页。Springer-Verlag(2013)
[95] Kovács,L.,Voronkov,A.:一阶定理证明和Vampire。摘自:《计算机辅助验证会议记录》,LNCS,第8044卷,第1-35页。Springer-Verlag(2013)
[96] Kremer,G.,Corzilius,F.,Ábrahám,E.:一种广义分枝定界方法及其在SAT模非线性整数运算中的应用。收录于:《科学计算中的计算机代数》(CASC),LNCS,第9890卷,第315-335页。Springer-Verlag(2016)·Zbl 1453.90186号
[97] Kroening,D.,Tautschnig,M.:CBMC-C边界模型检查器。摘自:《系统构建和分析工具和算法会议记录》,LNCS,第8413卷,第389-391页。Springer-Verlag(2014)
[98] Lameed,N.,Hendren,L.J.:在MATLAB JIT编译器中高效实现数组复制语义的分段静态技术。摘自:编译器构造会议记录(CC),第22-41页(2011年)
[99] Leavens,燃气轮机;Cheon,Y。;克利夫顿,C。;鲁比,C。;Cok,DR,JML的设计如何兼顾运行时断言检查和形式验证,Sci。计算。程序。,55, 1-3, 185-208 (2005) ·Zbl 1075.68009号 ·doi:10.1016/j.scico.2004.05.015
[100] Leino,K.R.M.:Ecstatic:一种具有公理语义的面向对象编程语言。参加:面向对象语言基础研讨会(FOOL 4)(1997)
[101] Leino,KRM,高效最弱的先决条件,Inf.Process。莱特。,93, 6, 281-288 (2005) ·Zbl 1173.68563号 ·doi:10.1016/j.ipl.2004.10.015
[102] Leino,K.R.M.:面向对象软件的规范和验证。Marktoberdorf国际暑期学校技术报告(2008)
[103] 莱诺,K.R.M.:这是《布吉2》(2008)。https://www.microsoft.com/en-us/research/publication/this-is-boogie-2-2/。微软研究,手稿KRML 178
[104] Leino,K.R.M.:Dafny:功能正确性的自动程序验证器。摘自:《程序设计、人工智能和推理逻辑会议论文集》,LNCS,第6355卷,第348-370页。Springer-Verlag(2010)·Zbl 1253.68095号
[105] Leino,K.R.M.:Leino和K.R.M:与Dafny一起开发验证程序。摘自:《验证软件会议记录:理论、工具、实验》,LNCS,第7152卷,第82页。Springer-Verlag(2012)·Zbl 1326.68262号
[106] Leino,K.R.M.:使用Boogie和Why3等中间验证语言(IVL)进行程序验证。摘自:结构化高效并行和分布式/云计算(HILT)安全语言和技术研讨会论文集,第25-26页(2012年)
[107] Leino,K.R.M.,Monahan,R.:关于使用一阶SMT解算器进行理解的推理。摘自:应用计算研讨会论文集,第615-622页(2009年)
[108] Leino,K.R.M.,Monahan,R.:Dafny遇到了验证基准的挑战。收录于:《验证软件会议记录:理论、工具、实验(VSTTE)LNCS》,第6217卷,第112-126页。施普林格出版社(2010)
[109] Leino,K.R.M.,Müller,P.:使用Spec#语言、方法和工具编写无错误程序。收录于:LASER暑期学校,LNCS,第6029卷,第91-139页。Springer-Verlag(2008)
[110] Leino,K.R.M.,Müller,P.,Smans,J.:用Chalice验证并发程序。In:《安全分析与设计基础V》(FOSAD),第195-222页(2009年)
[111] Leino,K.R.M.,Pit-Claudel,C.:稳定程序验证器的触发选择策略。摘自:《计算机辅助验证会议记录》,LNCS,第9779卷,第361-381页。Springer-Verlag(2016)
[112] Leino,K.R.M.,Rümmer,P.:多态中间验证语言:设计和逻辑编码。在:系统构建和分析的工具和算法,LNCS,第6015卷,第312-327页。Springer-Verlag(2010)·Zbl 1284.68409号
[113] Leino,K.R.M.,Schulte,W.:多线程面向对象语言的验证编译器。收录于:Marktoberdorf夏令营2006:软件系统可靠性和安全,北约ASI系列F.IOS出版社,阿姆斯特丹(2007)·Zbl 1153.68016号
[114] Leino,K.R.M.,Yessenov,K.:圣杯中堆操作代码的逐步细化。计算的形式方面24(4-6)(2012)·Zbl 1259.68034号
[115] Lindner,M.,Aparicius,J.,Lindgren,P.:不要惊慌!通过符号执行验证Rust程序。摘自:工业信息学国际会议(印度),第108-114页(2018年)
[116] Lindner,M.、Fitinghoff,N.、Eriksson,J.、Lindgren,P.:验证Rust中实现的安全功能——一种基于符号执行的方法。摘自:国际工业信息学会议(印度),第1卷,第432-439页(2019年)
[117] Malayeri,D.,Aldrich,J.:整合名词和结构亚型。载:《面向对象编程欧洲会议记录》,第260-284页(2008年)
[118] Malayeri,D.,Aldrich,J.:结构亚型有用吗?实证研究。摘自:《欧洲编程研讨会论文集》,LNCS,第5502卷,第95-111页。Springer-Verlag(2009)
[119] Mangano,F.、Duquennoy,S.、Kosmatov,N.:使用Frama-C对contiki的内存分配模块进行形式验证:案例研究。摘自:《软件工程与形式化方法会议论文集》(SEFM),第114-120页。Springer-Verlag(2016)
[120] Matsushita,Y.、Tsukada,T.、Kobayashi,N.:RustHorn:基于CHC的Rust程序验证。《程序设计语言与系统》,第484-514页。施普林格出版社(2020)·Zbl 1508.68071号
[121] McCormick,J.W.,Chapin,P.C.:《使用SPARK构建高完整性应用程序》,剑桥大学出版社(2015)。doi:10.1017/CBO9781139629294·Zbl 1328.68009号
[122] Meyer,B.,《埃菲尔:软件工程的语言和环境》,J.Syst。软质。,8, 3, 199-246 (1988) ·doi:10.1016/0164-1212(88)90022-2
[123] Meyer,B.:应用“合同设计”。电气与电子工程师协会。计算。25(10), 40-51 (1992)
[124] Mühlberg1 and,J.T.,Freitas,L.:验证freertos:从需求到二进制代码。摘自:关键系统自动验证研讨会(AVoCS)会议记录(2011年)
[125] Müller,P.,Schwerhoff,M.,Summers,A.J.:毒蛇:基于许可推理的验证基础设施。摘自:验证、模型检查和抽象解释会议记录(VMCAI),第41-62页(2016年)·Zbl 1475.68191号
[126] Nelson,G.,Oppen,D.C.:基于同余闭包的快速决策程序。J.ACM 27(1980)·Zbl 0441.68111号
[127] 恩格纳·蒂莫(Nguena-Timo),O。;Langelier,G.,《使用CBMC和Frama-C为周期性高管生成测试数据:案例研究》,Electron。注释计算。科学。,320, 35-51 (2016) ·doi:10.1016/j.entcs.2016.01.004
[128] Nieuwenhuis,R。;Oliveras,A.,《快速同余闭包和扩展》,Inf.Compute。,205, 4, 557-580 (2007) ·Zbl 1112.68116号 ·doi:10.1016/j.ic.2006.08.009
[129] Odersky,M.:如何减少破坏性更新的破坏性。摘自:《美国计算机学会编程语言原则研讨会论文集》,第25-36页(1991年)
[130] O'Hearn,P.W.,Reynolds,J.C.,Yang,H.:关于改变数据结构的程序的局部推理。摘自:《计算机科学逻辑研讨会论文集》,第1-19页。施普林格出版社(2001)。doi:10.1007/3-540-44802-0_1·Zbl 0999.68045号
[131] 帕金森,M.J.,萨默斯,A.J.:分离逻辑和隐式动态框架之间的关系。摘自:《欧洲规划研讨会论文集》,第439-458页(2011年)·Zbl 1326.68104号
[132] Pearce,D.J.:基于约束的流类型演算。摘自:类Java程序正式技术研讨会(FTFJP)会议记录,p.第7条(2013)
[133] Pearce,D.J.:使用并集、交集和否定词的完整流式打字。摘自:《验证、模型检查和抽象解释会议记录》,第335-354页(2013年)·兹比尔1427.68049
[134] Pearce,D.J.:嵌入式系统上Whiley的整数范围分析。摘自:IEEE/IFIP未来嵌入式和通用系统软件技术研讨会论文集,第26-33页(2015年)
[135] Pearce,D.J.:Whiley中的数组编程。在:阵列编程的库、语言和编译器研讨会论文集(2017)。doi:10.1145/3091966.3091972年
[136] Pearce,D.J.:Rust中引用寿命和借用的轻量级形式主义。ACM事务处理。程序。语言系统。第43(1)条,第3(2021)条
[137] Pearce,D.J.,Groves,L.:关于使用Whiley验证软件的思考。摘自:《安全关键系统正式技术研讨会论文集》,第142-159页(2013年)
[138] Pearce,D.J.,Groves,L.:Whiley:软件验证研究平台。摘自:《软件语言工程会议记录》,第238-248页(2013年)
[139] Pearce,D.J.,Groves,L.:设计验证编译器:从开发Whiley中学到的教训。《计算机编程科学》,第191-220页(2015)
[140] Pearce,D.J.、Utting,M.、Groves,L.:Whiley软件验证简介。收录于:工程可信软件系统(SETTS),第1-37页。Springer-Verlag(2019年)。doi:10.1007/978-3-030-17601-3_1
[141] Polikarpova,N.,Furia,C.A.,West,S.:运行之前没有人运行过的:执行中间验证语言。摘自:《运行时验证会议记录》,第251-268页(2013年)
[142] Prevosto,V.,Burghardt,J.,Gerlach,J..,Hartig,K.,Pohl,H.W.,Völlinger,K.:《利用Frama-C对铁路软件进行正式规范和自动验证》。摘自:《工业信息学国际会议》(印度),第710-715页。IEEE(2013)
[143] Puccetti,A.,《使用Frama-C对XEN内核进行静态分析》,J.Univ.Comput。科学。,16, 4, 543-553 (2010)
[144] Pugh,W.:Omega测试:用于相关性分析的快速实用整数规划算法。摘自:《超级计算会议记录》,第4-13页。IEEE计算机学会出版社(1991)
[145] Reynolds,A.,Deters,M.,Kuncak,V.,Tinelli,C.,Barrett,C.W.:SMT合成的反例引导量词实例化。摘自:《计算机辅助验证会议记录》,LNCS,第9207卷,第198-216页。Springer-Verlag(2015)·兹比尔1381.68059
[146] Reynolds,A.、Tinelli,C.、Goel,A.、Krstic,S.、Deters,M.、Barrett,C.W.:SMT中有限模型发现的量化器实例化技术。参见:《自动扣除会议记录》,LNCS,第7898卷,第377-391页。Springer-Verlag(2013)·Zbl 1381.68275号
[147] Rinard,M.C.:Jahob系统中的综合推理和证明选择点选择——程序生存机制。参见:《自动扣除会议记录》,LNCS,第5663卷,第1-16页。Springer-Verlag(2009)
[148] 罗宾逊,PJ;Staples,J.,《将实用数学推理的层次结构形式化》,J.Log。计算。,3, 1, 47-61 (1993) ·Zbl 0779.68078号 ·doi:10.1093/logcom/3.1.47
[149] Sánchez,J.,Leavens,G.T.:使用OpenJML对PtolemyRely程序进行静态验证。摘自:面向方面语言基础研讨会论文集,第13-18页。ACM出版社(2014)
[150] Segal,L.,Chalin,P.:中间验证语言的比较:Boogie和Sireum/Pilar。摘自:《验证软件会议记录:理论、工具、实验》(VSTTE),第130-145页(2012年)
[151] Shankar,N.:用函数语言进行安全破坏性更新的静态分析。摘自:基于逻辑的程序合成与转换(LOPSTR)研讨会论文集,第1-24页(2001年)·Zbl 1073.68564号
[152] Smans,J.,Jacobs,B.,Piessens,F.:VeriCool:并发面向对象语言的自动验证器。In:开放式基于对象的分布式系统的形式化方法(FMOODS),pp.220-239(2008)
[153] Smans,J。;雅各布斯,B。;Piessens,F.,隐式动态框架,ACM Trans。程序。语言系统。,34, 1, 2:1-2:58 (2012) ·doi:10.1145/2160910.2160911
[154] Smans,J.,Jacobs,B.,Piessens,F.,Schulte,W.:基于动态帧的类Java程序的自动验证器。摘自:《软件工程基本方法会议记录》,LNCS,第4961卷,第261-275页。Springer-Verlag(2008)
[155] Souyris,J.、Wiels,V.、Delmas,D.、Delseny,H.:航空电子软件产品的正式验证。摘自:《形式方法研讨会论文集》,LNCS,第5850卷,第532-546页。Springer-Verlag(2009)
[156] Stevens,M.:在嵌入式系统上演示Whiley。惠灵顿维多利亚大学工程与计算机科学学院技术代表(2014年)。网址:http://www.ecs.vuw.ac.nz/djp/文件/MattStevensENGR489.pdf
[157] Ter-Gabrielyan,A.,Summers,A.J.,Müller,P.:分离逻辑中堆可达性的模块化验证。摘自:ACM面向对象编程、系统、语言和应用(OOPSLA)会议记录,第121页。ACM出版社(2019)
[158] Alt-Ergo自动定理证明器,http://alt-ergo.lri.fr/
[159] Whiley编程语言。网址:http://whiley.org
[160] Tobin-Hochstadt,S.,Felleisen,M.:非类型化语言的逻辑类型。摘自:《ACM函数编程国际会议记录》,第117-128页(2010年)·Zbl 1323.68083号
[161] Toman,J.、Pernsteiner,S.、Torlak,E.:外壳:锈蚀的有界验证器。摘自:自动化软件工程会议记录,第75-80页(2015年)
[162] Tschannen,J.,Furia,C.A.,Nordio,M.,Meyer,B.:高级面向对象特性的自动验证:AutoProof方法。收录于:LASER暑期学校,LNCS,第7682卷,第133-155页。施普林格(2011)
[163] Tschannen,J.,Furia,C.A.,Nordio,M.,Polikarpova,N.:自动证明:面向对象程序的自动主动功能验证。在:系统构建和分析的工具和算法会议记录(TACAS),LNCS,第9035卷,第566-580页。Springer-Verlag(2015)
[164] Utting,M.,Pearce,D.J.,Groves,L.:制作Whiley Boogie!在:《综合形式化方法会议记录》,第69-84页(2017)·Zbl 1512.68059号
[165] Volkov,G.,Mandrykin,M.U.,Efremov,D.:Frama-C:C程序的引理函数作为证明。CoRR arXiv:1811.05879(2018)
[166] Wang,F.,Song,F..,Zhang,M.,Zhu,X.,Zang,J.:Krust:锈蚀的正式可执行语义。摘自:软件工程理论方面研讨会论文集,第44-51页(2018年)
[167] Weiss,A.,Patterson,D.,Matsakis,N.D.,Ahmed,A.:氧化物:锈的本质(2019)
[168] Weng,M.、Utting,M.和Pfahringer,B.:惠利项目的边界分析。In:程序。符号执行研讨会的使用(2015)
[169] 翁,MH;Utting,M。;Pfahringer,B.,Whiley程序的束缚分析,电子。注释计算。科学。,320, 53-67 (2016) ·doi:10.1016/j.entcs.2016.01.005
[170] Xu,G.H.,Yang,Z.:JMLAutoTest:一种基于JML和JUnit的新型自动化测试框架。摘自:软件测试正式方法研讨会论文集,第70-85页(2003年)
[171] Zimmerman,D.M.,Nagmoti,R.:《JMLUnit:下一代》。摘自:《面向对象软件形式验证会议记录》,第183-197页。施普林格(2010)。doi:10.1007/978-3642-18070-5_13·Zbl 1308.68032号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。