Decision Procedures for the Temporal Verification of Concurrent Data Structures
نویسندگان
چکیده
Concurrent datatypes are concurrent implementation of classical data abstractions, specifically designed to exploit the great deal of parallelism available in multiprocessor and multicore architectures. The correctness of concurrent datatypes is essential for the overall correctness of the system. In this work we study the problem of aiding in the automation of temporal verification of concurrent datatypes. The main difficulty to reason about these datatypes comes from the combination of their inherently high concurrency and the manipulation of dynamic memory. Most previous approaches to verification of concurrent datatypes try to enrich separation logic to deal with concurrency, leveraging on the success of separation logic in reasoning about sequential heap algorithms. This work contains two contributions. First, we present a complementary approach to the verification of concurrent data structures: we start from deductive temporal verification, a very powerful technique to reason about concurrent systems, and enrich it to cope with dynamic memory. The verification process uses verification diagrams and explicit region annotations. In the end, each proof is decomposed into a sequence of verification conditions. The literals involved in these verification conditions depend mainly on the data structured being verified. The second, and main, contribution consists in two decision procedures for specific data-types: concurrent lock-coupling singly-linked lists and concurrent skiplists. These decision procedures are capable of reasoning about regions, pointers, lisp-like lists and ordered lists allowing automatic verification of generated verification conditions. We show how using our technique we are able to prove not only safety but also liveness properties of a version of concurrent lists and express the preservation of skiplist shape by a data structure. Moreover, the approach we present can be easily extended for using it in the verification of a wide range of similar concurrent datatypes including hash maps and graphs.
منابع مشابه
Decision Procedures for the Temporal Verification of Concurrent Lists
This paper studies the problem of formally verifying temporal properties of concurrent datatypes. Concurrent datatypes are implementations of classical data abstractions, specially designed to exploit the parallelism available in multiprocessor architectures. The correctness of concurrent datatypes is essential for the overall correctness of the client software. The main difficulty to reason ab...
متن کاملReachability checking in complex and concurrent software systems using intelligent search methods
Software system verification is an efficient technique for ensuring the correctness of a software product, especially in safety-critical systems in which a small bug may have disastrous consequences. The goal of software verification is to ensure that the product fulfills the requirements. Studies show that the cost of finding and fixing errors in design time is less than finding and fixing the...
متن کاملLEAP: A Tool for the Parametrized Verification of Concurrent Datatypes
This tool paper describes Leap, a tool for the verification of concurrent datatypes and parametrized systems composed by an unbounded number of threads that manipulate infinite data. Leap receives as input a concurrent program description and a specification and automatically generates a finite set of verification conditions which are then discharged to specialized decision procedures. The vali...
متن کاملConcurrent Data Structures Linked in Time
Arguments about correctness of a concurrent data structure are typically carried out by using the notion of linearizability and specifying the linearization points of the data structure’s procedures. Such arguments are often cumbersome as the linearization points’ position in time can be dynamic (depend on the interference, run-time values and events from the past, or even future), non-local (a...
متن کاملOn Decision Procedures for Collections, Cardinalities, and Relations
Logics that involve collections (sets, multisets), and cardinality constraints are useful for reasoning about unbounded data structures and concurrent processes. To make such logics more useful in verification this paper extends them with the ability to compute direct and inverse relation and function images. We establish decidability and complexity bounds for the extended logics.
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2014