×

求解代数数据类型上的约束Horn子句。 (英语) Zbl 1529.68167号

Dragoi,Cezara(编辑)等人,《验证、模型检查和抽象解释》。第24届国际会议,VMCAI 2023,美国马萨诸塞州波士顿,2023年1月16-17日。诉讼程序。查姆:斯普林格。莱克特。注释计算。科学。13881, 341-365 (2023).
摘要:安全验证问题通常被简化为解决约束Horn子句(Constrained Horn Clause,CHC)的可满足性,CHC是一阶逻辑中包含未解释谓词的一组约束。谓词解释的综合,也称为归纳不变量综合,在存在代数数据类型(ADT)的情况下具有挑战性。归纳定义的ADT描述了可能无界的数据块,因此它们通常需要合成递归不变量。我们提出了一种解决此问题的新方法,基于功能合成:它试图从约束中提取递归函数,这些约束在CHC中编码的数据块上捕获无限计算的语义。递归函数调用是有益的,因为它们允许重写约束并引入等式,这些等式可以进一步简化。这在很大程度上简化了生成不变量的问题,并使它们具有在最高级别无递归且具有函数调用的简单解释。我们在一个名为AdtChc公司我们的算法依赖于外部自动定理证明器通过结构归纳进行证明,而不是使用黑盒约束求解器。有两个可选的解算器,Adt结束吸血鬼新工具集已经在一系列公共基准上进行了评估,在需要递归不变量的特定基准上,它与最先进的CHC求解器相比显示了其优势。
关于整个系列,请参见[Zbl 1517.68010号].

MSC公司:

