...
首页> 外文期刊>Formal Aspects of Computing >Contract-based verification of MATLAB-style matrix programs
【24h】

Contract-based verification of MATLAB-style matrix programs

机译:基于合同的MATLAB样式矩阵程序验证

获取原文
获取原文并翻译 | 示例
   

获取外文期刊封面封底 >>

       

摘要

MATLAB/Simulink is a popular toolset for developing embedded software. The main target of the toolset is numerical computing applications and the tools offer a rich language for manipulating matrices. This paper presents an approach to automatic, modular, contract-based verification of programs written in a subset of the MATLAB programming language. We focus on efficient handling of the built-in matrix manipulation functions commonly used in MATLAB. We restrict ourselves to the subset of MATLAB suitable for code generation, which means matrix types and shapes can be determined statically. We present an approach to static type and shape inference for matrices that is more strict than MATLAB, but aids verification. The type and shape information is then used in the verification. From the programs and contracts we generate verification conditions that are discharged with an off-the-shelf SMT solver. We discuss two approaches to encode matrix functions and evaluate them on a number of examples. We also investigate the use of k-induction to decrease the need for user annotations. We found our approach to be efficient for programs that manipulate relatively small matrices, which are common in embedded applications.
机译:MATLAB / Simulink是用于开发嵌入式软件的流行工具集。该工具集的主要目标是数值计算应用程序,这些工具提供了丰富的语言来处理矩阵。本文提出了一种对基于MATLAB编程语言的子集编写的程序进行自动,模块化,基于合同的验证的方法。我们专注于高效处理MATLAB中常用的内置矩阵操作函数。我们将自己局限于适用于代码生成的MATLAB子集,这意味着可以静态确定矩阵类型和形状。我们提出了一种用于矩阵的静态类型和形状推断的方法,该方法比MATLAB更严格,但有助于验证。然后在验证中使用类型和形状信息。根据计划和合同,我们生成验证条件,并由现成的SMT求解器提供。我们讨论了两种编码矩阵函数的方法,并在许多示例中对其进行了评估。我们还研究了使用k归纳法来减少用户注释的需求。我们发现,对于处理相对较小矩阵的程序(在嵌入式应用程序中很常见),我们的方法是有效的。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号