广告

VIPER:一种基于权限推理的验证基础结构

  • 彼得米勒电子邮件作者
  • 马尔特施瓦霍夫
  • 亚力山大·J·萨默斯
会议论文
部分计算机科学讲义图书系列(LNCS,第9583卷)

摘要

基于一阶逻辑规范的验证技术的自动化极大地得益于BooGee等验证基础设施以及为什么。这些提供了一种中间语言,可以表达不同的语言特征和验证技术,以及后端工具:特别是验证条件生成器。

然而,这些基础结构不太适合基于分离逻辑和其他许可逻辑的验证技术,因为它们不提供对权限的直接支持,并且因为这些逻辑的现有工具通常赞成验证条件生成上的符号执行。因此,这些逻辑的工具支持(通常是可用的)通常是针对每种技术独立开发的,极大地增加了开发基于许可的验证的自动化工具的负担。

在本文中,我们提出了一个验证基础设施的中间语言支持表达性权限模型本身。我们提供工具支持,包括两个后端验证器:一个基于符号执行,一个验证条件生成;基于抽象解释的推理工具目前正在开发中。广泛的现有验证技术可以通过该基础设施来实现,减轻了构建基于权限的验证者的大部分负担,并允许高级推理技术的开发者将其精力集中在适当的抽象级别。

笔记

致谢

这项工作部分由瑞士国家科学基金会和哈斯勒基金会资助。蝰蛇从许多人的工作中受益匪浅。我们特别感谢Uri Juhasz对蝰蛇语言的设计的贡献,Ioannis Kassios对量化许可和初始圣杯前端的工作,以及Vytautas Astrauskas对后者的改进。我们也感谢Milos Novacek在规范推理方面的工作,以及Stefan Heule对验证条件生成器的初步开发。我们热烈感谢Stefan Blom对维伯的广泛反馈和他使用ViCORS的帮助,以及Marco Eilers对我们实验评估的帮助。

