Concurrency verification. Introduction to compositional and noncompositional methods (Q2768503)

From MaRDI portal





scientific article; zbMATH DE number 1699946
Language Label Description Also known as
English
Concurrency verification. Introduction to compositional and noncompositional methods
scientific article; zbMATH DE number 1699946

    Statements

    0 references
    0 references
    0 references
    0 references
    0 references
    0 references
    0 references
    3 February 2002
    0 references
    assumption commitment
    0 references
    absence of deadlock
    0 references
    compositional reasoning
    0 references
    concurrent program
    0 references
    communication-closed-layers paradigm
    0 references
    Hoare logic
    0 references
    inductive assertion
    0 references
    noncompositional proof method
    0 references
    program transformation
    0 references
    program verification
    0 references
    rely-guarantee method
    0 references
    shared variable
    0 references
    semantic completeness
    0 references
    soundness
    0 references
    synchronous message
    0 references
    temporal logic
    0 references
    transition system
    0 references
    Concurrency verification. Introduction to compositional and noncompositional methods (English)
    0 references
    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.
    0 references
    0 references

    Identifiers

    0 references
    0 references
    0 references
    0 references
    0 references
    0 references