Concurrency verification. Introduction to compositional and noncompositional methods
absence of deadlockassumption commitmentcommunication-closed-layers paradigmcompositional reasoningconcurrent programHoare logicinductive assertionnoncompositional proof methodprogram transformationprogram verificationrely-guarantee methodsemantic completenessshared variablesoundnesssynchronous messagetemporal logictransition system
Introductory exposition (textbooks, tutorial papers, etc.) pertaining to computer science (68-01) Other programming paradigms (object-oriented, sequential, concurrent, automatic, etc.) (68N19) Mathematical aspects of software engineering (specification, verification, metrics, requirements, etc.) (68N30) Specification and verification (program logics, model checking, etc.) (68Q60) Models and methods for concurrent and distributed computing (process algebras, bisimulation, transition nets, etc.) (68Q85)
This textbook is the first part of a work published in two volumes devoted to the state-based verification of concurrent programs. In the first chapter the authors advocate by means of 3 examples the need to use (semi-) automated proof checkers to eliminate errors in verification proofs and explain the approach taken in this volume: state-based, property-oriented, dual language, and semantically-oriented. NEWLINENEWLINENEWLINEIn Chapter 2 semantical formulation is introduced of Floyd's inductive assertion method for sequential transition systems. This simple model of sequential programming is generalised in the next 2 chapters to, respectively, shared-variable concurrency and to distributed programs communicating by means of synchronous messages. The focus is on formulating a mathematical basis for state-based program verification and on proving partial correctness, absence of deadlock, absence of runtime errors, and termination properties. All proposed verification methods are proved to be sound and semantically complete. The goal of Chapter 5 is to investigate the expressibility of mathematical entities used in the soundness and semantic completeness proofs of the previous chapters in the language of first-order predicate logic over the standard model of the natural numbers. This result allows the authors to carry these proofs from the semantic level to the syntactic level of Hoare logic and constitutes in the opinion of the authors ``one of the distinguishing methodological features of this book. Compositional reasoning on large programs, understood as a strategy to verify a program ``on the basis of the specifications of its constituent subprograms only, without any knowledge of the interior construction of those subprograms is introduced in Chapter 6. This principle is very attractive for application to parallel composition because the complexity of this reasoning increases linearly w.r.t. the number of parallel components. The next two chapters are devoted to two powerful paradigms for compositional reasoning: the assumption-commitment method for verifying synchronous distributed message passing system and the rely-guarantee method for verifying shared-variable concurrency. NEWLINENEWLINENEWLINEIn Chapters 9-11 it is given a broad interpretation of Hoare logic regarded as a structured proof method for the inductive construction of inductive assertion networks for programs. Hoare-style proof systems for sequential programs, for shared-variable concurrency, and for synchronous message passing are formulated. Soundness and relative completeness of these logics is immediately derived from results previously obtained. The last chapter of the book explains how to develop a concurrent program starting from a relatively simple version of it, proving this basic instance is correct, and then transforming the sequential version into the actual program. Several program-transforms (including the communication-closed-layers paradigm for verifying network protocols) based on linear time temporal logic are introduced and proved correct. NEWLINENEWLINENEWLINEAll chapters end with exercises of various degrees of difficulty; the hardest ones and the open problems are marked as such. Ample historical notes serve as annotations for the more than 650 references listed in the bibliography. Every method is illustrated by examples explained at length. The formal exposition of essential ideas is preceded by informal discussions. The proofs are clear, detailed, and accompanied by enlightening comments. NEWLINENEWLINENEWLINEThe material contained in this textbook has been already used for courses of various duration. It is partly accessible for undergraduate students. Many themes appear for the first time in a self-contained textbook. More technical sections are aimed to lead up to state-of-the-art research in the area of compositional methods for concurrent program verification. The present textbook is a highly welcome addition to the existing literature on program verification, particularly valuable for the well-arranged, methodically unified framework for a wealth of material.
- Local proofs for global safety properties
- Assumption-commitment support for CSP model checking
- A survey of verification techniques for parallel programs
- Compositionality, Concurrency and Partial Correctness. Proof Theories for Networks of Processes, and their Relationship
- The Rely-Guarantee method for verifying shared variable concurrent programs
- Theory and methodology of assumption/commitment based system interface specification and architectural contracts
- Designing a semantic model for a wide-spectrum language with concurrency
- The symbiosis of concurrency and verification: teaching and case studies
- Semantic models of a timed distributed dataspace architecture
- A system for compositional verification of asynchronous objects
- Verifying correctness of persistent concurrent data structures: a sound and complete method
- (Co)inductive proof systems for compositional proofs in reachability logic
- A unified approach of program verification
- Encoding fairness in a synchronous concurrent program algebra
- Compositional reasoning for shared-variable concurrent programs
- RGITL: a temporal logic framework for compositional reasoning about interleaved programs
- Compositional reasoning using intervals and time reversal
- Fifty years of Hoare's logic
- A verification-driven framework for iterative design of controllers
- Verifying a simplification of mutual exclusion by Lycklama-Hadzilacos
- An application of temporal projection to interleaving concurrency
- A synchronous program algebra: a basis for reasoning about shared-memory and event-based concurrency
- A framework for compositional verification of security protocols
- Towards a thread-local proof technique for starvation freedom
- Proving reachability-logic formulas incrementally
- Towards a hybrid dynamic logic for hybrid dynamic systems
- Formal sequentialization of distributed systems via program rewriting
- Mechanizing a process algebra for network protocols
- Local symmetry and compositional verification
- On rely-guarantee reasoning
- Static analysis of run-time errors in embedded critical parallel C programs
- A coinductive calculus for asynchronous side-effecting processes
- Formal verification of a lock-free stack with hazard pointers
- Compositional reasoning
- Generalised rely-guarantee concurrency: an algebraic foundation
- AUTOMATED COMPOSITIONAL REASONING OF INTUITIONISTICALLY CLOSED REGULAR PROPERTIES
- Splitting Atoms with Rely/Guarantee Conditions Coupled with Data Reification
- Automated Compositional Reasoning of Intuitionistically Closed Regular Properties
- Contracts for BIP: Hierarchical Interaction Models for Compositional Verification
- scientific article; zbMATH DE number 3956417 (Why is no real title available?)
- scientific article; zbMATH DE number 1314563 (Why is no real title available?)
- scientific article; zbMATH DE number 1476492 (Why is no real title available?)
- Formal communication elimination and sequentialization equivalence proofs for distributed system models
- Compositional Bitvector Analysis for Concurrent Programs with Nested Locks
- Convolution and concurrency
- Compositional CSP traces refinement checking
- Assumption-commitment support for CSP model checking
- A Bibliography of Willem-Paul de Roever
- Synchronous message passing: on the relation between bisimulation and refusal equivalence
- Meanings of model checking
- Verifying distributed systems: the operational approach
- Compositional Nonblocking Verification Using Generalized Nonblocking Abstractions
- Proving linearizability with temporal logic
- Elucidating concurrent algorithms via layers of abstraction and reification
- Just testing
- Uniform Substitution for Dynamic Logic with Communicating Hybrid Programs
- Linking operational semantics and algebraic semantics for a probabilistic timed shared-variable language
- Axiomatic characterization of trace reachability for concurrent objects
- Practical abstractions for automated verification of message passing concurrency
- Extending rely-guarantee thinking to handle real-time scheduling
- Concurrent IMP
- ConcurrentHOL
- An operational semantics for object-oriented concepts based on the class hierarchy
- Derivation of concurrent programs by stepwise scheduling of Event-B models
- Fine-grained concurrency with separation logic
- Integrating Owicki-Gries for C11-style memory models into Isabelle/HOL
- Splitting atoms safely
- Automated compositional proofs for real-time systems
- Balancing expressiveness in formal approaches to concurrency
- Compositional reasoning about active objects with shared futures
- Compositional verification of sequential programs with procedures
This page was built for publication: Concurrency verification. Introduction to compositional and noncompositional methods
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q2768503)