English
Related papers

Related papers: Verifying Concurrent Stacks by Divergence-Sensitiv…

200 papers

An engineering design process may involve software modules that can executed concurrently. Concurrent modules can be very easily subject to some synchronization errors. This paper discusses verification process for such engineering…

Software Engineering · Computer Science 2017-04-24 Jerzy Mieścicki , Mikołaj Baszun , Wiktor B. Daszczuk , Bogdan D. Czejdo

The overall problem addressed in this paper is the long-standing problem of program correctness, and in particular programs that describe systems of parallel executing processes. We propose a new method for proving correctness of parallel…

Programming Languages · Computer Science 2023-02-10 Frank S. de Boer , Einar Broch Johnsen , Violet Ka I Pun , Silvia Lizeth Tapia Tarifa

This paper studies the relation between agreement and strongly linearizable implementations of various objects. This leads to new results about implementations of concurrent objects from various primitives including window registers and…

Distributed, Parallel, and Cluster Computing · Computer Science 2025-09-03 Hagit Attiya , Armando Castañeda , Constantin Enea

Most work on the verification of concurrent objects for shared memory assumes sequential consistency, but most multicore processors support only weak memory models that do not provide sequential consistency. Furthermore, most verification…

Distributed, Parallel, and Cluster Computing · Computer Science 2016-04-25 Simon Doherty , John Derrick

Concurrent data structures or CDS such as concurrent stacks, queues, sets etc. have become very popular in the past few years partly due to the rise of multi-core systems. But one of the greatest challenges with CDSs has been developing…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-06-08 Sathya Peri , Muktikanta Sa , Ajay Singh , Nandini Singhal , Archit Somani

Concurrent objects form the foundation of many applications that exploit multicore architectures and their importance has lead to informal correctness arguments, as well as formal proof systems. Correctness arguments (as found in the…

Programming Languages · Computer Science 2024-10-18 Constantin Enea , Eric Koskinen

The notion of refinement plays an important role in software engineering. It is the basis of a stepwise development methodology in which the correctness of a system can be established by proving, or computing, that a system refines its…

Logic in Computer Science · Computer Science 2023-06-22 Maurice Laveaux , Jan Friso Groote , Tim A. C. Willemse

Linearisability has become the standard correctness criterion for concurrent data structures, ensuring that every history of invocations and responses of concurrent operations has a matching sequential history. Existing proofs of…

Logic in Computer Science · Computer Science 2013-07-29 Brijesh Dongol , John Derrick

Linearizability has become the de facto correctness specification for implementations of concurrent data structures. While formally verifying such implementations remains challenging, linearizability monitoring has emerged as a promising…

Programming Languages · Computer Science 2025-09-16 Lee Zheng Han , Umang Mathur

Geo-replicated systems provide a number of desirable properties such as globally low latency, high availability, scalability, and built-in fault tolerance. Unfortunately, programming correct applications on top of such systems has proven to…

Programming Languages · Computer Science 2025-02-27 Kartik Nagar , Prasita Mukherjee , Suresh Jagannathan

Synchronisation classes are an important building block for shared memory concurrent programs. Thus to reason about such programs, it is important to be able to verify the implementation of these synchronisation classes, considering atomic…

Software Engineering · Computer Science 2018-06-27 Afshin Amighi , Marieke Huisman , Stefan Blom

This paper revisits the fundamental problem of monitoring the linearizability of concurrent stacks, queues, sets, and multisets. Given a history of a library implementing one of these abstract data types, the monitoring problem is to answer…

Programming Languages · Computer Science 2025-09-23 Parosh Aziz Abdulla , Samuel Grahn , Bengt Jonsson , Shankaranarayanan Krishna , Om Swostik Mishra

Proving the linearizability of highly concurrent data structures, such as those using optimistic concurrency control, is a challenging task. The main difficulty is in reasoning about the view of the memory obtained by the threads, because…

Distributed, Parallel, and Cluster Computing · Computer Science 2018-08-07 Yotam M. Y. Feldman , Constantin Enea , Adam Morrison , Noam Rinetzky , Sharon Shoham

To maximize the information gained from a single execution when verifying a concurrent system, one can derive all concurrency-aware equivalent executions and check them against linear specifications. This paper offers an alternative…

Logic in Computer Science · Computer Science 2025-07-08 Martin Leucker

We present and verify template algorithms for lock-free concurrent search structures that cover a broad range of existing implementations based on lists and skiplists. Our linearizability proofs are fully mechanized in the concurrent…

Programming Languages · Computer Science 2024-05-24 Nisarg Patel , Dennis Shasha , Thomas Wies

Automatic software verification is a valuable means for software quality assurance. However, automatic verification and in particular software model checking can be time-consuming, which hinders their practical applicability e.g., the use…

Logic in Computer Science · Computer Science 2026-01-16 Max Barth , Marie-Christine Jakobs

Bounded model checking is among the most efficient techniques for the automatic verification of concurrent programs. However, encoding all possible interleavings often requires a huge and complex formula, which significantly limits the…

Programming Languages · Computer Science 2018-04-04 Liangze Yin , Wei Dong , Wanwei Liu , Ji Wang

Empirical studies are fundamental in assessing the effectiveness of implementations of branch-and-bound algorithms. The complexity of such implementations makes empirical study difficult for a wide variety of reasons. Various attempts have…

Distributed, Parallel, and Cluster Computing · Computer Science 2021-04-21 Stephen J. Maher , Ted K. Ralphs , Yuji Shinano

Correctness conditions for concurrent objects describe how atomicity of an abstract sequential object may be decomposed. Many different concurrent objects and proof methods for them have been developed. However, arguments about correctness…

Logic in Computer Science · Computer Science 2016-06-08 Brijesh Dongol , Lindsay Groves

Atomic shared objects, whose operations take place instantaneously, are a powerful abstraction for designing complex concurrent programs. Since they are not always available, they are typically substituted with software implementations. A…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-03-02 Hagit Attiya , Constantin Enea , Jennifer L. Welch