伊曼纽尔·德·安吉利斯;法比奥·菲奥拉万蒂;阿尔贝托·佩特罗西;毛里齐奥·普罗埃蒂 从Horn子句验证条件中删除不必要的变量。 (英语) Zbl 1482.68136号 Gallagher,John P.(编辑)等人,《验证和合成Horn条款第三次研讨会论文集》,HCVS 2016,荷兰埃因霍温,2016年4月3日。滑铁卢:开放出版协会(OPA)。电子。程序。西奥。计算。科学。(EPTCS)21949-55(2016)。 摘要:验证条件是逻辑公式,其可满足性保证了程序的正确性。我们考虑以约束Horn子句(CHC)形式存在的VC,这些子句是由编程语言的操作语义的编码(解释器)自动生成的。VC是通过基于展开/折叠转换规则的程序专门化派生出来的,正如专门化口译员时经常发生的那样,它们包含不必要的变量,即验证程序的正确性证明不需要的变量。在本文中,我们适应了CHC设置,开发了一些技术来从逻辑程序中删除不必要的变量,并表明,在某些情况下,这些技术的应用提高了Horn子句求解器在证明程序正确性时的有效性。关于整个系列,请参见[Zbl 1441.68009号]. MSC公司: 第68季度第60季度 规范和验证(程序逻辑、模型检查等) 03B70号 计算机科学中的逻辑 软件:VeriMAP公司;SeaHorn公司;z3(零3) PDF格式BibTeX公司 XML格式引用 \textit{E.De Angelis}等人,《电子》。程序。西奥。计算。科学。(EPTCS)219,49-55(2016;Zbl 1482.68136) 全文: arXiv公司 链接 参考文献: [1] E.Albert、M.Gómez-Zamalloa、L.Hubert和G.Puebla(2007):使用逻辑程序的分析和转换验证Java字节码。M.Hanus主编:《声明语言的实用方面》,《计算机科学讲义》4354,Springer,第124-139页,doi:10.1007/978-3-540-69611-7 8·doi:10.1007/978-3-540-69611-7-8 [2] E.De Angelis、F.Fioravanti、A.Pettorosi和M.Proietti(2014):通过迭代特殊化进行程序验证。《计算机编程科学》95,第2部分,第149-175页,doi:10.1016/j.scico.2014.05.017·doi:10.1016/j.scico.2014.05.017 [3] E.De Angelis、F.Fioravanti、A.Pettorossi和M.Proietti(2014):VeriMAP:通过转换验证程序的工具。摘自:《第20届国际系统构造与分析工具与算法会议论文集》,TACAS’14,计算机科学讲稿8413,Springer,第568-574页,doi:10.1007/978-3642-54862-8 47。网址:http://www.map.uniroma2.it/VeriMAP。 ·doi:10.1007/978-3-642-54862-847 [4] E.De Angelis、F.Fioravanti、A.Pettorossi和M.Proietti(2015):通过程序专业化基于语义的验证条件生成。2015年7月14日至16日,意大利锡耶纳,第17届国际声明性编程原则与实践研讨会论文集,ACM,第91-102页,doi:10.1145/2790449.2790529·doi:10.1145/2790449.2790529 [5] S.Etalle和M.Gabbrielli(1996):CLP模块的转换。理论计算机科学166,第101-146页,doi:10.1016/0304-3975(95)00148-4·Zbl 0872.68021号 ·doi:10.1016/0304-3975(95)00148-4 [6] J.P.Gallagher和B.Kafle(2014):约束Horn子句验证的分析和转换工具。逻辑程序设计理论与实践14(4-5),第90-101页。补充材料。 [7] A.Gurfinkel、T.Kahsai、A.Komuravelli和J.A.Navas(2015):《SeaHorn验证框架》。摘自:《计算机辅助验证:第27届国际会议》,2015年7月18日至24日,美国加利福尼亚州旧金山,2015年,斯普林格出版社,第343-361页,doi:10.1007/978-3319-21690-420·数字对象标识代码:10.1007/978-3-319-21690-4-20 [8] K.S.Henriksen和J.P.Gallagher(2006):通过逻辑编程对PIC程序进行抽象解释。摘自:第六届IEEE源代码分析和操作国际研讨会论文集,SCAM’06,第103-179页,doi:10.1109/SCAM.2006.1·doi:10.1109/SCAM.2006.1 [9] M.Leuschel和M.H.Sörensen(1996):逻辑程序的冗余参数过滤。J.Gallagher主编:《逻辑程序合成与转换》,《1996年LOPSTR会议录》,瑞典斯德哥尔摩,《计算机科学学报1207》,Springer-Verlag,第83-103页,doi:10.1007/3-540-62718-9 6·doi:10.1007/3-540-62718-96 [10] L.M.de Moura和N.Björner(2008):Z3:高效SMT求解器。摘自:《第十四届国际系统构造与分析工具与算法会议论文集》,TACAS’08,计算机科学讲义4963,Springer,第337-340页,doi:10.1007/978-3-540-78800-3 24·doi:10.1007/978-3-540-78800-3_24 [11] J.C.Peralta、J.P.Gallagher和H.Saglam(1998):通过约束逻辑程序分析命令程序。编者:G.Levi,《第五届国际静态分析交响曲会议录》,SAS’98,《1503年计算机科学讲义》,Springer,第246-261页,doi:10.1007/3-540-49727-7 15·doi:10.1007/3-540-49727-7_15 [12] M.Proietti和A.Pettorosi(1995):展开定义——按此顺序折叠,以避免逻辑程序中不必要的变量。理论计算机科学142(1),第89-124页,doi:10.1016/0304-3975(94)00227-A·兹伯利0873.68023 ·doi:10.1016/0304-3975(94)00227-A 此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。