当前位置: X-MOL 学术IEEE Trans. Reliab. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Hierarchical Analysis of Loops With Relaxed Abstract Transformers
IEEE Transactions on Reliability ( IF 5.0 ) Pub Date : 2020-03-01 , DOI: 10.1109/tr.2019.2925037
Banghu Yin , Liqian Chen , Jiangchao Liu , Ji Wang

Numerical computation is often involved in software of embedded control systems, cyber-physical systems, artificial neural network systems, big data processing systems, etc. Automatically discovering numerical loop invariants is fundamental for checking the safety of such software. Abstract interpretation provides a framework to automatically discover sound invariants but which may be not precise enough due to over-approximations. One major source of precision loss is due to the limited linear expressiveness of most widely used numerical abstract domains and the widening operation. This becomes more serious when analyzing all variables simultaneously as a whole for programs that involve nonlinear behaviors. Based on the observation that the dependency among variables in a loop can be hierarchical, in this article, we propose a hierarchical static analysis to analyze a loop by utilizing relaxed abstract transformers. The main idea is to first partition all variables involved in a loop into different hierarchical layers, then compute invariants over the variables layer by layer in a bottom-up manner. During the iterative process, the computed invariants over lower layer variables are then used to relax transfer functions when analyzing the higher layer variables. One benefit of our method lies in that it can generate linear invariants to soundly enclose nonlinear behaviors in a loop. Finally, we present encouraging experimental results on benchmark programs involving nonlinear behaviors.

中文翻译:

具有松弛抽象变换器的循环的层次分析

数值计算经常涉及到嵌入式控制系统、信息物理系统、人工神经网络系统、大数据处理系统等软件中。自动发现数值循环不变量是检查此类软件安全性的基础。抽象解释提供了一个框架来自动发现声音不变量,但由于过度近似,它可能不够精确。精度损失的一个主要来源是由于最广泛使用的数值抽象域和加宽操作的线性表达能力有限。对于涉及非线性行为的程序,当将所有变量作为一个整体同时分析时,这会变得更加严重。基于观察到循环中变量之间的依赖可以是分层的,在本文中,我们提出了一种分层静态分析,通过使用宽松的抽象转换器来分析循环。主要思想是首先将循环中涉及的所有变量划分为不同的层次,然后以自底向上的方式逐层计算变量的不变量。在迭代过程中,在分析高层变量时,计算出的低层变量的不变量然后被用来放松传递函数。我们方法的一个好处在于它可以生成线性不变量以将非线性行为完美地包含在一个循环中。最后,我们在涉及非线性行为的基准程序上展示了令人鼓舞的实验结果。然后以自下而上的方式逐层计算变量上的不变量。在迭代过程中,在分析高层变量时,计算出的低层变量的不变量然后被用来放松传递函数。我们方法的一个好处在于它可以生成线性不变量以将非线性行为完美地包含在一个循环中。最后,我们在涉及非线性行为的基准程序上展示了令人鼓舞的实验结果。然后以自下而上的方式逐层计算变量上的不变量。在迭代过程中,在分析高层变量时,计算出的低层变量的不变量然后被用来放松传递函数。我们方法的一个好处在于它可以生成线性不变量以将非线性行为完美地包含在一个循环中。最后,我们在涉及非线性行为的基准程序上展示了令人鼓舞的实验结果。
更新日期:2020-03-01
down
wechat
bug