×

使用RESOLVE框架对Java组件进行形式化验证。 (英语) Zbl 07497928

Konev,Boris(ed.)等人,《组合系统的前沿》。第13届国际研讨会,FroCoS 2021,英国伯明翰,2021年9月8日至10日。会议记录。查姆:斯普林格。选择。笔记计算。科学。12941287-305(2021年)。
摘要:二元决策图(BDD)是布尔公式的有效表示,在模型检查、SAT求解、网络和人工智能等方面有许多应用。本文使用RESOLVE规范和推理框架形式化地验证了BDD组件的Java实现的功能正确性。RESOLVE使用丰富的数学抽象和干净的基于值的语义来进行断言代码的模块化推理。另一方面,Java包含了许多与干净语义和模块化推理概念不一致的语言特性。尤其是别名,通过赋值、参数传递和迭代器很容易创建,因此在对Java代码进行推理时,通常需要基于引用的语义和指向分析的点。本文论证了这两种范式的结合。该实现使用Java,但以一种有条理的方式,并在一个组件目录上分层,该目录是专门为支持模块化推理而设计的。代码的断言方面使用RESOLVE,但是根据Java语法和语言构造进行了定制。在开发BDD组件的正确性证明的过程中,发现并纠正了原始Java实现中的几个错误。这些错误仍然存在,尽管实现通过了一个广泛的测试套件,显示了证明的价值。验证还暴露了与不可访问代码相关的更一般的组件设计模式中的一个限制。
整个系列请参见[Zbl 1482.68028号].

理学硕士:

68Txx型 人工智能
PDF格式 BibTeX公司 XML 引用
全文: 内政部

参考文献:

[1] 奥尔德里奇,J。;科斯塔迪诺夫五世。;Chambers,C.,《程序理解的别名注释》,SIGPLAN Not。,37,11,311-330(2002年)
[2] Asim,S.,设计练习:二进制决策图,SIGSOFT软件。《工程注释》,43、3、19(2018年)
[3] 二元决策图:抽象与实现。俄亥俄州立大学硕士论文(2018)
[4] Aziz,A.等人:HSIS:一个基于BDD的正式验证环境。1994年:第31届设计自动化会议,美国加利福尼亚州洛斯阿拉米托斯,第454-459页。IEEE计算机学会(1994年)。内政部:10.1145/196244.196467
[5] 巴内特,M。;Fähndrich,M。;莱诺,克伦;米勒,P。;舒尔特,W。;Venter,H.,《规范与验证:规范经验》,Commun。ACM,54,6,81-91(2011年)
[6] Beyer,D.,自动化软件验证的进展:SV-COMP 2020,系统构建和分析的工具和算法,347-367(2020),Cham:Springer,Cham
[7] 布鲁克斯,S。;加德纳,P。;Yoshida,N.,并发分离逻辑的语义,CONCUR 2004-并发理论,16-34(2004),海德堡:斯普林格,海德堡·Zbl 1099.68650
[8] 伯克,J。;克拉克,E。;麦克米兰,K。;迪尔,D。;Hwang,L.,《符号模型检验:\(10^{20}\)状态和超越,Inf.Comput。,98年,第142-170页(1992年)·Zbl 0753.68066
[9] 查基,S。;古芬克尔,A。;克拉克,E。;亨辛格,T。;维思,H。;Bloem,R.,基于BDD的符号模型检查,《模型检查手册》,219-245(2018),Cham:Springer,Cham·Zbl 1392.68239
[10] 科恩,E。;伯格霍夫,S。;尼普科,T。;城市,C。;温泽尔,M.,VCC:验证并发C语言的实用系统,高阶逻辑中的定理证明,23-42(2009),海德堡:斯普林格,海德堡
[11] 范迪克,T。;van de Pol,J.,Sylvan:决策图的多核框架,Int.J.Softw。工具技术。变压器。,19675-696(2016年)
[12] 菲利特,J-C;帕斯凯维奇,A。;费莱森,M。;Gardner,P.,Why3 where programs meet provers,Programming Languages and Systems,125-128(2013),海德堡:斯普林格,海德堡·Zbl 1435.68366
[13] 弗拉纳根,C。;莱诺,克伦;利利布里奇,M。;尼尔森,G。;萨克斯,JB;Stata,R.,Java的扩展静态检查,SIGPLAN Not。,第37、5、234-245页(2002年)
[14] Hähnle,R。;孟泽尔,W。;Schmitt,博士,Integrierter deduktiver software entwurf,Künstliche Intell。,12,4,40-41(1998年)
[15] 赫伯特,L。;莱诺,克伦;夸雷斯马,J。;迈耶,B。;Nordio,M.,Using Dafny,一个自动程序验证器,《实用软件验证工具》,156-181(2012),海德堡:斯普林格,海德堡
[16] Heym,W.:计算机程序验证:人类推理的改进。俄亥俄州立大学博士论文(1995年)·Zbl 0869.68033
[17] Hoffman,D.:企业应用规范和验证技术。俄亥俄州立大学博士论文(2016)
[18] 霍格,J。;莉亚,D。;遗嘱,A。;德尚坡市。;霍尔特,R.,《关于处理对象别名的日内瓦公约》,SIGPLAN OOPS Mess。,3、2、11-16(1992年)
[19] 雅各布斯,B。;斯曼斯,J。;Philipparts,P。;福格尔,F。;宾夕法尼亚州宾夕法尼亚州。;皮尔森,F。;博巴鲁,M。;哈夫伦德,K。;霍尔兹曼,乔治亚州;Joshi,R.,VeriFast:一个强大、可靠、可预测的C和Java快速验证程序,NASA正式方法,41-55(2011),海德堡:斯普林格,海德堡
[20] 克拉布尼克。;Nichols,C.,《铁锈编程语言》(2018),旧金山:无淀粉出版社,旧金山
[21] Kulczycki,G.,Sitaraman,M.,Ogden,W.,Leavens,G.:为具有重复参数的调用保留干净的语义。技术报告RSRG-04-01,克莱姆森大学计算机科学系(2003年)。http://www.cs.clemson.edu/决心
[22] Kulczycki,G.,Vasudeo,J.:用Tako简化关于对象的推理。2006年组件系统规范和验证会议记录,SAVCBS 2006,第57-64页。计算机械协会,纽约(2006年)。内政部:10.1145/1181195.1181207
[23] 库赖,R。;米纳托,S。;泽格曼,T。;瓦希奥,T。;佐藤,K。;武田,H。;Inokuchi,A.,基于零抑制BDD的N-gram分析,人工智能新前沿,289-300(2007),海德堡:斯普林格,海德堡
[24] 李,西,用二进制决策程序表示开关电路,贝尔系统。《技术杂志》,38,4985-999(1959)
[25] Lind Nielsen,J.:BuDDy-一个二进制决策图包(2003)。http://vlsicad.eecs.umich.edu/BK/Slots/cache/www.itu.dk/research/buddy/
[26] Loekito,E。;贝利,J。;Pei,J.,基于二元决策图的频繁子序列挖掘方法,Knowl。信息系统。,24,2235-268(2010年)
[27] 洛瓦托,A。;马其顿,D。;斯波托,F。;吉安纳科普卢,D。;Salaün,G.,二进制决策图、软件工程和形式化方法的线程安全库,35-49(2014),Cham:Springer,Cham
[28] 低压,克。;苏,K。;徐,Y。;沙里基纳,北。;Veith,H.,CacBDD:动态缓存管理的BDD包,计算机辅助验证,229-234(2013),海德堡:斯普林格,海德堡
[29] 新罕布什尔州明斯基;Cointe,P.,走向无别名指针,ECOOP 1996面向对象编程,189-209(1996),海德堡:斯普林格,海德堡
[30] 皮尔斯,DJ;Groves,L.,设计验证编译器:从开发whiley中学到的经验教训,Sci。计算机。程序。,113191-220(2015年)
[31] Qian,F.:SableJBDD:Java二进制决策图包(2004)。http://www.sable.mcgill.ca/福吉安/萨布勒日伯德/
[32] Rumreich,L.:二进制决策图:参考实现的形式验证。俄亥俄州立大学硕士论文(2021年)
[33] Sitaraman,M.,《构建一个按钮解析验证器:进展和挑战,形式方面的计算》。,23,5,607-626(2011年)
[34] 西塔拉曼,M。;Weide,B.,使用解析的基于组件的软件,ACM SIGSOFT软件。《工程笔记》,第19、4、21-22页(1994年)
[35] Sivilotti,P.,Asim,S.,Rumreich,L.:BDD:二进制决策图软件组件(2021)。https://github.com/osu-rsrg/BDD
[36] Sivilotti,P.A.,Lang,M.:首先(也是最重要的)与Java接口。第41届ACM计算机科学教育技术研讨会论文集,SIGCSE 2010,第515-519页。计算机械协会,纽约(2010年)。内政部:10.1145/1734263.1734436
[37] Somenzi,F.:CUDD:CU决策图包版本3.0.0(2015)。http://vlsi.colorado.edu/fabio/CUDD/
[38] Vahidi,A.:JDD:纯Java BDD和Z-BDD库(2019年)。https://bitbucket.org/vahidi/jdd/src/master/
[39] Xing,L.,一种基于二元决策图的网络可靠性和灵敏度分析方法,IEEE Trans。系统。曼赛本。A部分系统。嗯,38,1105-115(2008)
[40] Zweben,上海;爱德华兹,SH;韦德,BW;霍林斯沃斯,JE,分层和封装对软件开发成本和质量的影响,IEEE Trans。软。《工程学》,第21、3、200-208页(1995年)
此参考列表基于出版商或数字数学图书馆提供的信息。它的项被试探性地匹配到zbMATH标识符,并且可能包含数据转换错误。它试图尽可能准确地反映原始论文中列出的参考文献,而不要求匹配的完整性或精确性。