60年第68季度 规范和验证(程序逻辑、模型检查等)
03B70号 计算机科学中的逻辑
68问题65 抽象数据类型;代数规范
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Alur,R.等人:句法引导合成。收录于:FMCAD,第1-17页。IEEE(2013)
[2] Bakhirkin,A。;Monniaux,D。;Ranzato,F.,结合对horn子句的正向和反向抽象解释,《静态分析》,23-45(2017),Cham:Springer,Cham·兹比尔1420.68062 ·doi:10.1007/978-3-319-66706-52
[3] 巴雷特,C。;Shikanian,I。;Tinelli,C.,归纳数据类型理论的抽象决策过程,J.可满足性,布尔模型。计算。,3, 21-46 (2007) ·Zbl 1129.68022号 ·doi:10.3233/SAT190028
[4] 巴雷特,C。;Gopalakrishnan,G。;Qadeer,S.,CVC4,计算机辅助验证,171-177(2011),海德堡:施普林格·doi:10.1007/978-3642-22110-14
[5] TA Beyene;波皮亚,C。;Rybalchenko,A。;北卡罗来纳州Sharygina。;Veith,H.,解决存在量化horn子句,计算机辅助验证,869-882(2013),海德堡:施普林格·doi:10.1007/978-3-642-39799-861
[6] 阿联酋布拉德利;贾拉(Jhala,R.)。;Schmidt,D.,基于SAT的无展开模型检查、验证、模型检查和抽象解释,70-87(2011),海德堡:施普林格·Zbl 1317.68109号 ·doi:10.1007/978-3642-18275-47
[7] 冠军,A。;千叶,T。;小林,N。;佐藤,R。;Beyer,D。;Huisman,M.,基于ICE的高阶函数程序精化类型发现,系统构建和分析的工具和算法,365-384(2018),Cham:Springer,Cham·Zbl 1468.68058号 ·数字对象标识代码:10.1007/978-3-319-89960-220
[8] 冠军,A。;小林,N。;佐藤,R。;Ryu,S.,HoIce:基于ICE的非线性喇叭子句求解器,《编程语言和系统》,146-156(2018),查姆:斯普林格,查姆·Zbl 1519.68045号 ·doi:10.1007/978-3-030-02768-18
[9] 陈,Y-F;谢长廷。;蔡,M-H;Wang,B-Y;Wang,F。;Müller Olm先生。;Seidl,H.,使用过程内分析器验证递归程序,静态分析,118-133(2014),Cham:Springer,Cham·doi:10.1007/978-3-319-10936-78
[10] 克拉克,E。;格伦伯格,O。;Jha,S。;卢,Y。;维思,H。;艾默生,EA;Sistla,AP,反例引导的抽象精化,计算机辅助验证,154-169(2000),海德堡:施普林格·Zbl 0974.68517号 ·doi:10.1007/10722167_15
[11] De Angelis,E。;Fioravanti,F。;佩托罗西,A。;Proietti,M.,《在没有归纳的情况下解决归纳数据类型的horn子句》,TPLP,18,3-4,452-469(2018)·Zbl 1451.68172号
[12] de Moura,L。;比约纳,N。;罗马克里希南,CR;Rehof,J.,Z3:高效SMT求解器,系统构建和分析的工具和算法,337-340(2008),海德堡:施普林格·doi:10.1007/978-3-540-78800-3_24
[13] Dietsch,D.,Heizmann,M.,Hoenicke,J.,Nutz,A.,Podelski,A.:终极树自动化。收录于:HCVS/PERR,EPTCS第296卷,第42-47页(2019年)·Zbl 1483.68243号
[14] Eén,n.,Mishchenko,A.,Brayton,R.K.:高效实现面向属性的可达性。收录于:FMCAD,第125-134页。IEEE(2011)
[15] Fedyukovich,G.,Ahmad,M.B.S.,Bodík,R.:单程阵列处理程序静态并行化的渐进综合。收录于:PLDI,第572-585页。ACM(2017)
[16] 费代科维奇,G。;Ernst,G.,递归证明中的桥接数组和ADT,系统构造和分析的工具和算法,24-42(2021),Cham:Springer,Cham·Zbl 1474.68048号 ·数字对象标识代码:10.1007/978-3-030-72013-1_2
[17] Garoche,P.,Gurfinkel,A.,Kahsai,T.:为同步代码合成模不变量。In:HCVS,EPTCS第169卷,第19-30页(2014)·Zbl 1464.68078号
[18] Garoche,P.Kahsai,T.,Thirioux,X.:作为模块喇叭子句的层次状态机。In:HCVS,EPTCS第219卷,第15-28页(2016)·Zbl 1482.68102号
[19] Grebenshchikov,S.,Lopes,N.P.,Popeea,C.,Rybalchenko,A.:根据证明规则合成软件验证器。收录于:PLDI,第405-416页。ACM(2012年)
[20] Gurfinkel,A。;Kahsai,T。;Komuravelli,A。;纳瓦斯,JA;Kroening,D。;Péséreau,CS,海角验证框架,计算机辅助验证,343-361(2015),Cham:Springer,Cham·文件编号:10.1007/978-3-319-21690-4_20
[21] 霍尔,CAR,递归数据结构,国际并行程序。,4, 2, 105-132 (1975) ·Zbl 0301.68037号
[22] 霍贾特,H。;科内钦,F。;Garnier,F。;Iosif,R。;昆卡,V。;吕默,P。;Giannakopoulou博士。;Méry,D.,《数值转换系统的验证工具包》,FM 2012:Formal Methods,247-251(2012),海德堡:施普林格·doi:10.1007/978-3642-32759-9_21
[23] Hojjat,H.,Rümmer,P.:通过约简确定和内插代数数据类型。摘自:SYNASC,第145-152页。IEEE(2017)
[24] Hojjat,H.,Rümmer,P.:ELDARICA号角求解器。收录于:FMCAD,第158-164页。IEEE(2018)
[25] 霍贾特,H。;吕默,P。;沙马基,A。;Lin,AW,《软件模型检查中的字符串》,《编程语言和系统》,19-30(2019),查姆:斯普林格,查姆·doi:10.1007/978-3-030-34175-6_2
[26] 爱尔兰,A。;A.邦迪。;Zhang,H.,《归纳证明中失败的生产性应用》,《自动数学归纳法》,79-111(1996),查姆:斯普林格,查姆·Zbl 0847.68103号 ·doi:10.1007/978-94-009-1675-3_3
[27] Hari Govind,V.K.,Shoham,S.,Gurfinkel,A.:求解模代数数据类型和递归函数的约束horn子句。程序。ACM计划。语言6(POPL),1-29(2022)
[28] Kafle,B.,Gallagher,J.P.,Ganty,P.:使用线性Horn子句求解器求解非线性Horn子句。In:HCVS,EPTCS第219卷,第33-48页(2016)·Zbl 1482.68141号
[29] 卡夫,B。;加拉赫,JP;莫拉莱斯,JF;南部乔杜里。;Farzan,A.,Rahft:使用抽象解释和有限树自动机验证horn子句的工具,计算机辅助验证,261-268(2016),Cham:Springer,Cham·数字对象标识代码:10.1007/978-3-319-41528-4_14
[30] Kahsai,T.,Kersten,R.,Rümmer,P.,Schäf,M.:面向对象程序的量化堆不变量。在:LPAR,EPiC计算系列第46卷,第368-384页。EasyChair(2017年)·Zbl 1403.68126号
[31] Kahsai,T。;吕默,P。;桑切斯,H。;Schäf,M。;南部乔杜里。;Farzan,A.,JayHorn:验证java程序的框架,《计算机辅助验证》,352-358(2016),Cham:Springer,Cham·文件编号:10.1007/978-3-319-41528-4_19
[32] Kim,J.,Hu,Q.,D'Antoni,L.,Reps,T.:语义引导合成。程序。ACM上的程序。兰格5(POPL),1-32(2021)
[33] Kobayashi,N.、Sato,R.、Unno,H.:谓词抽象和用于高阶模型检查的CEGAR。收录于:ACM,第222-233页。ACM(2011)
[34] Komuravelli,A。;Gurfinkel,A。;Chaki,S。;Biere,A。;Bloem,R.,基于SMT的递归程序模型检查,计算机辅助验证,17-34(2014),Cham:Springer,Cham·doi:10.1007/978-3-319-08867-9_2
[35] Kostyukov,Y.,Mordvinov,D.,Fedyukovich,G.:超越程序不变量在代数数据类型上的初等表示。收录于:PLDI,第451-465页(2021年)
[36] Kovács,L。;沃伦科夫,A。;北卡罗来纳州Sharygina。;Veith,H.,《一阶定理证明与吸血鬼》,计算机辅助验证,1-35(2013),海德堡:施普林格出版社·doi:10.1007/978-3-642-39799-8_1
[37] 维迪拉曼娜·克里希南,HG;陈,YT;Shoham,S。;Gurfinkel,A。;拉希里,斯洛伐克;Wang,C.,模型检查中局部泛化的全球指南,计算机辅助验证,101-125(2020),Cham:Springer,Cham·Zbl 1478.68167号 ·数字对象标识代码:10.1007/978-3-030-53291-87
[38] Krishnan,H.G.V.,Fedyukovich,G.,Gurfinkel,A.:单词级属性导向可达性。收录于:ICCAD,第1-9页。IEEE(2020)
[39] 松下,Y。;Tsukada,T。;小林,N.,RustHorn:CHC-based verification for rust programs,Programming Languages and Systems,484-514(2020),Cham:Springer,Cham·Zbl 1508.68071号 ·doi:10.1007/978-3-030-44914-8_18
[40] 吉隆坡麦克米兰;Biere,A。;Bloem,R.,《重访懒惰注释》,《计算机辅助验证》,243-259(2014),查姆:斯普林格,查姆·doi:10.1007/978-3-319-08867-9_16
[41] McMillan,K.L.,Rybalchenko,A.:使用插值求解约束Horn子句。在技术报告MSR-TR-2013-6(2013)中
[42] Mordvinov,D.,Fedyukovich,G.:同步约束horn子句。收录于:LPAR,EPiC计算机系列第46卷,第338-355页。EasyChair(2017年)·Zbl 1403.68243号
[43] Mordvinov,D.,Fedyukovich,G.:用玫瑰花结/未绑定验证功能程序的安全性。CoRR,abs/1704.04558(2017)。https://github.com/dvvrd/rosette网站
[44] Mordvinov,D.,Fedyukovich,G.:关系不变量的属性定向推理。收录于:FMCAD,第152-160页。IEEE(2019)
[45] Oppen,DC,递归定义数据结构的推理,J.ACM(JACM),27,3,403-411(1980)·Zbl 0477.68025号 ·doi:10.1145/322203.322204
[46] Pham,T。;Gacek,A。;Whalen,MW,关于抽象代数数据类型的推理,J.Autom。原因。,57, 4, 281-318 (2016) ·Zbl 1386.68104号 ·doi:10.1007/s10817-016-9368-2
[47] 雷诺兹,A。;Branchette,JC,SMT求解器中(co)数据类型的决策过程,J.Autom。原因。,58, 3, 341-362 (2017) ·Zbl 1410.68337号 ·doi:10.1007/s10817-016-9372-6
[48] 雷诺兹,A。;昆卡,V。;D’Souza博士。;Lal,A。;Larsen,KG,SMT求解器归纳、验证、模型检查和抽象解释,80-98(2015),海德堡:施普林格·Zbl 1432.68418号 ·doi:10.1007/978-3-662-46081-85
[49] 吕默,P。;Cervesato,I。;维思,H。;Voronkov,A.,《一阶逻辑约束序列演算与线性整数算法》,《程序设计、人工智能和推理逻辑》,274-289(2008),海德堡:斯普林格·Zbl 1182.03035号 ·doi:10.1007/978-3-540-89439-1_20
[50] Fedyukovich,G.,Rümmer,P.:竞争报告:CHC-COMP-21。In:Hojjat,H.,Kafle,B.(eds.)Proceedings 8th Workshorn Clause for Verification and Synthesis论文集,HCVS@ETAPS2021年,虚拟,2021年3月28日。EPTCS,第344卷,第91-108页(2021年)。doi:10.4204/EPTCS.344.7
[51] 吕默,P。;霍贾特,H。;昆卡,V。;北卡罗来纳州Sharygina。;Veith,H.,用于horn子句验证的虚拟插入词,计算机辅助验证,347-363(2013),海德堡:施普林格,海德堡·doi:10.1007/978-3-642-39799-8_24
[52] Satake,Y.,Unno,H.,Yanagi,H.:谓词约束满足的概率推理。收录于:AAAI,第1644-1651页。AAAI出版社(2020)
[53] 沙尔马,R。;艾肯,A。;Biere,A。;Bloem,R.,《使用随机搜索从不变检验到不变推理》,《计算机辅助验证》,88-105(2014),查姆:斯普林格,查姆·doi:10.1007/978-3-319-08867-96
[54] Solar-Lezama,A.、Tancau,L.、Bodík,R.、Seshia,S.A.、Saraswat,V.A.:有限程序的组合草图绘制。摘自:ASPLOS,第404-415页。ACM(2006)
[55] 苏特,P。;多塔,M。;Kuncak,V.,具有抽象的代数数据类型的决策过程,ACM Sigplan Not。,45, 1, 199-210 (2010) ·Zbl 1312.68147号 ·数字对象标识代码:10.1145/1707801.1706325
[56] 苏特,P。;科克萨尔,AS;昆卡,V。;Yahav,E.,可满足模递归程序,静态分析,298-315(2011),海德堡:施普林格·doi:10.1007/978-3-642-23702-7_23
[57] Unno,H。;Terauchi,T。;拜尔,C。;Tinelli,C.,《通过抽样推断无递归horn子句的简单解》,《系统构建和分析的工具和算法》,149-163(2015),海德堡:斯普林格·Zbl 1420.68077号 ·doi:10.1007/978-3-662-46681-0_10
[58] Unno,H。;托里,S。;坂本浩,H。;马朱姆达尔,R。;Kunčak,V.,《自动归纳法求解horn子句》,计算机辅助验证,571-591(2017),查姆:Springer,查姆·兹比尔1494.68064 ·数字对象标识代码:10.1007/978-3-319-63390-9_30
[59] 杨伟(Yang,W.)。;Fedyukovich,G。;古普塔,A。;Schiex,T。;de Givry,S.,代数数据类型自动归纳的引理合成,约束编程的原理与实践,600-617(2019),Cham:Springer,Cham·doi:10.1007/978-3-030-30048-7_35
[60] 张,T。;Sipma,HB;Manna,Z。;盆地,D。;Rusinovitch,M.,《带整数约束的递归数据结构的决策程序》,《自动推理》,152-167(2004),海德堡:斯普林格出版社·兹比尔1126.68585 ·doi:10.1007/978-3-540-25984-8_9
[61] Zhu,H.,Magill,S.,Jagannathan,S.:数据驱动CHC求解器。收录于:PLDI,第707-721页。ACM(2018)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。