Abstract

The parameterized verification problem seeks to verify all members of some collection of systems. We consider the parameterized verification problem applied to systems that are composed of an arbitrary number of component processes, together with some fixed processes. The components are taken from one or more families, each family representing one role in the system; all components within a family are symmetric to one another. Processes communicate via synchronous message passing. In particular, each component process has an identity, which may be included in messages, and passed to third parties. We extend Abdulla et al.’s technique of view abstraction, together with techniques based on symmetry reduction, to this setting. We give an algorithm and implementation that allows such systems to be verified for an arbitrary number of components: we do this for both safety and deadlock-freedom properties. We apply the techniques to a number of examples. We can model both active components, such as threads, and passive components, such as nodes in a linked list: thus our approach allows the verification of unbounded concurrent datatypes operated on by an unbounded number of threads. We show how to combine view abstraction with additional techniques in order to deal with other potentially infinite aspects of the analysis: for example, we deal with potentially infinite specifications, such as a datatype being a queue; and we deal with unbounded types of data stored in a datatype.

Highlights

  • The parameterized verification problem considers a collection of systems P(x) where the parameter x ranges over a potentially infinite set, and asks whether such systems are correct for all values of x

  • Most approaches to symmetry reduction in model checking [15,18,24,29,37] work by identifying symmetric states, and, during exploration, replace each state encountered with a representative member of its symmetry-equivalence class: if several states map to the same representative, this reduces the work to be done

  • We have tackled an aspect of the parameterized model checking problem, where component processes have identities that may be passed between processes

Read more

Summary

Introduction

The parameterized verification problem considers a collection of systems P(x) where the parameter x ranges over a potentially infinite set, and asks whether such systems are correct for all values of x. By including views of a particular size k, our approach automatically captures invariants that concern the relationship between the states of (at most) k components and the fixed processes. Compared to our earlier work [40], the main advances are: the extension to deal with deadlock freedom; a greatly improved implementation (reducing checking times by a factor of several hundred, and increasing the size of models checkable by a factor of several tens of thousands); extensions to allow multiple families of components, to consider just specific profiles, and to support three-way synchronizations between two components and a fixed process; and the application to a wider range of examples, together with the development of suitable specification and abstraction techniques

Related work
The framework
Processes
Using view abstraction
Bounding the concretizations
Every element of A is a subview of an element of C:
Using symmetry
Correctness
Detecting deadlock
Defining significant concretizations
Implementation
Implementing
Calculating extensions
Calculating candidates
Generalizing
Optimizations
We extend from A to elements of
Examples
Token-based mutual exclusion
Multiplexed buffer
A synchronous communication channel
Lock-based queue
Lock-based stack
An elimination stack
A lock-free queue
A set with lazy synchronization
9.10 A lock-free set
9.11 A termination protocol for a ring
9.12 A timestamp-based queue
9.13 Summary of techniques
9.14 Comparison of specification techniques
9.15 Comparison of linked-list verification techniques
10 Conclusions
A On convexity
Findings
B Detecting deadlock
Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.