English
Related papers

Related papers: Proving Liveness of Parameterized Programs

200 papers

Array-intensive programs are often amenable to parallelization across many cores on a single machine as well as scaling across multiple machines and hence are well explored, especially in the domain of high-performance computing. These…

Programming Languages · Computer Science 2019-05-23 Kunal Banerjee , Chandan Karfa

Linearizability is a commonly accepted notion of correctness for libraries of concurrent algorithms, and recent years have seen a number of proposals of program logics for proving it. Although these logics differ in technical details, they…

Programming Languages · Computer Science 2016-09-06 Artem Khyzha , Alexey Gotsman , Matthew Parkinson

We consider the problem of verifying liveness for systems with a finite, but unbounded, number of processes, commonly known as parameterised systems. Typical examples of such systems include distributed protocols (e.g. for the dining…

Logic in Computer Science · Computer Science 2016-06-07 Anthony W. Lin , Philipp Ruemmer

Multi-threaded programs have traditionally fallen into one of two domains: cooperative and competitive. These two domains have traditionally remained mostly disjoint, with cooperative threading used for increasing throughput in…

Programming Languages · Computer Science 2018-07-11 Stefan K. Muller , Umut A. Acar , Robert Harper

Multi-threaded programs have many applications which are widely used such as operating systems. Analyzing multi-threaded programs differs from sequential ones; the main feature is that many threads execute at the same time. The effect of…

Software Engineering · Computer Science 2011-11-04 Mohamed A. El-Zawawy , Hamada A. Nayel

Efficient implementations of concurrent objects such as atomic collections are essential to modern computing. Programming such objects is error prone: in minimizing the synchronization overhead between concurrent object invocations, one…

Programming Languages · Computer Science 2017-07-04 Ahmed Bouajjani , Constantin Enea , Chao Wang

For models of concurrent and distributed systems, it is important and also challenging to establish correctness in terms of safety and/or liveness properties. Theories of distributed systems consider equivalences fundamental, since they (1)…

Logic in Computer Science · Computer Science 2017-12-01 Tobias Prehn , Stephan Mennicke

This work strives to make formal verification of POSIX multithreaded programs easily accessible to general programmers. Sthread operates directly on multithreaded C/C++ programs, without the need for an intermediate formal model. Sthread is…

Programming Languages · Computer Science 2020-02-18 Gene Cooperman , Martin Quinson

Event-driven programming is a popular paradigm where the flow of execution is controlled by two features: (1) shared memory and (2) sending and receiving of messages between multiple handler threads (just called handler). Each handler has a…

Programming Languages · Computer Science 2025-08-12 Parosh Aziz Abdulla , Mohamed Faouzi Atig , R. Govind , Samuel Grahn , Ramanathan S. Thinniyam

This paper presents a new approach for optimizing multitheaded programs with pointer constructs. The approach has applications in the area of certified code (proof-carrying code) where a justification or a proof for the correctness of each…

Software Engineering · Computer Science 2012-12-21 Mohamed A. El-Zawawy

Programs for multiprocessor machines commonly perform busy-waiting for synchronisation. In this paper, we make a first step towards proving termination of such programs. We approximate (i) arbitrary waitable events by abrupt program…

Logic in Computer Science · Computer Science 2020-10-19 Tobias Reinhard , Amin Timany , Bart Jacobs

Monotonicity in concurrent systems stipulates that, in any global state, extant system actions remain executable when new processes are added to the state. This concept is not only natural and common in multi-threaded software, but also…

Programming Languages · Computer Science 2014-06-26 Alexander Kaiser , Daniel Kroening , Thomas Wahl

In this paper, we show how thread partitioning helps in proving properties of mobile systems. Thread partitioning consists in gathering the threads of a mobile system into several classes. The partitioning criterion is left as a parameter…

Other Computer Science · Computer Science 2008-02-04 Jérôme Feret

Choreographic programming is a paradigm where a concurrent or distributed system is developed in a top-down fashion. Programs, called choreographies, detail the desired interactions between processes, and can be compiled to distributed…

Programming Languages · Computer Science 2023-05-01 Luís Cruz-Filipe , Eva Graversen , Fabrizio Montesi , Marco Peressotti

Commutativity has proven to be a powerful tool in reasoning about concurrent programs. Recent work has shown that a commutativity-based reduction of a program may admit simpler proofs than the program itself. The framework of…

Programming Languages · Computer Science 2023-11-07 Azadeh Farzan , Dominik Klumpp , Andreas Podelski

Threads as considered in basic thread algebra are primarily looked upon as behaviours exhibited by sequential programs on execution. It is a fact of life that sequential programs are often fragmented. Consequently, fragmented program…

Logic in Computer Science · Computer Science 2011-06-17 J. A. Bergstra , C. A. Middelburg

The pairwise reachability problem for a multi-threaded program asks, given control locations in two threads, whether they can be simultaneously reached in an execution of the program. The problem is important for static analysis and is used…

Logic in Computer Science · Computer Science 2015-07-01 Remi Bonnet , Rohit Chadha , Mahesh Viswanathan , P. Madhusudan

Hoare logics are proof systems that allow one to formally establish properties of computer programs. Traditional Hoare logics prove properties of individual program executions (such as functional correctness). Hoare logic has been…

Logic in Computer Science · Computer Science 2024-04-12 Thibault Dardinier , Peter Müller

Linearizability is the gold standard among algorithm designers for deducing the correctness of a distributed algorithm using implemented shared objects from the correctness of the corresponding algorithm using atomic versions of the same…

Distributed, Parallel, and Cluster Computing · Computer Science 2011-09-21 Wojciech Golab , Lisa Higham , Philipp Woelfel

Hyperproperties relate multiple executions of a program and are commonly used to specify security and information-flow policies. Most existing work has focused on the verification of $k$-safety properties, i.e., properties that state that…

Logic in Computer Science · Computer Science 2024-03-07 Raven Beutner