×

递归证明中的桥接数组和ADT。 (英语) Zbl 1474.68048号

Groote,Jan Friso(编辑)等人,《系统构建和分析的工具和算法》。第27届国际会议,TACAS 2021,作为欧洲软件理论与实践联合会议的一部分,于2021年3月27日至4月1日在卢森堡卢森堡市举行。诉讼程序。第二部分。查姆:斯普林格。莱克特。注释计算。科学。12652, 24-42 (2021).
摘要:我们提出了一种综合关系不变量的方法,以证明面向对象程序之间的等价性。该方法弥补了递归数据类型和用于表示内部状态的数组之间的差距。我们的关系不变量是递归定义的,因此适用于无限大小的数据结构。基于通过观察和提升两个对象的联合方法中的约束,将递归引入证明中,我们的方法是全自动的,可以看作是求解特定类型的约束Horn子句(CHC)的算法。它已在基于SMT的CHC求解器上实现AdtChc公司并根据一系列基准进行评估。
关于整个系列,请参见[Zbl 1471.68016号].

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
03B70号 计算机科学中的逻辑
68伏15 定理证明(自动和交互式定理证明、演绎、解析等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] J.-R.阿布里亚。《Event-B中的建模:系统和软件工程》,剑桥大学出版社,2010年·Zbl 1213.68214号
[2] R.Alur、R.Bodík、G.Juniwal、M.M.k.Martin、M.Raghothaman、S.A.Seshia、R.Singh、A.Solar-Lezama、E.Torlak和A.Udupa。句法指导合成。在FMCAD中,第1-17页。IEEE,2013年。
[3] S.Amani、A.Hixon、Z.Chen、C.Rizkallah、P.Chubb、L.O'Connor、J.Beeren、Y.Nagashima、J.Lim、T.Sewell、J.Tuong、G.Keller、T.Murray、G.Klein和G.Heiserer。Cogent:验证高保证文件系统实现。在ASPLOS中,第175-188页。ACM,2016年。
[4] R.-J.Back和J.Wright。精化微积分:系统介绍。施普林格科学与商业媒体,2012年·Zbl 0949.68094号
[5] G.Barthe、J.M.Crespo和C.Kunz。使用产品程序进行关系验证。在FM中,LNCS第6664卷,第200-214页。施普林格,2011年。
[6] C.Baumann、B.Beckert、H.Blasum和T.Bormer。从微内核验证规范中吸取的教训是新的瓶颈。在SSV中,EPTCS第102卷,第18-32页。Elsevier,2012年。
[7] D.Beyer和M.E.Keremoglu。CPAchecker:可配置软件验证工具。在CAV中,LNCS第6806卷,第184-190页。施普林格,2011年。
[8] E.Börger公司。ASM细化方法。计算的形式方面,15(2-3):237-2572003·Zbl 1093.68601号
[9] A.Champion、N.Kobayashi和R.Sato。HoIce:一种基于ICE的非线性Horn子句求解器。在APLAS中,LNCS第11275卷,第146-156页。施普林格,2018年·Zbl 1519.68045号
[10] H.Chen、D.Ziegler、A.Chlipala、N.Zeldovich和M.F.Kaashoek。使用Crash-Hoare Logic认证FSCQ文件系统。在SOSP中。ACM,2015年。
[11] N.Chong、B.Cook、K.Kallas、K.Khazem、F.R.Monteiro、D.Schwartz Narbonne、S.Tasiran、M.Tautschnig和M.R.Tuttle。软件开发工作流中的代码级模型检查。G.Rothermel和D.Bae,ICSE-SEIP编辑,第11-20页。ACM,2020年。
[12] A.Chudnov、N.Collins、B.Cook、J.Dodds、B.Huffman、C.MacCárthaigh、S.Magill、E.Mertens、E.Mullen、S.Tasiran等人。亚马逊s2n的持续正式验证。在CAV中,第430-446页。施普林格,2018年。
[13] C.L.Conway和C.W.Barrett。验证高级数据类型的低级实现。在CAV中,LNCS第6174卷,第306-320页。施普林格,2010年。
[14] E.De Angelis、F.Fioravanti、A.Pettorossi和M.Proietti。在没有归纳法的情况下解决归纳数据类型上的Horn子句。TPLP,18(3-4):452-4692018年·Zbl 1451.68172号
[15] W.-P.de Roever和K.Engelhardt。数据精炼:面向模型的证明方法及其比较。剑桥大学出版社,1998年·Zbl 0955.68076号
[16] E.W.迪克斯特拉。解决程序正确性问题的建设性方法。BIT数值数学,8(3):174-1861968·Zbl 0167.46002号
[17] G.Ernst、J.Pfähler、G.Schellhorn、D.Haneberg和W.Reif。KIV:概述和验证本次比赛。技术转让软件工具(STTT),17(6):677-6942015。
[18] G.Fedyukovich、A.Gurfinkel和N.Sharygina。程序间模拟的自动发现。在LPAR中,LNCS第9450卷,第606-621页。斯普林格,2015年·Zbl 1471.68061号
[19] G.Fedyukovich、S.Kaufman和R.Bodík。频率分布的采样不变量。在FMCAD中,第100-107页。IEEE,2017年·Zbl 1506.68054号
[20] G.Fedyukovich、S.Prabhu、K.Madhukar和A.Gupta。使用语法和数据解决约束Horn子句。在FMCAD中,第170-178页。IEEE,2018年。
[21] G.Fedyukovich、S.Prabhu、K.Madhukar和A.Gupta。通过语法指导合成的量化不变量。在CAV,第一部分,LNCS第11561卷,第259-277页。斯普林格,2019年。
[22] D.Felsing、S.Grebing、V.Klebanov、P.Rummer和M.Ulbrich。自动化回归验证。在ASE中,第349-360页。ACM,2014年。
[23] B.戈德林和O.斯特里曼。证明递归过程等价性的推理规则。信息学报,45(6):403-4392008·Zbl 1161.68013号
[24] A.Gurfinkel、T.Kahsai、A.Komuravelli和J.A.Navas。SeaHorn验证框架。在CAV中,LNCS第9206卷,第343-361页。斯普林格,2015年。
[25] J.He、C.A.R.Hoare和J.W.Sanders。数据精细化。在ESOP中,第187-196页。施普林格,1986年·Zbl 0587.68018号
[26] C.A.R.霍尔。统一的编程理论。在程序开发中的数学方法中,第313-367页。施普林格,1997年·Zbl 0884.68011号
[27] H.Hojjat和P.Rümmer。ELDARICA Horn解决方案。在FMCAD中,第158-164页。IEEE,2018年。
[28] J.P.Inala、N.Polikarpova、X.Qiu、B.S.Lerner和A.Solar-Lezama。从可重用模板合成递归ADT转换。在TACAS,第一部分,LNCS第10205卷,第247-263页,2017年·Zbl 1452.68050号
[29] C.B.琼斯。使用VDM的系统软件开发,第2卷。普伦蒂斯·霍尔-恩格伍德悬崖,1990年·Zbl 0743.68048号
[30] G.Klein、J.Andronick、K.Elphinstone、G.Heiser、D.Cock、P.Derrin、D.Elkaduwe、K.Engelhardt、R.Kolanski、M.Norrish、T.Sewell、H.Tuch和S.Winwood。seL4:操作系统内核的形式化验证。ACM通讯,53(6):107-1152010。
[31] E.Kneuss、I.Kuraj、V.Kuncak和P.Suter。合成模递归函数。在OOPSLA中,第407-426页,2013年。
[32] A.Komuravelli、A.Gurfinkel和S.Chaki。基于SMT的递归程序模型检查。在CAV中,LNCS第8559卷,第17-34页,2014年·兹比尔1358.68072
[33] L.Lamport。指定系统:用于硬件和软件工程师的\(TLA^+\)语言和工具。Addison-Wesley,2002年。
[34] K.R.M.Leino和A.Milicevic。Jennisys的程序外推。在OOPSLA中,第411-430页,2012年。
[35] X.勒罗伊。真实编译器的形式验证。ACM通讯,52(7):107-1152009。
[36] B.H.Liskov和J.M.Wing。子类型的行为概念。编程语言与系统学报,16(6):1811-18411994。
[37] R.Milner。程序间模拟的代数定义。在IJCAI中,第481-489页,1971年。
[38] A.Miltner、S.Padhi、T.Millstein和D.Walker。表示不变量的数据驱动推理。PLDI,第1-15页,2020年。
[39] D.Mordvinov和G.Fedyukovich。关系不变量的属性定向推理。在FMCAD中,第152-160页。IEEE,2019年。
[40] L.D.Moura和N.Björner。Z3:高效的SMT求解器。在TACAS中,LNCS第4963卷,第337-340页。施普林格,2008年。
[41] K.S.Namjoshi和L.D.Zuck。见证程序转换。在SAS中,LNCS第7935卷,第304-323页。施普林格,2013年。
[42] L.Nelson、H.Sigurbjarnarson、K.Zhang、D.Johnson、J.Bornholt、E.Torlak和X.Wang。超内核:操作系统内核的按键验证。在OSDI中,第252-269页,2017年。
[43] P.W.奥赫恩。持续推理:衡量形式化方法的影响。在LICS中,第13-25页。ACM,2018年·Zbl 1497.68082号
[44] L.Pick、G.Fedyukovich和A.Gupta。在关系验证中利用同步性和对称性。在CAV,第一部分,LNCS第10981卷,第164-182页。施普林格,2018年·Zbl 1511.68166号
[45] M.-L.Potet和Y.Rouzaud。B法中的成分和精炼。程序中。B会议,LNCS第1393卷,第46-65页。斯普林格,1998年。
[46] A.Reynolds、H.Barbosa、A.Nötzli、C.W.Barrett和C.Tinelli。cvc4sy:语法引导合成的智能快速术语枚举。在CAV,第二部分,LNCS第11562卷,第74-83页。斯普林格,2019年。
[47] A.Reynolds和V.Kuncak。SMT解算器感应。在VMCAI中,LNCS第8931卷,第80-98页。斯普林格,2015年·Zbl 1432.68418号
[48] G.Schellhorn、G.Ernst、J.Pfähler、D.Haneberg和W.Reif。开发经过验证的Flash文件系统。在ABZ,LNCS第8477卷,第9-24页。斯普林格,2014年。受邀论文。
[49] R.Sharma、E.Schkufza、B.R.Churchill和A.Aiken。数据驱动的等效性检查。在OOPSLA中,第391-406页。ACM,2013年。
[50] H.Sigurbjarnarson、J.Bornholt、E.Torlak和X.Wang。通过崩溃优化对文件系统进行按键验证。在OSDI中,2016年第1-16页。
[51] O.Strichman和M.Veitsman。不平衡递归函数的回归验证。在FM中,第645-658页。斯普林格,2016年·Zbl 1427.68055号
[52] P.Suter、M.Dotta和V.Kuncak。具有抽象的代数数据类型的决策过程。SIGPLAN通知,45(1):199-2102010·Zbl 1312.68147号
[53] H.Unno、S.Torii和H.Sakamoto。自动归纳法解决Horn子句。在CAV中,LNCS第10427卷,第571-591页。施普林格,2017年·Zbl 1494.68064号
[54] N.Wirth公司。通过逐步细化进行程序开发。ACM通讯,14(4):221-2271971·Zbl 0214.43005号
[55] W.Yang、G.Fedyukovich和A.Gupta。代数数据类型上自动归纳的引理合成。在CP中,LNCS第11802卷,第600-617页。斯普林格,2019年。
[56] A.Zaostrovnykh、S.Pirelli、R.Iyer、M.Rizzo、L.Pedrosa、K.Argyraki和G.Candea。在没有验证专业知识的情况下验证软件网络功能。OSDI,第275-290页,2019年。
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。