推荐信

  1. 1。
    巴内特,M,F·亨德里克,M,莱诺,K.R.M,Mü勒,P,Sulule,W.,文特尔,H.:规范和验证:规范经验。共同体。ACM五十四(6),81—91(2011)交叉裁判谷歌学者
  2. 2。
    本特森,J.,延森,J.B.,BikdAl,L.:Coq中高阶分离逻辑的框架。在:贝林格,L,FelTy,A.(EDS)ITP 2012。LNCS,第7406卷,第315页-第331页。Springer,海德堡(2012)交叉裁判谷歌学者
  3. 三。
    Berdine,J.,Calcagno,C.,奥赫恩,P.W: Simple Fipe:模块化自动断言检查与分离逻辑。In:德波尔,F.S.,Bangsangu,M.M.,Graf,S,de Roever,W-P(EDS)FMCO 2005。LNCS,第4111卷,第115页-第137页。Springer,海德堡(2006)交叉裁判谷歌学者
  4. 4。
    布洛姆,S,Darabi,S,Huisman,M.:环路平行化的验证。I:EgGy,A,舍费尔,I(EDS)FASE 2015。LNCS,第9033卷,第202页-第217页。Springer,海德堡(2015)谷歌学者
  5. 5。
    布洛姆,S,Huisman,M.:用于验证并发程序的VARCORS工具。在:琼斯,C.,PiHaLaJaaRi,P.,Sun,J.(EDS)FM 2014。LNCS,第8442卷,第127页-第131页。Springer,海德堡(2014)交叉裁判谷歌学者
  6. 6。
    Botincan,M,Distefano,D,Dodds,M,Grigor,R,Naudziuniene,D,帕金森,M.J:Cordestar:JSTAR的核心。在:莱诺,K.R.M.,莫斯卡尔,M.(EDS)BooGee 2011,第65 - 77页(2011)。微软公司/EN-US/UM/UMPLE/MOSKAL/BOOGIE2011/BoGeIE2011
  7. 7。
    ByLAND,J:检查分数权限的干扰。在:CouSoT,R(ED)SAS 2003。LNCS,第2694卷,第55页-第72页。Springer,海德堡(2003)交叉裁判谷歌学者
  8. 8。
    博伊兰,J.T,Mü勒,P,Schwerhoff,M.萨默斯,A.J.:抽象读取权限的约束语义。注:FTFJP 2014,pp.2∶1∶2·6。ACM,纽约,NY,美国(2014)谷歌学者
  9. 9。
    CHIN,W-N,戴维,C.,Nguyen,H.H.,秦,S:通过分离逻辑中的用户定义谓词自动验证形状、大小和袋性质。SCI。计算机。程序七十七(9),1006—1036(2012)ZB数学交叉裁判谷歌学者
  10. 10。
    Chlipala,A,Malecha,J.G.,莫里塞特,G,Shinnar,A,Wisnesky,R:有效的交互证明高阶命令程序。In:赫顿,G,TelMaCH,A.P.(EDS)ICFP,第79页-第90页。ACM(2009)谷歌学者
  11. 11。
    科恩,E,Moskal,M.,Schulte,W.,Tobies,S.:并行程序中全局不变量的局部验证。在:TouiLi,T.,Cook,B,Jackson,P.(EDS)CAV 2010。LNCS,第6174卷,第480页-第494页。Springer,海德堡(2010)交叉裁判谷歌学者
  12. 12。
    Hobor,A,Appel,A.W.:对分离代数和共享会计的重新审视。在:胡,Z.(ED)APLAS 2009。LNCS,第5904卷,第161页-第177页。Springer,海德堡(2009)交叉裁判谷歌学者
  13. 13。
    FILI TE,J.C.,Maulee,C.:为什么/ KRAKATOA/CADUCEUS平台用于演绎程序验证。在:达姆,W.,赫尔曼斯,H(EDS)CAV 2007。LNCS,第4590卷,第173页-第177页。Springer,海德堡(2007)交叉裁判谷歌学者
  14. 14。
    FILI TE,J.C.,Paskevich,A:WHY3-在那里程序符合PROVER。在:Felleisen,M,加德纳,P.(EDS)ESOP 2013。LNCS,第7792卷,第125页-第128页。Springer,海德堡(2013)交叉裁判谷歌学者
  15. 15。
    休尔,S,Kassios,I.T.,Mü勒,P,萨默斯,A.J.:用抽象谓词和抽象函数实现许可逻辑的验证条件生成。在:CasaGNA,G.(ED)ECOOP 2013。LNCS,第7920卷,第451页-第476页。Springer,海德堡(2013)交叉裁判谷歌学者
  16. 16。
    休尔,S,Leino,K.R.M.,Mulle,P.,萨默斯,A.J.:抽象读取权限:分数不带分数的权限。在:Giacobazzi,R,Berdine,J.,MaStReNi,I(EDS)VMCAI 2013。LNCS,第7737卷,第315页-第334页。Springer,海德堡(2013)交叉裁判谷歌学者
  17. 17。
    HORAE,C.A.R.:数据表示正确性的证明。信息学报(4),271—281(1972)ZB数学交叉裁判谷歌学者
  18. 18。
    雅可布,B,SMAN,J.,Philippaerts,P,沃格尔斯,F,PunnCKX,W.,Piessens,F:ValIFAST:一个强大的,健全的,可预测的,快速的验证程序,用于C和Java。在:BabBuu,M.,Havelund,K.,霍尔茨曼,G.J.,Joshi,R(EDS)NFM 2011。LNCS,第6617卷,第41页-第55页。Springer,海德堡(2011)交叉裁判谷歌学者
  19. 19。
    基什内尔,F,Kosmatov,N.,普雷沃斯,V.,Simules,J.,Yakobowski,B: FrAMA-C:软件分析的观点。形式化的ASP.计算机。二十七(3),573—609(2015)马斯克内特交叉裁判谷歌学者
  20. 20。
    LAL,A,Qadeer,S,拉希里,S.K.:求解可达性模理论的求解者。在:Madhusudan,P,SSEHIA,S.A(EDS)CAV 2012。LNCS,第7358卷,第427页-第443页。Springer,海德堡(2012)交叉裁判谷歌学者
  21. 21。
    Leaves,G,贝克,A.L.,Ruby,C:JML:一个详细设计的符号。In:Kilov,I,Runpe,B.西蒙兹,I.(EDS)企业和系统的行为规范,第175页至第188页。克鲁维尔,多德雷赫特(1999)交叉裁判谷歌学者
  22. 22。
    莱诺,K.R.M.:这是Booee 2。工作草案(2008)。HTTP://Realth.MySo.CON/EN-U/UM/Poope/LeNo/Pras.HTML
  23. 23。
    莱诺,K.R.M:DAFNY:功能正确性的自动程序验证程序。In:克拉克,E.M.,Voronkov,A.(EDS)LPAR-16 2010。LNCS,第6355卷,第348页-第370页。Springer,海德堡(2010)交叉裁判谷歌学者
  24. 24。
    莱诺,K.R.M.,米勒,P.:验证多线程程序的基础。在:CasaGNA,G.(ED)ESOP 2009。LNCS,第5502卷,第378页-第393页。Springer,海德堡(2009)交叉裁判谷歌学者
  25. 25。
    莱诺,K.R.M.,Mulle,P.:使用规范语言、方法和工具编写无bug程序。在:米勒,P.(ED)激光暑期学校2007/2008。LNCS,第6029卷,第91页-第139页。Springer,海德堡(2010)交叉裁判谷歌学者
  26. 26。
    莱诺,K.R.M.,米勒,P,SMANS,J:用圣杯验证并发程序。在:Aldini,A,巴尔特河,G,Gorrieri,R(EDS)FASAD。LNCS,第5705卷,第195页-第222页。Springer,海德堡(2009)交叉裁判谷歌学者
  27. 27。
    莫斯卡尔,M:用触发器编程。在:SMT 2009,第20页-第29页。ACM,纽约,NY,美国(2009)谷歌学者
  28. 28。
    Mü勒,P,Schwerhoff,M,萨默斯,A.J.:在线附录。HTTP:/ViPi.EthZ.CH/VMCAI16
  29. 29。
    奥哈恩,P.W.,雷诺兹,J.C.,杨,H.:关于改变数据结构的程序的局部推理。在:弗里堡,L.(E.)CSL 2001和EACSL 2001。LNCS,第2142卷,第1页-第19页。Springer,海德堡(2001)交叉裁判谷歌学者
  30. 30。
    帕金森,M,Bierman,G:分离逻辑和抽象。在:POPL,第247 - 258页(2005)谷歌学者
  31. 31。
    帕金森、M.J.、萨默斯、A.J.:分离逻辑与隐式动态框架之间的关系。逻辑方法计算。SCI。(3:01),1—54(2012)马斯克内特谷歌学者
  32. 32。
    纳瓦罗·P·雷斯,J.A.,里巴尔琴科,A:分离逻辑模理论。在:山,C(E.)APLAS 2013。LNCS,第8301卷,第90页-第106页。Springer,海德堡(2013)交叉裁判谷歌学者
  33. 33。
    Piskac,R,Wies,T.,Zufferey,D.:蚱蜢完成混合规范的堆验证。I: Braa'm,E,Havelund,K.(EDS)TACAS 2014(ETAP)。LNCS,第8413卷,第124页-第139页。Springer,海德堡(2014)交叉裁判谷歌学者
  34. 34。
    雷诺兹,J:分离逻辑:共享可变数据结构的逻辑。在:LICS,第55 - 74页。IEEE计算机学会(2002)谷歌学者
  35. 35。
    Schwerhoff,M,萨默斯,A.J.:在自动验证器中对魔法魔杖的轻量级支持。在Bialand,J.T.(ED)ECOOP,第37卷的利普里茨,第614 - 638页。Schloss Dagstuhl(2015)谷歌学者
  36. 36。
    SMANS,J.,雅可布,B,Piessens,F:隐式动态帧:结合动态帧和分离逻辑。在:DrSoopopouu,S(E.)ECOOP 2009。LNCS,第5653卷,第148页-第172页。Springer,海德堡(2009)交叉裁判谷歌学者
  37. 37。
    Tuelk,T.:HOL小脚丫的正式化。在:Berghofer,S,Nipkow,T,城市,C,文策尔,M.(EDS)TPHOLS 2009。LNCS,第5674卷,第469页-第484页。Springer,海德堡(2009)交叉裁判谷歌学者

版权信息

斯普林格出版社柏林海德堡2016

作者与从属关系

  1. 1。计算机科学系苏黎世联邦理工大学苏黎世瑞士

个性化推荐