×

将Owicki-Gries for C11风格内存模型集成到Isabelle/HOL中。 (英语) Zbl 07498610号

小结:弱记忆对程序验证提出了新的挑战,并导致了各种专业逻辑的发展。对于C11风格的内存模型,我们之前的工作表明,可以扩展Hoare逻辑和Owicki-Gries推理来验证弱内存程序的正确性。该技术引入了一组C11状态的高级断言,以及一组原子弱记忆语句(例如读/写)的基本Hoare-style公理,但保留了复合语句的所有其他标准证明义务。本文通过在Isabelle/HOL中为类C11弱记忆程序引入第一个演绎验证环境,进一步推进了这一工作。该验证环境建立在Isabelle定理证明程序中Owicki-Gries的Nipkow和Nieto编码的基础上。我们在文献中的几个石蕊测试和两个非平凡的例子中举例说明了我们的技术:Peterson算法和适用于C11的读拷贝更新算法。对于我们考虑的示例,可以使用Nipkow和Nieto开发的现有Isabelle策略自动释放证明大纲。这里的好处是可以使用熟悉的伪代码语法编写程序,并将断言直接嵌入到程序中。

MSC公司:

60年第68季度 规范和验证(程序逻辑、模型检查等)
68伏15 定理证明(自动和交互式定理证明、演绎、解析等)
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] 宾夕法尼亚州阿卜杜拉;阿罗尼斯,S。;阿提格,MF;Jonsson,B。;Leonardsson,C。;Sagonas,K.,TSO和PSO的无状态模型检查,Acta Inf.,54,8,789-818(2017)·Zbl 1380.68265号 ·doi:10.1007/s00236-016-0275-0
[2] Algale,J.,Cousot,P.:Ogre和Pythia:弱一致性模型的不变性证明方法。收录于:Castagna,G.,Gordon,A.D.(编辑)POPL,第3-18页。ACM(2017)·Zbl 1380.68101号
[3] Algale,J.、Kroening,D.、Nimal,V.、Tautschnig,M.:通过程序转换对弱内存进行软件验证。收录于:Felleisen,M.Gardner,P.(编辑)ESOP,LNCS,第7792卷,第512-532页。施普林格(2013)·Zbl 1381.68143号
[4] Algale,J.,Kroening,D.,Tautschnig,M.:并发软件有效有界模型检查的部分阶。收录于:Sharygina,N.,Veith,H.(编辑)CAV,LNCS,第8044卷,第141-157页。施普林格(2013)
[5] 阿普特,吉尔吉斯斯坦共和国;de Boer,FS公司;Olderog,E.,《顺序和并发程序的验证》。《计算机科学文本》(2009),柏林:施普林格出版社,柏林·Zbl 1183.68361号 ·doi:10.1007/978-1-84882-745-5
[6] Batty,M.、Owens,S.、Sarkar,S.,Sewell,P.、Weber,T.:C++并发的数学化。摘自:Ball,T.,Sagiv,M.(编辑)POPL,第55-66页。ACM(2011)·Zbl 1284.68165号
[7] Böhme,S.,Nipkow,T.:大锤:审判日。收录于:IJCAR,《计算机科学讲义》,第6173卷,第107-121页。施普林格(2010)·Zbl 1291.68327号
[8] Dalvandi,M.,Dongol,B.:使用Event-B和ProB对C11程序进行演绎验证。摘自:第21届类Java程序形式化技术研讨会论文集,第4页。ACM(2019年)
[9] Dalvandi,S.、Doherty,S.,Dongol,B.、Wehrheim,H.:Owicki-Gries对C11 RAR的推理。收录:Hirschfeld,R.、Pape,T.(编辑)ECOOP,LIPIcs,第166卷,第11:1-11:26页。达格斯图尔-莱布尼兹·泽特鲁姆宫(Schloss Dagstuhl-Leibniz-Zentrum für Informatik)(2020年)。doi:10.4230/LIPIcs。经济合作.2020.11
[10] Dalvandi,S.、Doherty,S.,Dongol,B.、Wehrheim,H.:Isabelle文件,用于“将C11型内存模型的Owicki-Gries集成到Isabelle/HOL”(2021)。doi:10.60084/m9.igshare.14387201.v1。https://figuhare.com/articles/software/Isabelle_Files_for_Integrating_Owicki-Gries_for_C11-Style_Memory_Models_into_Isabelle_HOL_/14387201
[11] Dan,A。;梅什曼,Y。;韦切夫,M。;Yahav,E.,放松记忆模型下验证的有效抽象,计算。语言系统。结构。,47,62-76(2017)·Zbl 1379.68237号
[12] de Roever,可湿性粉剂;de Boer,FS公司;英国汉尼曼。;胡曼,J。;Lakhnech,Y。;Poel,M。;Zwiers,J.,《并发验证:合成和非合成方法简介》,《剑桥理论计算机科学丛书》(2001),剑桥:剑桥大学出版社,剑桥·Zbl 1009.68020号
[13] Desnoyers,M。;麦肯尼,PE;斯特恩,AS;达吉奈斯,MR;Walpole,J.,读-副本更新的用户级实现,IEEE Trans。并行分配系统。,23, 2, 375-382 (2012) ·doi:10.1109/TPDS.2011.159
[14] Doherty,S.、Dongol,B.、Wehrheim,H.、Derrick,J.:验证C11程序的操作性。摘自:Hollingsworth,J.K.,Keidar,I.(编辑)PPoPP,第355-365页。ACM(2019年)
[15] Doko,M.,Vafeiadis,V.:C11内存围栏的程序逻辑。收录于:VMCAI,LNCS,第9583卷,第413-430页。斯普林格(2016)·Zbl 1475.68083号
[16] Doko,M.,Vafeiadis,V.:用FSL++处理现实生活中的放松并发。收入:ESOP,第448-475页(2017年)·兹比尔1485.68061
[17] Dolan,S.、Sivaramakrishnan,K.、Madhavapedy,A.:空间和时间上的极限数据竞赛。收录于:PLDI,PLDI 2018,第242-255页。ACM,美国纽约州纽约市(2018年)
[18] Gavrilenko,N.,Ponce de Le’on,H.,Furbach,F.,Heljanko,K.,Meyer,R.:弱记忆模型的BMC:紧凑SMT编码的关系分析。收录于:Dillig,I.,Tasiran,S.(编辑)CAV,LNCS,第11561卷,第355-365页。斯普林格(2019)。文件编号:10.1007/978-3-030-25540-4_19
[19] 计算机编程的公理基础,Commun。ACM,第12、10、576-580页(1969年)·Zbl 0179.23105号 ·doi:10.1145/363235.363259
[20] Jeannet,B.,并发程序的关系过程间验证,Softw。系统。型号。,12, 2, 285-306 (2013) ·doi:10.1007/s10270-012-0230-7
[21] Kaiser,J.,Dang,H.,Dreyer,D.,Lahav,O.,Vafeiadis,V.:弱记忆的强逻辑:关于释放的推理在Iris中获得一致性。in:Müller,P.(编辑)ECOOP,LIPIcs,第74卷,第17:1-17:29页。达格斯图尔宫(Schloss Dagstuhl)-莱布尼茨-泽特鲁姆富尔信息(Leibniz-Zentrum fuer Informatik)(2017年)
[22] Kang,J.,Hur,C.,Lahav,O.,Vafeiadis,V.,Dreyer,D.:一种有前途的松弛内存并发语义。收录于:POPL,第175-189页。ACM(2017)·Zbl 1380.68103号
[23] Kokologianakis,M.,Lahav,O.,Sagonas,K.,Vafeiadis,V.:有效的C/C++并发无状态模型检查。PACMPL 2(POPL),17:1-17:32(2018)
[24] Kokologianakis,M.,Raad,A.,Vafeiadis,V.:弱一致库的模型检查。收录:McKinley,K.S.,Fisher,K.(编辑)PLDI,第96-110页。ACM(2019年)
[25] Lahav,O.,因果一致共享内存下的验证,SIGLOG News,6,2,43-56(2019)·doi:10.1145/3326938.3326942
[26] Lahav,O.,Vafeiadis,V.:Owicki-Gries关于弱记忆模型的推理。收录于:Halldórsson,M.M.,Iwama,K.,Kobayashi,N.,Speckmann,B.(编辑)ICALP,LNCS,第9135卷,第311-323页。斯普林格(2015)·Zbl 1440.68046号
[27] Lahav,O.,Vafeiadis,V.,Kang,J.,Hur,C.,Dreyer,D.:修复C/C++11中的顺序一致性。参见:PLDI,第618-632页。ACM(2017)
[28] Lamport,L.,《如何制作正确执行多进程程序的多处理器计算机》,IEEE Trans。计算。,28, 9, 690-691 (1979) ·Zbl 0419.68045号 ·doi:10.1109/TC.1979.1675439
[29] Müller,P.,Schwerhoff,M.,Summers,A.J.:毒蛇:基于许可推理的验证基础设施。载:国际验证、模型检查和摘要解释会议,第41-62页。斯普林格(2016)·Zbl 1475.68191号
[30] Nipkow,T.,Nieto,L.P.:Owicki/Gries in Isabelle/HOL。收录于:FASE,《计算机科学讲义》,第1577卷,第188-203页。斯普林格(1999)
[31] 奥维基,SS;Gries,D.,并行程序公理证明技术I,Acta Inf.,6319-340(1976)·兹伯利0312.68011 ·doi:10.1007/BF00268134
[32] Paulson,L.C.:Isabelle-A一般定理证明者(由T.Nipkow贡献),LNCS,第828卷。斯普林格(1994)·兹比尔0825.68059
[33] Paviotti,M.、Cooksey,S.、Paradis,A.、Wright,D.、Owens,S.和Batty,M.:弱内存并发中的模块化松弛依赖。收录于:缪勒,P.(编辑)ESOP,LNCS,第12075卷,第599-625页。施普林格(2020)。doi:10.1007/978-3-030-44914-8_22·Zbl 1508.68045号
[34] Podkopaev,A.,Sergey,I.,Nanevski,A.:C/C++并发的操作方面。CoRR abs/1606.01400(2016)。https://arxiv.org/abs/1606.01400
[35] Ponce de León,H.、Furbach,F.、Heljanko,K.、Meyer,R.:以内存模型为模块的BMC。收录于:Björner,N.,Gurfinkel,A.(编辑)FMCAD,第1-9页。IEEE(2018)
[36] Summers,A.J.,Müller,P.:自动对弱记忆程序进行演绎验证。收录:Beyer,D.,Huisman,M.(编辑)TACAS,LNCS,第10805卷,第190-209页。施普林格(2018)·Zbl 1423.68111号
[37] Svendsen,K.,Pichon-Pharabod,J.,Doko,M.,Lahav,O.,Vafeiadis,V.:一种有前途的语义的分离逻辑。收录于:Ahmed,A.(编辑)ESOP,LNCS,第10801卷,第357-384页。施普林格(2018)·Zbl 1422.68037号
[38] Travkin,O.,Mütze,A.,Wehrheim,H.:SPIN作为弱记忆模型下的线性化能力检查器。收录于:Bertaco,V.Legay,A.(编辑)HVC,LNCS,第8244卷,第311-326页。施普林格(2013)
[39] Turon,A.,Vafeiadis,V.,Dreyer,D.:GPS:用幽灵、协议和分离导航弱内存。摘自:Black,A.P.,Millstein,T.D.(编辑)OOPSLA,第691-707页。ACM(2014)
[40] Vafeiadis,V.,Narayan,C.:松弛分离逻辑:C11并发的程序逻辑。摘自:2013年ACM SIGPLAN面向对象编程系统语言与应用国际会议记录,第867-884页(2013)
[41] 威廉姆斯:https://www.justsoftwareresolutions.co.uk/threading/petersons_lock_with_C(https://www.justsoftwareresolutions.co.uk/threading/petersons_lock_with_C)++0x_atomics.html(2018)。2018年6月20日访问
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。