1. Lost in abstraction: monotonicity in multi-threaded programs
- Author
-
Kaiser, A, Kroening, D, Wahl, T, Baldan, P, Gorla, D, Baldan, P, and Gorla, D
- Subjects
TheoryofComputation_MISCELLANEOUS ,Model checking ,Theoretical computer science ,Computer science ,Monotonic function ,Thread (computing) ,0102 computer and information sciences ,02 engineering and technology ,01 natural sciences ,Theoretical Computer Science ,Predicate abstraction ,0202 electrical engineering, electronic engineering, information engineering ,Abstraction ,Mathematics ,020207 software engineering ,computer.file_format ,Undecidable problem ,Computer Science Applications ,Decidability ,Monotone polygon ,Computational Theory and Mathematics ,010201 computation theory & mathematics ,Computer Science::Programming Languages ,020201 artificial intelligence & image processing ,Mutual exclusion ,Executable ,computer ,Information Systems - 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.
- Published
- 2019