Abstract
In this paper, we introduce a new verification method for control software. The novelty of the method consists in reducing the verification of temporal properties of a control software algorithm to the Hoare-like deductive verification of an imperative program that explicitly models time and the history of the execution of the algorithm. The method is applied to control software specified in Reflex—a domain-specific extension of the C language developed as an alternative to IEC 61131-3 languages. As a process-oriented language, Reflex enables control software description in terms of interacting processes, event-driven operations, and operations with discrete time intervals. The first step of our method rewrites an annotated Reflex program into an equivalent annotated C program. The second step is deductive verification of this C program. We illustrate our method with deductive verification of a Reflex program for a hand dryer device: we provide the source Reflex program, the set of requirements, the resulting annotated C program, the generated verification conditions, and the results of proving these conditions in Z3py – a Python-based front-end to the SMT solver Z3.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.