Automated Verification and Synthesis of Embedded Systems using Machine Learning

Lucas Cordeiro
DOI: https://doi.org/10.48550/arXiv.1702.07847
2017-03-01
Abstract:The dependency on the correct functioning of embedded systems is rapidly growing, mainly due to their wide range of applications, such as micro-grids, automotive device control, health care, surveillance, mobile devices, and consumer electronics. Their structures are becoming more and more complex and now require multi-core processors with scalable shared memory, in order to meet increasing computational power demands. As a consequence, reliability of embedded (distributed) software becomes a key issue during system development, which must be carefully addressed and assured. The present research discusses challenges, problems, and recent advances to ensure correctness and timeliness regarding embedded systems. Reliability issues, in the development of micro-grids and cyber-physical systems, are then considered, as a prominent verification and synthesis application. In particular, machine learning techniques emerge as one of the main approaches to learn reliable implementations of embedded software for achieving a correct-by-construction design.
Logic in Computer Science,Systems and Control
What problem does this paper attempt to address?
This paper aims to solve the problems of verification and synthesis of design correctness and behavior correctness in embedded systems. As the application range of embedded systems is becoming increasingly wide, from micro - grids, automotive device control to healthcare, monitoring, mobile devices and consumer electronics, etc., their structures are becoming more and more complex, and the demand for multi - core processors and scalable shared memory is also increasing. Therefore, ensuring the reliability of these (distributed) software has become a key issue in system development. The paper pays special attention to the reliability problems encountered in the development of micro - grids and cyber - physical systems (CPS), which are considered as an important application of verification and synthesis. The paper proposes machine - learning techniques as one of the methods for learning reliable implementation of embedded software to achieve "correct - by - construction" design. Specifically, the synthesizer can use the given correctness specification \(\sigma\) as a starting point, and then gradually generate a sequence of candidate solutions that satisfy \(\sigma\) by combining deductive methods with inductive reasoning (learning from counter - examples). Through this counter - example - guided learning method, the candidate solutions can be iteratively optimized to match the specification \(\sigma\). In addition, the paper also discusses the challenges faced by current embedded system verification methods, such as improving coverage, pruning state - space exploration, and combining system models, which are crucial for ensuring the reliability of micro - grids and cyber - physical systems. The paper points out that future research directions may include but are not limited to: improving SMT encoding, using SMT techniques to alleviate the state explosion problem of multi - threaded software, proving the correctness and timeliness of embedded systems, integrating knowledge about system purposes to detect system - level and behavior faults, providing tools and methods that support different programming languages and interfaces, and developing automated synthesis methods that can handle embedded (control) software that is tightly coupled with the physical environment.