The development of embedded systems requires formal analysis of models such as those described with MATLAB/Simulink. However, the increasing complexity of industrial models makes analysis difficult. This paper proposes a model checking method for Simulink models using SMT solvers. The proposed method aims at (1) automated, efficient and comprehensible verification of complex models, (2) numerically accurate analysis of models, and (3) demonstrating the analysis of Simulink models using an SMT solver (we use Z3). It first encodes a target model into a predicate logic formula in the domain of mathematical arithmetic and bit vectors. We explore how to encode various Simulink blocks exactly. Then, the method verifies a given invariance property using the k-induction-based algorithm that extracts a subsystem involving the target block and unrolls the execution paths incrementally. In the experiment, we applied the proposed method and other tools to a set of models and properties. Our method successfully verified most of the properties including those unverified with other tools.
翻译:开发嵌入系统需要对模型进行正式分析,例如与 MATLAB/Siminglink 描述的模型。然而,工业模型日益复杂,因此难以进行分析。本文件提议使用SMT 解答器对模拟链接模型采用示范检查方法。拟议方法旨在(1) 对复杂模型进行自动化、高效和易懂的核查,(2) 对模型进行数字精确的分析,(3) 使用SMT 解答器对模拟模型进行分析(我们使用Z3)。首先,将目标模型编码成数学和位量矢量领域的上游逻辑公式。我们探索了如何准确编码各种模拟链接块。然后,该方法利用基于 kiminglink 的算法核实给定的变量属性,该算法将提取目标区块的子,并逐步释放执行路径。在实验中,我们将拟议方法和其他工具应用于一套模型和属性。我们的方法成功地验证了大多数属性,包括未与其他工具核对的属性。