Abstract
When describing the behavior of systems, state variables are typically modeled using complex data types. This use of data types allows for concise models that are easy to read. However, model checking tools that aim to automatically establish the correctness of such models use static analyses of state variables to improve their performance. Therefore, the use of complex data types in behavioral models negatively affects the performance of model checking tools. To address this, in this article we revisit a technique by Groote and Lisser that can be used to replace a single state variable of a complex data type by multiple state variables of simpler data types. We introduce and study several extensions in the context of the process algebraic specification language mCRL2, and establish their correctness. We demonstrate that our technique typically reduces the verification times when using symbolic model checking, and show that sometimes it enables static analysis to reduce the underlying state space from infinite to finite.
| Original language | English |
|---|---|
| Article number | 115181 |
| Number of pages | 28 |
| Journal | Theoretical Computer Science |
| Volume | 1038 |
| DOIs | |
| Publication status | Published - 22 May 2025 |
Bibliographical note
Publisher Copyright:© 2025 The Author(s)
Keywords
- Algebraic data types
- Model checking
- Process algebra
- Static analysis
Fingerprint
Dive into the research topics of 'Unfolding state variables improves model checking performance'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver