Verification of safety requirements for program code using data abstraction - Stappers, Frank; Reniers, Michel (Electronic Communications of the EASST, 2009)
Large systems in modern development consist of many concurrent processes. To prove safety properties formal modelling techniques are needed. When source code is the only available documentation for deriving the system's behaviour,it is a difficult task to create a suitable model. Implementations of a system usually describe behaviour in too much detail for a formal verification. Therefore automated methods are needed that directly abstract from the implementation, but maintainenough information for a formal system analysis.This paper describes and illustrates a method by which systems with a high degree of parallelism can be verified. The method consists of creating an over-approximation of the behaviour by abstracting from the values of program variables. The derivedmodel, consisting of interface calls between processes, is checked for various safety properties with the mCRL2 tool set.