Open AccessPosted Content
Lost in Abstraction: Monotonicity in Multi-Threaded Programs (Extended Technical Report).
TL;DR: This paper shows that the act of obtaining finite-data thread abstractions for model checking can be at odds with monotonicity, and demonstrates how the abstract programs can be modified into monotone ones, without affecting safety properties of the non-monotone abstraction.
read more
Abstract: 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 useful: if every thread's memory is finite, monotonicity often guarantees the decidability of safety property verification even when the number of running threads is unknown. In this paper, we show that the act of obtaining finite-data thread abstractions for model checking can be at odds with monotonicity: Predicate-abstracting certain widely used monotone software results in non-monotone multi-threaded Boolean programs - the monotonicity is lost in the abstraction. As a result, well-established sound and complete safety checking algorithms become inapplicable; in fact, safety checking turns out to be undecidable for the obtained class of unbounded-thread Boolean programs. We demonstrate how the abstract programs can be modified into monotone ones, without affecting safety properties of the non-monotone abstraction. This significantly improves earlier approaches of enforcing monotonicity via overapproximations.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Figures

Table 1: Abstraction (R̂1) 2 for stmt. l := l − 1 against predicate l < lP (left); concrete witness transitions, i.e. elements of (R1) 2 (right). The highlighted row indicates asynchrony violations 
Table 3: Each row shows a single-instruction program, whether the program gives rise to a monotone system and, if not, an assignment that violates Eq. (17). (Some of these programs are not finite-state.) 
Fig. 1: Our goal is to verify “unbounded-thread mutual exclusion”: no matter how many threads try to acquire and release the lock concurrently, no two of them should simultaneously be between the calls to functions spin_lock and spin_unlock. ![Fig. 3: The algorithm used [21] attempts to prove uncoverability of smaller (≺) undecided elements first, which is why some (larger) elements are not expanded](/figures/figure3-1-1lht3f8q4epa.png)
Fig. 3: The algorithm used [21] attempts to prove uncoverability of smaller (≺) undecided elements first, which is why some (larger) elements are not expanded 
Table 2: Part of the abstraction (R̂1) 3 for stmt. l := l − 1 against predicate l < lP (left); concrete witness transitions (right). The highlighted elements are inconsistent with (14) as a template 
Fig. 2: Minsky machine and (part of) its DR program encoding, shown as labels of control transitions. The initial state Ĩ of the DR encoding is l = lP = 0∧pc = pcP = d0
Citations
Tools and Algorithms for the Construction and Analysis of Systems. Proc. TACAS 2009
Stefan Kowalewski,Anna Philippou +1 more
- 01 Jan 2009
TL;DR: This paper presents a meta-modelling framework for modeling and testing the robustness of the modeled systems and some of the techniques used in this framework have been developed and tested in the field.
1.6K
Lost in Abstraction: Monotonicity in Multi-threaded Programs
Alexander Kaiser,Daniel Kroening,Thomas Wahl +2 more
- 02 Sep 2014
TL;DR: This paper shows that the act of obtaining finite-data thread abstractions for model checking can be at odds with monotonicity, and demonstrates how the abstract programs can be modified into monotone ones, without affecting safety properties of the non-monotone abstraction.
Abstracting and Counting Synchronizing Processes
Zeinab Ganjei,Ahmed Rezine,Petru Eles,Zebo Peng +3 more
- 12 Jan 2015
TL;DR: This work has implemented a tool Pacman, for predicated constrained monotonic abstraction, and used it to perform parameterized verification for several programs whose correctness crucially depends on precisely capturing the number of synchronizing processes.
Counting dynamically synchronizing processes
TL;DR: This work has implemented a tool (Pacman, for predicated constrained monotonic abstraction) and used it to perform parameterized verification on several programs whose correctness crucially depends on precisely capturing the number of processes synchronizing using shared variables.
•Journal Article
Empirically efficient verification for a class of infinite-state systems
Jesse Bingham,Alan J. Hu +1 more
TL;DR: Recently, Bingham et al. as mentioned in this paper proposed a new algorithm for verifying the reachability of an upward-closed set of error states, which is applicable only to the special cases of broadcast protocols and petri nets.
3
References
•Book
Computation: Finite and Infinite Machines
Marvin Minsky
- 01 Jan 1967
TL;DR: In this article, the authors present an abstract theory that categorically and systematically describes what all these machines can do and what they cannot do, giving sound theoretical or practical grounds for each judgment, and the abstract theory tells us in no uncertain terms that the machines' potential range is enormous and that its theoretical limitations are of the subtlest and most elusive sort.
2.9K
Tools and Algorithms for the Construction and Analysis of Systems. Proc. TACAS 2009
Stefan Kowalewski,Anna Philippou +1 more
- 01 Jan 2009
TL;DR: This paper presents a meta-modelling framework for modeling and testing the robustness of the modeled systems and some of the techniques used in this framework have been developed and tested in the field.
1.6K
Model checking and abstraction
TL;DR: Using techniques similar to those involved in abstract interpretation, an abstract model of a program is constructed without ever examining the corresponding unabstracted model, and it is shown how this abstract model can be used to verify properties of the original program.
1.6K
Well-structured transition systems everywhere!
Alain Finkel,Ph. Schnoebelen +1 more
TL;DR: Improved definitions of well-structured transition systems allow many examples of classical systems to be seen as instances of WSTSs and show several new results.
861
Tools and Algorithms for the Construction and Analysis of Systems: 22nd International Conference, TACAS 2016 held as part of the european joint conferences on theory and practice of software, ETAPS 2016 Eindhoven, The Netherlands, April 2-8, 2016 proceedings
TL;DR: This paper presents a meta-analyses of parallel SAT simplification on GPU architectures and its applications in reinforcement learning, artificial intelligence, and bioinformatics.
567
Related Papers (5)
Alexander Kaiser,Daniel Kroening,Thomas Wahl +2 more
- 02 Sep 2014
[...]
Kedar S. Namjoshi,E. Allen Emerson +1 more
- 01 Jan 1998