Cyber-Physical Systems (CPSs) are engineered systems that are built from, and depend upon, the seamless integration of computational algorithms and physical components. CPSs are widely used in many safetycritical domains, making it crucial to ensure that they operate safely without causing harm to people and the environment. Therefore, their design should be robust enough to deal with unexpected conditions and flexible to answer to the high scalability and complexity of systems. Nowadays, it is well-established that formal verification has a great potential in reinforcing safety of critical systems, but nevertheless its application in the development of industrial products may still be a challenging activity. In this paper, we describe an approach based on Satisfiability Modulo Theories (SMT) to formally verify, at the design stage, the consistency of the system design -expressed in a given domain-specific language, called QRML, which is specifically designed for CPSs -with respect to some given property constraints, with the purpose to reduce inconsistencies during the system development process. To this end, we propose an SMT-based approach for checking the consistency of configuration based-components specifications and we report the results of the experimental analysis using three different state-of-the-art SMT solvers. The main goal of the experimental analysis is to test the scalability of the selected SMT solvers and thus to determine which SMT solver is the best in checking the satisfiability of the properties.
INDEX TERMS Design verification, Application of formal methods, Satisfiability Modulo Theories
I. INTRODUCTIONCyber-Physical Systems (CPSs) are real-time embedded systems in which the software controllers continuously interact with physical environments, possibly with humans in the loop. These systems are often distributed with sensors and actuators, which monitor and control physical processes, usually with feedback loops where physical processes affect computations and vice-versa [1]. Recently, CPSs are gathering momentum and attracting massive attention from the research communities and large investment from industry [2]. The emerging applications of CPSs can be found in a number of large-scale and safety-critical domains, making it crucial to ensure that they operate safely without causing harm to people and the environment. Application areas include healthcare, automotive, manufacturing, industry automation, and critical infrastructure such as, electric power, energy, and water resources, so CPSs design should be robust enough to deal with unexpected conditions and, at the same time, flexible to answer to the high scalability and complexity of systems. Due to the critical nature of their applications and the tight time-to-market constraints, the verification of the CPSs design becomes an important issue in order to ensure the correctness of these systems.