×

用于程序验证的Horn子句求解器。 (英语) Zbl 1465.68044号

Beklemishev,Lev D.(编辑)等人,《逻辑与计算领域II》。在尤里·古雷维奇75岁生日之际为他撰写的论文。查姆:斯普林格。莱克特。注释计算。科学。9300, 24-51 (2015).
概要:自动程序验证和符号模型检查工具与检查公式可满足性的定理证明技术相结合。本文作者过去几年的主题是将符号模型问题直接编码为Horn子句,并开发专门的Horn子句求解器。我们的解算器被称为Duality、HSF、SeaHorn和\(mu{Z}\),在最近的论文中,我们对求解Horn子句的算法给予了相当大的关注。本文对这些进展进行了补充,总结了Horn子句的主要有用属性,说明了过程程序验证对Horn子句进行编码的过程,然后强调了Horn语句级别的一些有用的简化策略。解决Horn子句相当于建立存在正定点逻辑公式,这是Blass和Gurevich提出的一个观点。
关于整个系列,请参见[兹比尔1321.03008].

MSC公司:

68号30 软件工程的数学方面(规范、验证、度量、需求等)
03B70号 计算机科学中的逻辑
60年第68季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Alberti,F。;吉拉尔迪,S。;北卡罗来纳州Sharygina。;卡塞兹,F。;Raskin,J-F,《Booster:阵列程序基于加速的验证框架》,《验证与分析自动化技术》,18-23(2014),海德堡:斯普林格出版社·Zbl 1448.68284号
[2] Apt,K.R.:逻辑编程。收录于:《理论计算机科学手册》,B卷:形式模型和符号学(B),第493-574页。爱思唯尔(1990)·Zbl 0900.68136号
[3] Ball,T.、Rajamani,S.K.:Bebop:一个路径敏感的过程间数据流引擎。收录于:2001年ACM SIGPLAN-SIGSOFT软件工具和工程程序分析研讨会论文集,PASTE 2001,Snowbird,犹他州,2001年6月18日至19日,第97-103页(2001)
[4] 巴内特,M。;Chang,B-YE;DeLine,R。;雅各布斯,B。;M.Leino,韩国;de Boer,FS公司;Bonsangue,MM;格拉芙,S。;de Roever,W-P,Boogie:面向对象程序的模块化可重用验证器,组件和对象的形式化方法,364-387(2006),海德堡:斯普林格·doi:10.1007/11804192_17
[5] Barnett,M.,Leino,K.R.M.:非结构化程序的弱前置条件。摘自:PASTE,第82-87页(2005年)
[6] Barrett,C.、Stump,A.、Tinelli,C.:可满足性模理论库(SMT-LIB)(2010年)。网址:www.SMT-LIB.org
[7] Barvinok,A.I.:当维数固定时,用于计算多面体积分点的多项式时间算法。摘自:第34届计算机科学基础年度研讨会,1993年11月3日至5日,美国加利福尼亚州帕洛阿尔托,第566-572页(1993)
[8] Berdine,J。;比约纳,N。;Ishtiaq,S。;Kriener,JE;Wintersteiger,CM;McMillan,K。;Middeldorp,A.公司。;Voronkov,A.,《作为HORN-LA的资源可达性》,《程序设计、人工智能和推理的逻辑》,137-146(2013),海德堡:斯普林格·兹比尔1406.68049 ·doi:10.1007/978-3-642-45221-5_10
[9] Beyene,T.A.,Chaudhuri,S.,Popeea,C.,Rybalchenko,A.:求解无限图上游戏的基于约束的方法。收录于:POPL,第221-234页(2014年)·Zbl 1284.91009号
[10] Beyer,D.,Cimatti,A.,Griggio,A.,Erkan Keremoglu,M.,Sebastiani,R.:通过大块编码进行软件模型检查。收录于:FMCAD,第25-32页(2009年)
[11] 比约纳,N。;Gurfinkel,A。;D’Souza,D。;Lal,A。;Larsen,KG,《属性定向多面体抽象、验证、模型检查和抽象解释》,263-281(2015),海德堡:施普林格·Zbl 1432.68257号
[12] Björner,N.,McMillan,K.L.,Rybalchenko,A.:作为可满足性模理论的程序验证。In:SMT at IJCAR,第3-11页(2012)
[13] Björner,N.,McMillan,K.L.,Rybalchenko,A.:作为代数数据类型可满足性模理论的高阶程序验证。CoRR,abs/1306.5264(2013)
[14] 比约纳,N。;McMillan,K。;赖巴尔琴科,A。;洛戈佐,F。;Fähndrich,M.,《关于解决普遍量化的horn子句》,《静态分析》,105-125(2013),海德堡:施普林格出版社·doi:10.1007/978-3-642-38856-98
[15] 布拉斯,A。;古雷维奇,Y。;Börger,E.,存在不动点逻辑,计算理论与逻辑,20-36(1987),海德堡:施普林格,海德伯格·Zbl 0647.03018号 ·doi:10.1007/3-540-18170-9_151
[16] 布拉斯,A。;Gurevich,Y.,可计算循环不变量的不足,ACM Trans。计算。日志。,2, 1, 1-11 (2001) ·Zbl 1365.68315号 ·doi:10.1145/371282.371285
[17] 阿联酋布拉德利;Jhala,R。;Schmidt,D.,基于SAT的无展开模型检查、验证、模型检查和抽象解释,70-87(2011),海德堡:施普林格·Zbl 1317.68109号 ·doi:10.1007/978-3642-18275-47
[18] 布尔斯托尔,RM;Darlington,J.,开发递归程序的转换系统,JACM,24,44-67(1977)·Zbl 0343.68014号 ·数字对象标识代码:10.1145/321992.321996
[19] Ceri,S。;Gottlob,G。;Tanca,L.,《逻辑编程与数据库》(1990),海德堡:施普林格出版社·doi:10.1007/978-3-642-83952-8
[20] EM Clarke,《不可能获得好的hoare公理系统的编程语言构造》,J.ACM,26,1,129-147(1979)·Zbl 0388.68008号 ·doi:10.1145/322108.322121
[21] 库克,SA,程序验证公理系统的健全性和完整性,SIAM J.Compute。,7, 1, 70-90 (1978) ·Zbl 0374.68009号 ·数字对象标识代码:10.1137/0207005
[22] 克雷格,W.,《赫尔布兰德-根岑定理在关联模型理论和证明理论中的三个应用》,J.Symb。日志。,22, 3, 269-285 (1957) ·Zbl 0079.24502号 ·doi:10.2307/2963594
[23] De Angelis,E。;Fioravanti,F。;Pettorossi,A。;Proietti,M.,通过迭代专门化进行程序验证,科学。计算。程序。,95149-175(2014)·doi:10.1016/j.scico.2014.05.017
[24] De Angelis,E。;Fioravanti,F。;Pettorossi,A。;Proietti,M。;E·阿尔布拉哈姆。;Havelund,K.,VeriMAP:通过转换验证程序的工具,《系统构建和分析的工具和算法》,568-574(2014),海德堡:斯普林格·doi:10.1007/978-3-642-54862-847
[25] Dellund,P。;Jansana,R.,《无等式无限通用喇叭逻辑的一些特征定理》,J.Symb。日志。,61, 4, 1242-1260 (1996) ·Zbl 0871.03029号 ·doi:10.2307/2275814
[26] Dijkstra,EW,编程学科(1976),新泽西州:普伦蒂斯·霍尔,新泽西·Zbl 0368.68005号
[27] Fietzke,A。;Weidenbach,C.,《叠加作为时间自动机的决策过程》,数学。计算。科学。,6, 4, 409-425 (2012) ·Zbl 1262.68159号 ·doi:10.1007/s11786-012-0134-5
[28] Flanagan,C.,Leino,K.R.M.,Lillibridge,M.,Nelson,G.,Saxe,J.B.,Stata,R.:java的扩展静态检查。收录于:PLDI,第234-245页(2002年)
[29] 弗洛伊德·R.W.:赋予程序意义。摘自:《应用数学研讨会论文集》,第19卷,第19-32页。美国数学。Soc.(1967年)·Zbl 0189.50204号
[30] Gallagher,J.P.,Kafle,B.:用于约束horn子句验证的分析和转换工具。CoRR,abs/1405.3883(2014)·Zbl 1464.68208号
[31] 德语,SM;EM克拉克;Halpern,JY,L4语言中程序作为参数的推理,Inf.Compute。,83, 3, 265-359 (1989) ·Zbl 0692.68011号 ·doi:10.1016/0890-5401(89)90040-0
[32] Grebenshchikov,S.,Lopes,N.P.,Popeea,C.,Rybalchenko,A.:根据证明规则合成软件验证器。输入:PLDI(2012)
[33] Gurfinkel,A。;Chaki,S。;萨普拉,S。;博巴鲁,M。;Havelund,K。;GJ霍尔兹曼;Joshi,R.,《程序摘要的有效谓词抽象》,美国航空航天局形式方法,131-145(2011),海德堡:施普林格,海德堡·doi:10.1007/978-3-642-20398-5_11
[34] Gurfinkel,A。;Kahsai,T。;Komuravelli,A。;纳瓦斯,JA;Kroening,D。;Péséreanu,CS,海角验证框架,计算机辅助验证,343-361(2015),海德堡:施普林格·数字对象标识代码:10.1007/978-3-319-21690-4-20
[35] Gurfinkel,A。;O.魏。;Chechik,M。;Cha、SS;Choi,J-Y;Kim,M。;李,I。;Viswanathan,M.,具有精确谓词抽象的模型检查递归程序,验证和分析自动化技术,95-110(2008),海德堡:施普林格·Zbl 1183.68373号 ·doi:10.1007/978-3-540-88387-6_9
[36] 赫尔梅内吉尔多,MV;布埃诺,F。;卡罗,M。;Lopez-Garcia,P。;梅拉,E。;莫拉莱斯,JF;Puebla,G.,《ciao及其设计理念概述》,TPLP,12,1-2,219-252(2012)·Zbl 1244.68019号
[37] 计算机编程的公理基础,Commun。ACM,第12、10、576-580页(1969年)·Zbl 0179.23105号 ·doi:10.1145/363235.363259
[38] 霍德,K。;比约纳,N。;Cimatti,A。;Sebastiani,R.,《广义属性导向可达性,可满足性测试的理论与应用——SAT 2012,157-171(2012)》,海德堡:斯普林格·Zbl 1273.68229号 ·文件编号:10.1007/978-3-642-31612-8_13
[39] 霍贾特,H。;Iosif,R。;科内钦,F。;昆卡,V。;吕默,P。;Chakraborty,S。;Mukund,M.,《加速插值,验证和分析自动化技术》,187-202(2012),海德堡:斯普林格·Zbl 1374.68291号 ·doi:10.1007/978-3-642-33386-6_16
[40] Horn,A.,《关于代数直接并成立的句子》,J.Symb。日志。,16, 1, 14-21 (1951) ·Zbl 0043.24801号 ·doi:10.2307/2268661
[41] Jaffar,J.等人。;戴维斯,J。;舒尔特,W。;Barnett,M.,建模系统的CLP方法,形式方法和软件工程,14(2004),海德堡:施普林格·doi:10.1007/978-3-540-30482-19
[42] Jaffar,J。;Maher,MJ,《约束逻辑编程:调查》,J.Log。程序。,19, 20, 503-581 (1994) ·Zbl 0900.68127号 ·doi:10.1016/0743-1066(94)90033-7
[43] Jaffar,J。;Santosa,AE;沃伊库·R。;Gent,IP,CLP遍历的插值方法,约束编程的原理和实践-CP 2009,454-469(2009),海德堡:斯普林格·doi:10.1007/978-3-642-04244-7_37
[44] 贾拉(Jhala,R.)。;马朱姆达尔,R。;Rybalchenko,A。;Gopalakrishnan,G。;Qadeer,S.,HMC:使用抽象解释器验证功能程序,计算机辅助验证,470-485(2011),海德堡:施普林格·doi:10.1007/978-3642-22110-1_38
[45] 琼斯,ND;戈马德,CK;Sestoft,P.,《部分评估和自动程序生成》(1993),恩格伍德悬崖:普伦蒂斯霍尔,恩格尔伍德悬崖·Zbl 0875.68290号
[46] Kafle,B.,Gallagher,J.P.:horn子句验证中的约束专业化。摘自:PEPM,第85-90页(2015年)
[47] Karbyshev,A.、Björner,N.、Itzhaky,S.、Rinetzky,N.和Shoham,S.:普适不变量的属性定向推理或证明其缺失(2015)·兹比尔1381.68169
[48] Komuravelli,A。;Gurfinkel,A。;Chaki,S。;Biere,A。;Bloem,R.,基于SMT的递归程序模型检查,计算机辅助验证,17-34(2014),海德堡:施普林格
[49] Lal,A.,Qadeer,S.:用于更快的目标导向搜索的程序转换。收录于:《计算机辅助设计的形式方法》,FMCAD 2014,瑞士洛桑,2014年10月21日至24日,第147-154页(2014)
[50] Rustan,K。;Leino,M.,《效率最弱的前提条件》,《Inf.过程》。莱特。,93, 6, 281-288 (2005) ·Zbl 1173.68563号 ·doi:10.1016/j.ipl.2004.10.015
[51] Lopes,N.P.、Björner,N.、Godefroid,P.、Jayaraman,K.、Varghese,G.:检查动态网络中的信念。致:NSDI,2015年5月
[52] Manna,Z。;Pnueli,A.,《反应系统的时间验证:安全》(1995),柏林:施普林格,柏林·Zbl 1288.68169号 ·doi:10.1007/978-1-4612-4222-2
[53] 麦卡锡,J.:走向计算的数学科学。摘自:IFIP大会,第21-28页(1962年)
[54] 吉隆坡麦克米兰;Biere,A。;Bloem,R.,《重新审视懒惰注释》,《计算机辅助验证》,243-259(2014),海德堡:斯普林格
[55] Oppen,DC,《复杂性、凸性和理论组合》,Theor。计算。科学。,12, 291-302 (1980) ·Zbl 0437.03007号 ·doi:10.1016/0304-3975(80)90059-6
[56] 纳瓦罗·佩雷斯,JA;Rybalchenko,A。;Shan,C.,《分离逻辑模理论,编程语言和系统》,90-106(2013),海德堡:斯普林格出版社·Zbl 1426.68058号 ·doi:10.1007/978-3-319-03542-0-7
[57] Pettorossi,A.,Proietti,M.:使用展开/折叠证明的逻辑程序的合成和转换。技术报告457,罗马托尔加塔大学(1997年)·Zbl 0944.68024号
[58] Pudl’ak,P.,《分辨率和切面证明与单调计算的下限》,《符号逻辑》,62,3,981-998(1995)·Zbl 0945.03086号 ·doi:10.2307/2275583
[59] Ramsay,S.J.,Neatherway,R.P.,Luke Ong,C.-H.:一种用于高阶模型检查的类型定向抽象细化方法。收录于:POPL,第61-72页(2014年)·Zbl 1284.68414号
[60] Reps,T.W.,Horwitz,S.,Sagiv,S.:通过图形可达性进行精确的过程间数据流分析。收录于:POPL,第49-61页(1995年)·Zbl 1496.68079号
[61] 宾夕法尼亚州雷维斯;MJ Maher;Puget,J-F,带线性约束的安全数据日志查询,约束编程的原理和实践-CP98,355-369(1998),海德堡:斯普林格·doi:10.1007/3-540-49481-226
[62] Rondon,P.M.、Kawaguchi,M.、Jhala,R.:液体类型。收录于:PLDI,第159-169页(2008年)·Zbl 1312.68033号
[63] 吕默,P。;霍贾特,H。;昆卡,V。;北卡罗来纳州Sharygina。;Veith,H.,用于角子句验证的析取插值,计算机辅助验证,347-363(2013),海德堡:Springer,Heidelberg·doi:10.1007/978-3-642-39799-8_24
[64] 希兰,M。;辛格,S。;斯特马尔克,G。;约翰逊,SD;WA Jr Hunt,《使用归纳法和SAT解析器检查安全特性》,《计算机辅助设计中的形式化方法》,108-125(2000),海德堡:斯普林格·doi:10.1007/3-540-40922-X_8
[65] Tamaki,H.、Sato,T.:逻辑程序的展开/折叠转换。摘自:第二届逻辑程序设计国际会议记录(1984年)
[66] VF Turchin,《超级编译器的概念》,ACM TOPLAS,8,3,292-325(1986)·Zbl 0598.68016号 ·doi:10.1145/5956.5957
[67] van Emden,MH;Kowalski,RA,谓词逻辑作为编程语言的语义,J.ACM,23,4,733-742(1976)·Zbl 0339.68004号 ·doi:10.145/321978.321991
[68] 沃伦,DS,逻辑程序备忘录,Commun。ACM,35,3,93-111(1992)·数字对象标识代码:10.1145/131295.131299
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。