Constraint-based automatic verification of abstract models of multithreaded programs

Giorgio Delzanno
DOI: https://doi.org/10.48550/arXiv.cs/0601038
2006-01-10
Abstract:We present a technique for the automated verification of abstract models of multithreaded programs providing fresh name generation, name mobility, and unbounded control. As high level specification language we adopt here an extension of communication finite-state machines with local variables ranging over an infinite name domain, called TDL programs. Communication machines have been proved very effective for representing communication protocols as well as for representing abstractions of multithreaded software. The verification method that we propose is based on the encoding of TDL programs into a low level language based on multiset rewriting and constraints that can be viewed as an extension of Petri Nets. By means of this encoding, the symbolic verification procedure developed for the low level language in our previous work can now be applied to TDL programs. Furthermore, the encoding allows us to isolate a decidable class of verification problems for TDL programs that still provide fresh name generation, name mobility, and unbounded control. Our syntactic restrictions are in fact defined on the internal structure of threads: In order to obtain a complete and terminating method, threads are only allowed to have at most one local variable (ranging over an infinite domain of names).
Logic in Computer Science,Programming Languages
What problem does this paper attempt to address?
The core problem that this paper attempts to solve is the automated verification of multi - threaded program abstract models, especially in the presence of the following three features: 1. **New name generation (name generation)**: The system is able to dynamically generate new and unique names. 2. **Name mobility**: Names in the system can be passed between different components or threads. 3. **Unbounded control**: The system can dynamically add new control threads. These three features make the state space of the system infinite in multiple dimensions, making it difficult to apply traditional finite - state verification techniques (such as Petri nets or CCS - like models). Therefore, the paper proposes a constraint - based approach to solve these problems, specifically including: - **TDL language**: As a high - level specification language, it extends the communicating finite - state machine and allows local variables to take values from an infinite name domain. - **Encoding method**: Encode TDL programs into a low - level language based on multiset rewriting and combine constraint handling. This method can be regarded as an extension of Petri nets. - **Symbolic verification process**: Through the above encoding, the symbolic verification process previously developed for low - level languages can be applied to TDL programs, thereby achieving automatic verification of multi - threaded programs with new name generation, name passing, and unbounded control features. ### Specific problem description The main challenge mentioned in the paper is how to effectively verify multi - threaded programs that contain the above three features. These features lead to the infinity of the system state space, which makes it difficult for traditional verification methods to be directly applied. To meet this challenge, the author proposes a new verification method, which is achieved through the following steps: 1. **Define the TDL language**: TDL (Thread Definition Language) is a formal language used to describe the abstract model of multi - threaded programs. It allows local variables to take values from an infinite name domain and supports operations such as new name generation, name passing, and thread creation. 2. **Encode as MSR NC**: Encode TDL programs into MSR NC (Multiset Rewriting with Name Constraints) specifications, which is a language based on multiset rewriting and name constraints. This encoding enables the use of symbolic verification methods to handle TDL programs. 3. **Symbolic verification process**: Use the symbolic pre - image operator for symbolic backward reachability analysis, thereby achieving automatic verification of TDL programs. Although termination cannot be fully guaranteed, this method performs well in practical examples and can obtain decidable verification problem classes by propagating termination conditions. ### Summary The main contribution of the paper is to provide a new, fully automated verification method suitable for the abstract models of multi - threaded programs with new name generation, name passing, and unbounded control features. By encoding TDL programs into MSR NC specifications and applying the symbolic verification method, this method can overcome the verification problems brought by the infinite state space to a certain extent.