Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article
Open access

CSim2: Compositional Top-down Verification of Concurrent Systems using Rely-Guarantee

Published: 09 February 2021 Publication History

Editorial Notes

The authors have requested minor, non-substantive changes to the VoR and, in accordance with ACM policies, a Corrected VoR was published on February 19, 2021. For reference purposes the VoR may still be accessed via the Supplemental Material section on this page.

Abstract

To make feasible and scalable the verification of large and complex concurrent systems, it is necessary the use of compositional techniques even at the highest abstraction layers. When focusing on the lowest software abstraction layers, such as the implementation or the machine code, the high level of detail of those layers makes the direct verification of properties very difficult and expensive. It is therefore essential to use techniques allowing to simplify the verification on these layers. One technique to tackle this challenge is top-down verification where by means of simulation properties verified on top layers (representing abstract specifications of a system) are propagated down to the lowest layers (that are an implementation of the top layers). There is no need to say that simulation of concurrent systems implies a greater level of complexity, and having compositional techniques to check simulation between layers is also desirable when seeking for both feasibility and scalability of the refinement verification. In this article, we present CSim2 a (compositional) rely-guarantee-based framework for the top-down verification of complex concurrent systems in the Isabelle/HOL theorem prover. CSim2 uses CSimpl, a language with a high degree of expressiveness designed for the specification of concurrent programs. Thanks to its expressibility, CSimpl is able to model many of the features found in real world programming languages like exceptions, assertions, and procedures. CSim2 provides a framework for the verification of rely-guarantee properties to compositionally reason on CSimpl specifications. Focusing on top-down verification, CSim2 provides a simulation-based framework for the preservation of CSimpl rely-guarantee properties from specifications to implementations. By using the simulation framework, properties proven on the top layers (abstract specifications) are compositionally propagated down to the lowest layers (source or machine code) in each concurrent component of the system. Finally, we show the usability of CSim2 by running a case study over two CSimpl specifications of an Arinc-653 communication service. In this case study, we prove a complex property on a specification, and we use CSim2 to preserve the property on lower abstraction layers.

Supplementary Material

3436808-vor (3436808-vor.pdf)
Version of Record for "CSim2: Compositional Top-down Verification of Concurrent Systems using Rely-Guarantee" by Sanan et al., ACM Transactions on Programming Languages and Systems, Volume 43, Issue 1 (TOPLAS 43:1).

References

