🤖 AI Summary
Model checking temporal properties of safety-critical embedded C programs faces significant challenges due to the difficulty of constructing accurate, tractable abstractions manually.
Method: This paper proposes an automated abstraction modeling approach grounded in verified component contracts. It directly translates state-transition contracts into language-agnostic flow graphs (FGs), integrating static analysis and abstract interpretation to achieve lightweight, high-fidelity abstraction.
Contribution/Results: The work establishes, for the first time, a formal semantic mapping from contracts to flow graphs, enabling compositional model checking and drastically reducing manual abstraction effort. Experiments on real-world safety-critical C code demonstrate fully automated construction of high-precision abstract models. The approach improves feasibility, efficiency, and scalability of timing property verification and has been integrated into an end-to-end prototype toolchain.
📝 Abstract
Model checking temporal properties of software is algorithmically hard. To be practically feasible, it usually requires the creation of simpler, abstract models of the software, over which the properties are checked. However, creating suitable abstractions is another difficult problem. We argue that such abstract models can be obtained with little effort, when the state transformation properties of the software components have already been deductively verified. As a concrete, language-independent representation of such abstractions we propose the use of emph{flow graphs}, a formalism previously developed for the purposes of compositional model checking. In this paper, we describe how we envisage the work flow and tool chain to support the proposed verification approach in the context of embedded, safety-critical software written in~C.