Component-based verification in a synchronous setting
Formal verification of properties in reactive real-time systems is crucial, as these systems are often safety-critical. Such systems are successfully implemented using synchronous languages, where refinement is a relevant operation. This paper investigates the interplay between this operation and formal verification. It turns out that, while for the refined program component-based verification of properties expressed using suitable temporal logics is easily achieved, component-based verification from the point of view of the refining program is best achieved with observers. Our results are based on a translation of synchronous programs into Boolean automata. Their practical relevance is illustrated with a protocol case study.
formal verification synchronous languages temporal logics observers formal methods