[1]
Aeronautical Radio, Inc. 2015. ARINC Specification 653: Avionics Application Software Standard Interface, Part 1—Required Services. Aeronautical Radio, Inc.
[2]
Eyad Alkassar, Mark A. Hillebrand, Dirk Leinenbach, Norbert W. Schirmer, and Artem Starostin. 2008. The verisoft approach to systems verification. In Verified Software: Theories, Tools, Experiments, Natarajan Shankar and Jim Woodcock (Eds.). Springer, Berlin, 209--224.
[3]
Alasdair Armstrong, Victor B. F. Gomes, and Georg Struth. 2014. Algebraic principles for rely-guarantee style concurrency verification tools. In Proceedings of the 19th International Symposium on Formal Methods (FM’14). 78--93.
[4]
Dirk Beyer and M. Erkan Keremoglu. 2011. CPAchecker: A tool for configurable software verification. In Computer Aided Verification, Ganesh Gopalakrishnan and Shaz Qadeer (Eds.). Springer, Berlin, 184--190.
[5]
Stephen D. Brookes. 1993. Full abstraction for a shared variable parallel language. In Proceedings of the 8th Annual Symposium on Logic in Computer Science (LICS’93). 98--109.
[6]
Sebastian Burckhardt, Madanlal Musuvathi, and Vasu Singh. 2010. Verifying local transformations on relaxed memory models. In Proceedings of the 19th International Conference on Compiler Construction (CC’10). 104--123.
[7]
E. Carrascosa, J. Coronel, M. Masmano, P. Balbastre, and A. Crespo. 2014. XtratuM hypervisor redesign for LEON4 multicore processor. SIGBED Rev. 11, 2 (Sept. 2014), 27--31.
[8]
Joey W. Coleman and Cliff B. Jones. 2007. A structural proof of the soundness of rely/guarantee rules. J. Logic Comput. 17, 4 (Aug. 2007), 807--841.
[9]
Mads Dam, Roberto Guanciale, Narges Khakpour, Hamed Nemati, and Oliver Schwarz. 2013. Formal verification of information flow security for a simple arm-based separation kernel. In Proceedings of the ACM SIGSAC Conference on Computer 8 Communications Security (CCS’13). ACM, New York, NY, 223--234.
[10]
Ronghui Gu, Zhong Shao, Jieung Kim, Xiongnan (Newman) Wu, Jérémie Koenig, Vilhelm Sjöberg, Hao Chen, David Costanzo, and Tahina Ramananandro. 2018. Certified concurrent abstraction layers. In Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI’18). ACM, New York, NY, 646--661.
[11]
Chris Hawblitzel, Erez Petrank, Shaz Qadeer, and Serdar Tasiran. 2015. Automated and modular refinement reasoning for concurrent programs. In Proceedings of the 27th International Conference on Computer Aided Verification (CAV’15). 449--465.
[12]
Ian J. Hayes. 2016. Generalised rely-guarantee concurrency: An algebraic foundation. Formal Aspects Comput. 28, 6 (Nov. 2016), 1057--1078.
[13]
Ian J. Hayes, Robert J. Colvin, Larissa A. Meinicke, Kirsten Winter, and Andrius Velykis. 2016. An algebra of synchronous atomic steps. In Proceedings of the International Symposium on Formal Methods (FM’16). Springer International Publishing, 352--369.
[14]
C. B. Jones. 1981. Development Methods for Computer Programs Including a Notion of Interference. Ph.D. Dissertation, Oxford University.
[15]
C. B. Jones. 2010. The role of auxiliary variables in the formal development of concurrent programs. In Reflections on the Work of C.A.R. Hoare, Cliff B. Jones, A. W. Roscoe, and Kenneth Wood (Eds.). Springer, Chapter 8, 167--188 https://doi.org/10.1007/978-1-84882-912-1\_8.
[16]
Gerwin Klein, Kevin Elphinstone, Gernot Heiser, June Andronick, David Cock, Philip Derrin, Dhammika Elkaduwe, Kai Engelhardt, Rafal Kolanski, Michael Norrish, Thomas Sewell, Harvey Tuch, and Simon Winwood. 2009. seL4: Formal verification of an OS kernel. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles (SOSP). ACM, New York, NY, 207--220.
[17]
Gerwin Klein, Thomas Sewell, and Simon Winwood. 2010. Refinement in the Formal Verification of the seL4 Microkernel. Springer US, Boston, MA, 323--339.
[18]
Sudipta Kundu, Sorin Lerner, and Rajesh Gupta. 2007. Automated refinement checking of concurrent systems. In Proceedings of the International Conference on Computer-Aided Design (ICCAD’07). 318--325.
[19]
Hongjin Liang, Xinyu Feng, and Ming Fu. 2014. Rely-guarantee-based simulation for compositional verification of concurrent program transformations. ACM Trans. Program. Lang. Syst. 36, 1 (2014), 3.
[20]
Andreas Lochbihler. 2010. Verifying a compiler for Java threads. In Proceedings of the 19th European Symposium on Programming (ESOP’10). 427--447.
[21]
Magnus O. Myreen, Michael J. C. Gordon, and Konrad Slind. 2008. Machine-code verification for multiple architectures: An application of decompilation into logic. In Proceedings of the International Conference on Formal Methods in Computer-Aided Design (FMCAD’08). IEEE Press, Piscataway, NJ, Article 20, 8 pages.
[22]
Chris Newcombe, Tim Rath, Fan Zhang, Bogdan Munteanu, Marc Brooker, and Michael Deardeuff. 2015. How Amazon web services uses formal methods. Commun. ACM 58, 4 (Mar. 2015), 66--73.
[23]
Leonor Prensa Nieto. 2003. The rely-guarantee method in Isabelle/HOL. In Proceedings of the 12th European Conference on Programming (ESOP’03). Springer-Verlag, 348--362.
[24]
Tobias Nipkow and Leonor Prensa Nieto. 1999. Owicki/gries in Isabelle/HOL. In Proceedings of 2nd International Conference on Fundamental Approaches to Software Engineering (FASE’99). 188--203.
[25]
Tobias Nipkow, Markus Wenzel, and Lawrence C. Paulson. 2002. Isabelle/HOL: A Proof Assistant for Higher-order Logic. Springer-Verlag, Berlin.
[26]
Susan Owicki and David Gries. 1976. An axiomatic proof technique for parallel programs I. Acta Inform. 6, 4 (1976), 319--340.
[27]
David Sanán, Yongwang Zhao, Zhe Hou, Fuyuan Zhang, Alwen Tiu, and Yang Liu. 2017. CSimpl: A rely-guarantee-based framework for verifying concurrent programs. In Proceedings of the 23rd International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’17), Held as Part of the European Joint Conferences on Theory and Practice of Software (ETAPS’17). 481--498.
[28]
N. Schirmer. 2006. Verification of Sequential Imperative Programs in Isabelle/HOL. Ph.D. Dissertation. Technischen Universitat Munchen.
[29]
Harvey Tuch, Gerwin Klein, and Michael Norrish. 2007. Types, bytes, and separation logic. In Proceedings of the 34th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’07). ACM, New York, NY, 97--108.
[30]
Qiwen Xu, Willem Paul de Roever, and Jifeng He. 1997. The rely-guarantee method for verifying shared variable concurrent programs. Formal Aspects Comput. 9, 2 (1997), 149--174.
[31]
Fuyuan Zhang, Yongwang Zhao, David Sanán, Yang Liu, Alwen Tiu, Shang-Wei Lin, and Jun Sun. 2018. Compositional reasoning for shared-variable concurrent programs. In Proceedings of the 22nd International Symposium on Formal Methods (FM’18).
[32]
Yongwang Zhao and David Sanan. 2019. Rely-guarantee reasoning about concurrent memory management in zephyr RTOS. In Proceedings of the 31st International Conference on Computer Aided Verification. Springer International Publishing, 515--533.
[33]
Yongwang Zhao, David Sanán, Fuyuan Zhang, and Yang Liu. 2016. Formal specification and analysis of partitioning operating systems by integrating ontology and refinement. IEEE Trans. Industr. Inform. 12, 4 (2016), 1321--1331.
[34]
Yongwang Zhao, David Sanan, Fuyuan Zhang, and Liu Yang. 2019. A parametric rely-guarantee reasoning framework for concurrent reactive systems. In Proceedings of the 23rd International Symposium on Formal Methods. Springer International Publishing, 161--178.

Cited By

View all
  • (2024)A Comprehensive Formal Specification of ARINC 653 With Conformity ProofSoftware Testing, Verification and Reliability10.1002/stvr.190135:1Online publication date: Oct-2024
  • (2023)Refinement-based Specification and Analysis of Multi-core ARINC 653 Using Event-BFormal Aspects of Computing10.1145/361718335:4(1-29)Online publication date: 21-Nov-2023
  • (2023)Using cylindric algebra to support local variables in rely/guarantee concurrency2023 IEEE/ACM 11th International Conference on Formal Methods in Software Engineering (FormaliSE)10.1109/FormaliSE58978.2023.00019(108-119)Online publication date: May-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 43, Issue 1
March 2021
239 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/3450362
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 09 February 2021
Accepted: 01 November 2020
Revised: 01 August 2020
Received: 01 June 2019
Published in TOPLAS Volume 43, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Rely-guarantee
  2. compositional verification
  3. concurrency verification
  4. isabelle/HOL
  5. operating systems verification
  6. simulation and refinement

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

  • NRF Singapore under National Cyber-security R8D (NCR) programme
  • NRF Investigatorship Award
  • National Satellite of Excellence in Trustworthy Software Systems
  • Ministry of Education, Singapore, under its Academic Tier-2 Research Fund
  • National Natural Science Foundation of China (NSFC)

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)268
  • Downloads (Last 6 weeks)22
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)A Comprehensive Formal Specification of ARINC 653 With Conformity ProofSoftware Testing, Verification and Reliability10.1002/stvr.190135:1Online publication date: Oct-2024
  • (2023)Refinement-based Specification and Analysis of Multi-core ARINC 653 Using Event-BFormal Aspects of Computing10.1145/361718335:4(1-29)Online publication date: 21-Nov-2023
  • (2023)Using cylindric algebra to support local variables in rely/guarantee concurrency2023 IEEE/ACM 11th International Conference on Formal Methods in Software Engineering (FormaliSE)10.1109/FormaliSE58978.2023.00019(108-119)Online publication date: May-2023
  • (2023)Specifying and Reasoning About Shared-Variable ConcurrencyTheories of Programming and Formal Methods10.1007/978-3-031-40436-8_5(110-135)Online publication date: 8-Sep-2023
  • (2022)Arbitrarily Parallelizable Code: A Model of Computation Evaluated on a Message-Passing Many-Core SystemComputers10.3390/computers1111016411:11(164)Online publication date: 18-Nov-2022
  • (2022)Armada: Automated Verification of Concurrent Code with Sound Semantic ExtensibilityACM Transactions on Programming Languages and Systems10.1145/350249144:2(1-39)Online publication date: 27-May-2022

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

HTML Format

View this article in HTML Format.

HTML Format

Login options

Full Access

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media