×

CPBPV:用于有界程序验证的约束编程框架。 (英语) Zbl 1213.68173号

摘要:本文研究了如何验证程序与其规范的一致性,并提出了一种新的有界程序验证约束编程框架(CPBPV)。CPBPV框架使用约束存储来表示规范和程序,并以非确定性的方式探索有界长度的执行路径。CPBPV框架检测非一致性,并在存在有界长度的路径驳斥某些属性时提供反例。如果这样生成的每个约束存储都暗示了后置条件,则输入程序在有界限制下是部分正确的。CPBPV不探索虚假的执行路径,因为它通过检测约束存储不一致来提前增量地修剪执行路径。CPBPV使用约束编程的丰富语言来表示约束存储。最后,CPBPV由一系列按顺序尝试的解算器进行参数化,从最便宜和不太通用的开始。实验结果通常比以前的方法提高了几个数量级,运行时间通常与可变域的大小无关。此外,CPBPV能够检测到一些程序中的细微错误,而其他基于有界模型检查的框架已经失败。

MSC公司:

68N17号 逻辑编程
第68页第19页 其他编程范式(面向对象、顺序、并发、自动等)
60年第68季度 规范和验证(程序逻辑、模型检查等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部 哈尔

参考文献:

[1] 阿伊特·卡奇,H.、伯斯特尔,B.、容克,U.、勒康特,M.、波德尔斯基,A.(2007)。满足性模结构作为约束满足:简介。JFLA 2007程序。
[2] Albert,E.、Gómez Zamaloa,M.和Puebla,G.(2008年)。通过CLP部分求值测试字节码的数据生成。程序中。LOPSTR 2008(第4–23页)·Zbl 1185.68146号
[3] Armando,A.、Benerecetti,M.和Mantovani,J.(2007)。带数组的线性程序的抽象精化。程序中。TACAS 2007(第373–388页)·Zbl 1186.68275号
[4] Armando,A.、Mantovani,J.和Platania,L.(2006)。使用SMT解算器而不是SAT解算器对软件进行有界模型检查。程序中。第146-162页)·Zbl 1178.68148号
[5] Ball,T.、Podelski,A.和Rajamani,S.K.(2001)。用于模型检查C程序的布尔和笛卡尔抽象。程序中。TACAS 2001(第268–283页)·Zbl 0978.68540号
[6] Ball,T.和Rajamani,S.K.(2000年)。Bebop:布尔程序的符号模型检查器。程序中。SPIN 2000(第113–130页)·Zbl 0976.68540号
[7] Barthe,G.、Burdy,L.、Huisman,M.、Lanet,J.-L.和Muntean,T.(2005)。安全、可靠和可互操作智能设备的构造和分析。程序中。2004年3月,法国马赛,CASSIS 2004国际研讨会。修订了选定的论文。LNCS(第3362卷,第108–128页)。纽约:斯普林格。
[8] Beyer,D.、Henzinger,T.A.、Jhala,R.和Majumdar,R.(2007年)。软件模型检查器BLAST:软件应用程序。STTT(技术转让软件工具杂志),9(5-6),505-525·Zbl 05536156号 ·doi:10.1007/s10009-007-0044-z
[9] Botella,B.、Gotlieb,A.和Michel,C.(2006年)。浮点计算的符号执行。软件测试、验证和可靠性,16(2),97–121·Zbl 05446654号 ·doi:10.1002/svr.333
[10] Burdy,L.、Cheon,Y.、Cok,D.R.、Ernst,M.D.、Kiniry,J.R.、Leavens,G.T.等人(2005年)。JML工具和应用程序概述。国际技术转让软件工具期刊,7(3),212–232·doi:10.1007/s10009-004-0167-4
[11] Clarke,E.M.、Biere,A.、Raimi,R.和Zhu,Y.(2001)。使用可满足性求解进行有界模型检查。系统设计中的形式方法,19(1),7-34·Zbl 0985.68038号 ·doi:10.1023/A:1011276507260
[12] Clarke,E.M.、Kroening,D.和Lerda,F.(2004)。用于检查ANSI-C程序的工具。程序中。2004年TACAS(第168–176页)·Zbl 1126.68470号
[13] Clarke,E.M.、Kroening,D.、Sharygina,N.和Yorav,K.(2004)。使用SAT的ANSI-C程序谓词抽象。系统设计中的形式化方法,25(2-3),105–127·Zbl 1090.68022号 ·doi:10.1023/B:FORM.0000040025.89719.f3
[14] Clarke,E.M.、Kroening,D.、Sharygina,N.和Yorav,K.(2005)。SATABS:基于SAT的ANSI-C谓词抽象。TACAS 2005(第570-574页)·Zbl 1087.68586号
[15] Clarke,E.M.、Kroening,D.和Yorav,K.(2003)。使用有界模型检查的C和verilog程序的行为一致性。程序中。2003年发援会(第368–371页)。
[16] Collavizza,H.和Rueher,M.(2006年)。探索软件验证的约束编程能力。程序中。TACAS 2006(第182-196页)·Zbl 1180.68111号
[17] Collavizza,H.和Rueher,M.(2007)。探索用于程序验证的不同基于约束的模型。程序中。CP 2007(第49-63页)。
[18] Collavizza,H.、Rueher,M.和Van Hentenryck,P.(2008)。CPBPV、ESC/Java、CBMC、Blast、EUREKA和Why for bounded program verification CoRR.abs/0808.1508之间的比较·Zbl 1213.68173号
[19] Cytron,R.、Ferrante,J.、Rosen,B.K.、Wegman,M.N.、Zadeck,F.K.(1991)。高效计算静态单赋值表和控制依赖图。美国计算机学会程序设计语言与系统汇刊,13(4),451-490·数字对象标识代码:10.1145/115372.115320
[20] D’Silva,V.、Kroening,D.和Weissenbacher,G.(2008)。正式软件验证自动化技术综述。IEEE集成电路和系统CAD汇刊,27(7),1165–1178·Zbl 05515990号 ·doi:10.10109/TCAD.2008.923410
[21] Delzanno,G.和Podelski,A.(1999)。CLP中的模型检查。程序中。TACAS 1999(第223-239页)·Zbl 0947.68028号
[22] Dutertre,B.和de Moura,L.M.(2006年)。DPLL(T)的快速线性算法求解器。程序中。CAV 2006(第81–94页)。
[23] Filliátre,J.-C.和Marché,C.(2007年)。用于演绎程序验证的Why/Krakatoa/Caduceus平台。程序中。CAV 2007(第173-177页)。
[24] Flanagan,C.(2004)。通过约束逻辑自动检查软件模型。计算机程序设计科学,50(1-3),253-270·Zbl 1091.68071号 ·doi:10.1016/j.scico.2004.01.006
[25] Ganzinger,H.、Hagen,G.、Nieuwenhuis,R.、Oliveras,A.和Tinelli,C.(2004)。DPLL(T):快速决策程序。程序中。CAV 2004(第175-188页)·Zbl 1103.68616号
[26] Godefroid,P.、Levin,M.Y.和Molnar,D.A.(2008年)。自动白盒模糊测试。在2008年NDSS(网络和分布式系统安全研讨会)上。
[27] Gotlieb,A.、Bernard,B.和Rueher,M.(1998年)。使用约束求解技术自动生成测试数据。程序中。ISSTA 1998(第53-62页)。
[28] Ivancic,F.、Yang,Z.、Ganai,M.、Gupta,A.和Ashar,P.(2008)。用于软件验证的高效SAT有界模型检查。理论计算机科学,404(3),256-274·Zbl 1293.68079号 ·doi:10.1016/j.tcs.2008.03.013
[29] Jackson,D.和Vaziri,M.(2000年)。使用约束解算器查找错误。程序中。ISSTA 2000(第14-25页)。
[30] Khurshid,S.、Pasareanu,C.S.和Visser,W.(2003)。用于模型检查和测试的广义符号执行。程序中。TACAS 2003(第553-568页)·Zbl 1031.68519号
[31] Nieuwenhuis,R.、Oliveras,A.、Rodríguez-Carbonell,E.和Rubio,A.(2007年)。可满足性模理论的挑战。RTA 2007(第2-18页)·Zbl 1203.68189号
[32] Pasareanu,C.S.和Visser,W.(2004)。使用符号执行和不变量生成验证Java程序。SPIN 2004(第164-181页)·Zbl 1125.68367号
[33] Régin,J.-C.(1994)。CSP中差异约束的过滤算法。AAAI 1994(第362-367页)。
[34] Sy,N.T.和Deville,Y.(2001年)。带有整数和浮点变量的程序的自动测试数据生成。ASE 2001(第13-21页)。
[35] Van Hentenryck,P.(1989年)。逻辑编程中的约束满足。剑桥:麻省理工学院·Zbl 0707.68101号
[36] Van Hentenryck,P.、Michel,L.和Deville,Y.(1997年)。Numerica:用于全局优化的建模语言。剑桥:麻省理工学院。
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。