{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,2]],"date-time":"2026-10-02T07:53:37Z","timestamp":1790927617418,"version":"4.1.0"},"reference-count":44,"publisher":"Springer Science and Business Media LLC","issue":"6","license":[{"start":{"date-parts":[[2020,3,6]],"date-time":"2020-03-06T00:00:00Z","timestamp":1583452800000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"},{"start":{"date-parts":[[2020,3,6]],"date-time":"2020-03-06T00:00:00Z","timestamp":1583452800000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":["Int J Softw Tools Technol Transfer"],"published-print":{"date-parts":[[2020,12]]},"DOI":"10.1007\/s10009-020-00559-y","type":"journal-article","created":{"date-parts":[[2020,3,6]],"date-time":"2020-03-06T12:02:26Z","timestamp":1583496146000},"page":"709-728","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":6,"title":["Automating deductive verification for weak-memory programs (extended version)"],"prefix":"10.1007","volume":"22","author":[{"given":"Alexander J.","family":"Summers","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Peter","family":"M\u00fcller","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2020,3,6]]},"reference":[{"key":"559_CR1","doi-asserted-by":"publisher","unstructured":"Abdulla, P.A., Atig, M.F., Jonsson, B., Leonardsson, C.: Stateless model checking for POWER. In: CAV 2016 Proceedings Part II, pp. 134\u2013156 (2016). https:\/\/doi.org\/10.1007\/978-3-319-41540-6_8","DOI":"10.1007\/978-3-319-41540-6_8"},{"key":"559_CR2","unstructured":"Abdulla, P.A., Atig, M.F., Bouajjani, A., Ngo, T.P.: The benefits of duality in verifying concurrent programs under TSO. CoRR (2017). arXiv:1701.08682"},{"key":"559_CR3","doi-asserted-by":"publisher","unstructured":"Alglave, J., Cousot, P.: Ogre and Pythia: an invariance proof method for weak consistency models. In: POPL 2017, pp. 3\u201318. ACM, New York, NY, USA, POPL (2017). https:\/\/doi.org\/10.1145\/3009837.3009883","DOI":"10.1145\/3009837.3009883"},{"key":"559_CR4","doi-asserted-by":"publisher","unstructured":"Barnett, M., Chang, B.Y.E., DeLine, R., Jacobs, B., Leino, K.R.M.: Boogie: a modular reusable verifier for object-oriented programs. In: Proceedings of the 4th International Conference on Formal Methods for Components and Objects, pp. 364\u2013387. Springer, Berlin, FMCO\u201905 (2006). https:\/\/doi.org\/10.1007\/11804192_17","DOI":"10.1007\/11804192_17"},{"key":"559_CR5","unstructured":"Bobot, F., Filli\u00e2tre, J.C., March\u00e9, C., Paskevich, A.: Why3: shepherd your herd of provers. In: Boogie 2011: First International Workshop on Intermediate Verification Languages, Wroc\u0142aw, Poland, pp. 53\u201364 (2011). http:\/\/proval.lri.fr\/publications\/boogie11final.pdf"},{"key":"559_CR6","doi-asserted-by":"publisher","unstructured":"Bornat, R., Calcagno, C., O\u2019Hearn, P., Parkinson, M.: Permission accounting in separation logic. In: Proceedings of POPL\u201905, pp. 259\u2013270. ACM, New York, NY, USA (2005). https:\/\/doi.org\/10.1145\/1040305.1040327","DOI":"10.1145\/1040305.1040327"},{"key":"559_CR7","doi-asserted-by":"publisher","unstructured":"Bouajjani, A., Derevenetc, E., Meyer, R.: Checking and enforcing robustness against TSO. In: ESOP 2013, pp. 533\u2013553. Springer, Berlin, ESOP\u201913 (2013). https:\/\/doi.org\/10.1007\/978-3-642-37036-6_29","DOI":"10.1007\/978-3-642-37036-6_29"},{"key":"559_CR8","doi-asserted-by":"crossref","unstructured":"Boyland, J.: Checking Interference with Fractional Permissions, vol. 2694, pp. 55\u201372. Springer, Berlin (2003)","DOI":"10.1007\/3-540-44898-5_4"},{"key":"559_CR9","doi-asserted-by":"publisher","unstructured":"Chlipala, A.: Mostly-automated verification of low-level programs in computational separation logic. In: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 234\u2013245. ACM, New York, NY, USA, PLDI\u201911 (2011). https:\/\/doi.org\/10.1145\/1993498.1993526","DOI":"10.1145\/1993498.1993526"},{"key":"559_CR10","doi-asserted-by":"publisher","unstructured":"Cohen, E., Dahlweid, M., Hillebrand, M., Leinenbach, D., Moskal, M., Santen, T., Schulte, W., Tobies, S.: VCC: A Practical System for Verifying Concurrent C, pp. 23\u201342. Springer, Berlin (2009). https:\/\/doi.org\/10.1007\/978-3-642-03359-9_2","DOI":"10.1007\/978-3-642-03359-9_2"},{"key":"559_CR11","doi-asserted-by":"publisher","unstructured":"Cuoq, P., Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-C. In: SEFM, pp. 233\u2013247. Springer, Berlin (2012). https:\/\/doi.org\/10.1007\/978-3-642-33826-7_16","DOI":"10.1007\/978-3-642-33826-7_16"},{"key":"559_CR12","doi-asserted-by":"publisher","unstructured":"Dan, A., Meshman, Y., Vechev, M., Yahav, E.: Effective abstractions for verification under relaxed memory models. In: VMCAI 2015, pp. 449\u2013466. Springer, Berlin (2015). https:\/\/doi.org\/10.1007\/978-3-662-46081-8_25","DOI":"10.1007\/978-3-662-46081-8_25"},{"key":"559_CR13","doi-asserted-by":"publisher","first-page":"413","DOI":"10.1007\/978-3-662-49122-5_20","volume":"9583","author":"M Doko","year":"2016","unstructured":"Doko, M., Vafeiadis, V.: A program logic for C11 memory fences. VMCAI, Springer, Lecture Notes in Computer Science 9583, 413\u2013430 (2016)","journal-title":"VMCAI, Springer, Lecture Notes in Computer Science"},{"key":"559_CR14","doi-asserted-by":"crossref","unstructured":"Doko, M., Vafeiadis, V.: Tackling real-life relaxed concurrency with FSL++. In: ESOP 2017, pp. 448\u2013475. Springer, Berlin (2017)","DOI":"10.1007\/978-3-662-54434-1_17"},{"key":"559_CR15","unstructured":"Facebook Folly: Reader\u2013writer spinlock implementation (2018). https:\/\/github.com\/facebook\/folly\/blob\/master\/folly\/RWSpinLock.h"},{"key":"559_CR16","doi-asserted-by":"publisher","first-page":"315","DOI":"10.1007\/978-3-642-35873-9_20","volume":"7737","author":"S Heule","year":"2013","unstructured":"Heule, S., Leino, K.R.M., M\u00fcller, P., Summers, A.J.: Abstract read permissions: fractional permissions without the fractions. VMCAI, Springer, Lecture Notes in Computer Science 7737, 315\u2013334 (2013)","journal-title":"VMCAI, Springer, Lecture Notes in Computer Science"},{"key":"559_CR17","unstructured":"Jacobs, B.: Verifying TSO programs. CW Reports CW660, Department of Computer Science, KU Leuven, (2014). https:\/\/lirias.kuleuven.be\/handle\/123456789\/452373"},{"key":"559_CR18","first-page":"304","volume":"6461","author":"B Jacobs","year":"2010","unstructured":"Jacobs, B., Smans, J., Piessens, F.: A quick tour of the VeriFast program verifier. APLAS, Springer, LNCS 6461, 304\u2013311 (2010)","journal-title":"APLAS, Springer, LNCS"},{"key":"559_CR19","doi-asserted-by":"publisher","unstructured":"Kaiser, J.O., Dang, H.H., Dreyer, D., Lahav, O., Vafeiadis, V.: Strong logic for weak memory: reasoning about release-acquire consistency in Iris. In: ECOOP 2017, Schloss Dagstuhl\u2013Leibniz, LIPIcs, vol. 74, pp. 17:1\u201317:29, (2017). https:\/\/doi.org\/10.4230\/LIPIcs.ECOOP.2017.17, http:\/\/drops.dagstuhl.de\/opus\/volltexte\/2017\/7275","DOI":"10.4230\/LIPIcs.ECOOP.2017.17"},{"key":"559_CR20","doi-asserted-by":"publisher","unstructured":"Kokologiannakis, M., Lahav, O., Sagonas, K., Vafeiadis, V.: Effective stateless model checking for C\/C++ concurrency. In: PACMPL, vol. 2(POPL), pp. 17:1\u201317:32 (2018). https:\/\/doi.org\/10.1145\/3158105, https:\/\/doi.org\/10.1145\/3158105","DOI":"10.1145\/3158105"},{"key":"559_CR21","doi-asserted-by":"publisher","unstructured":"Krebbers, R., Jung, R., Bizjak, A., Jourdan, J.H., Dreyer, D., Birkedal, L.: The essence of higher-order concurrent separation logic. In: ESOP, pp. 696\u2013723, Springer, New York, Inc., New York, NY, USA (2017). https:\/\/doi.org\/10.1007\/978-3-662-54434-1_26, https:\/\/doi.org\/10.1007\/978-3-662-54434-1_26","DOI":"10.1007\/978-3-662-54434-1_26"},{"issue":"2","key":"559_CR22","doi-asserted-by":"publisher","first-page":"43","DOI":"10.1145\/3326938.3326942","volume":"6","author":"O Lahav","year":"2019","unstructured":"Lahav, O.: Verification under causally consistent shared memory. SIGLOG News 6(2), 43\u201356 (2019). https:\/\/doi.org\/10.1145\/3326938.3326942","journal-title":"SIGLOG News"},{"key":"559_CR23","unstructured":"Leino, K.R.M.: Dafny: an automatic program verifier for functional correctness. In: Proceedings of LPAR\u201910, pp. 348\u2013370, Springer, Berlin (2010). http:\/\/dl.acm.org\/citation.cfm?id=1939141.1939161"},{"key":"559_CR24","doi-asserted-by":"crossref","unstructured":"Leino, K.R.M., M\u00fcller, P.: A basis for verifying multi-threaded programs. In: Castagna, G. (ed.) ESOP, Springer-Verlag, LNCS, vol. 5502, pp. 378\u2013393 (2009)","DOI":"10.1007\/978-3-642-00590-9_27"},{"key":"559_CR25","first-page":"405","volume":"9779","author":"P M\u00fcller","year":"2016","unstructured":"M\u00fcller, P., Schwerhoff, M., Summers, A.J.: Automatic verification of iterated separating conjunctions using symbolic execution. CAV, Springer-Verlag, LNCS 9779, 405\u2013425 (2016)","journal-title":"CAV, Springer-Verlag, LNCS"},{"key":"559_CR26","doi-asserted-by":"crossref","unstructured":"M\u00fcller, P., Schwerhoff, M., Summers, A.J.: Viper: a verification infrastructure for permission-based reasoning. In: Jobstmann, B., Leino, K.R.M. (eds.) VMCAI, Springer-Verlag, LNCS, vol. 9583, pp. 41\u201362 (2016)","DOI":"10.1007\/978-3-662-49122-5_2"},{"key":"559_CR27","unstructured":"O\u2019Hearn, P.W., Reynolds, J.C., Yang, H.: Local reasoning about programs that alter data structures. In: Proceedings of CSL\u201901, pp. 1\u201319. Springer, London, UK (2001). http:\/\/dl.acm.org\/citation.cfm?id=647851.737404"},{"key":"559_CR28","unstructured":"Online Appendix: Viper-encoded examples (2019). http:\/\/viper.ethz.ch\/onlineappendix-rsl-encoding\/"},{"key":"559_CR29","doi-asserted-by":"crossref","unstructured":"Parkinson, M.J., Summers, A.J.: The relationship between separation logic and implicit dynamic frames. Log. Methods Comput. Sci. 8(3:01), 1\u201354 (2012)","DOI":"10.2168\/LMCS-8(3:1)2012"},{"key":"559_CR30","doi-asserted-by":"crossref","unstructured":"Reynolds, J.C.: Definitional interpreters for higher-order programming languages. In: ACM Annual Conference\u2014Volume 2, pp. 717\u2013740. ACM, ACM\u201972 (1972)","DOI":"10.1145\/800194.805852"},{"key":"559_CR31","unstructured":"Reynolds, J.C.: Separation logic: a logic for shared mutable data structures. In: LICS, IEEE Computer Society Press (2002)"},{"key":"559_CR32","unstructured":"RSL Front-End: RSL to Viper Front-End; TACAS 2018 Artifact Version (2018). https:\/\/figshare.com\/articles\/RSL_to_Viper_Front_end\/5900233"},{"key":"559_CR33","unstructured":"RSL Front-End Zip Files: RSL to Viper Front-End Zip Files (updated since TACAS 2018; Windows, Linux, Mac versions available) (2019). https:\/\/www.pm.inf.ethz.ch\/research\/viper\/prototype-rsl-encoding.html"},{"key":"559_CR34","unstructured":"Rust Library: ARC (Atomic Reference Counting) (2019). https:\/\/doc.rust-lang.org\/std\/sync\/struct.Arc.html"},{"key":"559_CR35","doi-asserted-by":"publisher","unstructured":"Sergey, I., Nanevski, A., Banerjee, A.: Mechanized verification of fine-grained concurrent programs. In: Proceedings of PLDI\u201915, pp. 77\u201387. ACM, New York, NY, USA (2015). https:\/\/doi.org\/10.1145\/2737924.2737964","DOI":"10.1145\/2737924.2737964"},{"key":"559_CR36","doi-asserted-by":"crossref","unstructured":"Smans, J., Jacobs, B., Piessens, F.: Implicit dynamic frames. ACM Trans Program Lang Syst 34(1), 2:1\u20132:58 (2012)","DOI":"10.1145\/2160910.2160911"},{"key":"559_CR37","first-page":"129","volume":"7920","author":"AJ Summers","year":"2013","unstructured":"Summers, A.J., Drossopoulou, S.: A formal semantics for isorecursive and equirecursive state abstractions. ECOOP, Springer, LNCS 7920, 129\u2013153 (2013)","journal-title":"ECOOP, Springer, LNCS"},{"key":"559_CR38","doi-asserted-by":"crossref","unstructured":"Summers, A.J., M\u00fcller, P.: Automating deductive verification for weak-memory programs. Tools and Algorithms for the Construction and Analysis of Systems (TACAS), LNCS, pp. 190\u2013209. Springer, Berlin (2018)","DOI":"10.1007\/978-3-319-89960-2_11"},{"key":"559_CR39","doi-asserted-by":"crossref","unstructured":"Summers, A.J., M\u00fcller, P.: Automating deductive verification for weak-memory programs (extended version) (2018)","DOI":"10.1007\/978-3-319-89960-2_11"},{"key":"559_CR40","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"3","DOI":"10.1007\/978-3-319-46750-4_1","volume-title":"Theoretical Aspects of Computing (ICTAC)","author":"O Travkin","year":"2016","unstructured":"Travkin, O., Wehrheim, H.: Verification of concurrent programs on weak memory models. In: Sampaio, A., Wang, F. (eds.) Theoretical Aspects of Computing (ICTAC). Lecture Notes in Computer Science, vol. 9965, pp. 3\u201324. Springer, Berlin (2016)"},{"key":"559_CR41","doi-asserted-by":"crossref","unstructured":"Turon, A., Vafeiadis, V., Dreyer, D.: GPS: navigating weak memory with ghosts, protocols, and separation. In: OOPSLA, pp. 691\u2013707. ACM (2014)","DOI":"10.1145\/2714064.2660243"},{"key":"559_CR42","unstructured":"Vafeiadis, V.: Personal communication (2016)"},{"key":"559_CR43","doi-asserted-by":"crossref","unstructured":"Vafeiadis, V., Narayan, C.: Relaxed separation logic: a program logic for C11 concurrency. In: OOPSLA, pp. 867\u2013884. ACM (2013)","DOI":"10.1145\/2544173.2509532"},{"key":"559_CR44","doi-asserted-by":"publisher","unstructured":"Xu, F., Fu, M., Feng, X., Zhang, X., Zhang, H., Li, Z.: A practical verification framework for preemptive OS kernels. In: CAV Proceedings Part II, Springer International Publishing, Cham, pp. 59\u201379 (2016). https:\/\/doi.org\/10.1007\/978-3-319-41540-6_4","DOI":"10.1007\/978-3-319-41540-6_4"}],"container-title":["International Journal on Software Tools for Technology Transfer"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10009-020-00559-y.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/article\/10.1007\/s10009-020-00559-y\/fulltext.html","content-type":"text\/html","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/s10009-020-00559-y.pdf","content-type":"application\/pdf","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2022,10,17]],"date-time":"2022-10-17T21:03:27Z","timestamp":1666040607000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/s10009-020-00559-y"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020,3,6]]},"references-count":44,"journal-issue":{"issue":"6","published-print":{"date-parts":[[2020,12]]}},"alternative-id":["559"],"URL":"https:\/\/doi.org\/10.1007\/s10009-020-00559-y","relation":{},"ISSN":["1433-2779","1433-2787"],"issn-type":[{"value":"1433-2779","type":"print"},{"value":"1433-2787","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020,3,6]]},"assertion":[{"value":"6 March 2020","order":1,"name":"first_online","label":"First Online","group":{"name":"ArticleHistory","label":"Article History"}}]}}