当前位置: X-MOL 学术Aut. Control Comp. Sci. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
The Automation of C Program Verification by the Symbolic Method of Loop Invariant Elimination
Automatic Control and Computer Sciences Pub Date : 2020-03-04 , DOI: 10.3103/s0146411619070101
D. A. Kondratyev , I. V. Maryasov , V. A. Nepomniaschy

Abstract

In the deductive verification of programs written in the imperative programming languages, the generation and proving of the verification conditions corresponding to loops are of particular complexity, as each of them must be provided with an invariant, whose construction is often a challenge. As a rule, the methods for the synthesis of loop invariants have a heuristic character, which complicates their application. An alternative is the symbolic loop invariant elimination method proposed by V.A. Nepomniaschy in 2005. Its idea is to represent a loop body in the form of a special replacement operation under certain constraints. Such an operation in the symbolic form expresses the loop effect, which allows introducing an inference rule for the loops without invariants into axiomatic semantics. This work is the further development of this method. It extends the proposed method of mixed axiomatic semantics for the verification of C-light programs. This extension incorporates the method for the verification of iterations over changeable arrays with the possible exit from the loop body in C-light programs. The method contains the inference rule for iterations without loop invariants. This rule has been implemented in the verification condition generator, which is a part of the automated system for the verification of C-light programs. To perform automated verification in the used ACL2 system, two algorithms, one of which generates the replacement operation in the ACL2 language, and the second generates the auxiliary lemmas resulting in the successful automated proof of the obtained verification conditions in the ACL2 system have been developed and implemented. The application of the above mentioned methods and algorithms is illustrated with an example.


中文翻译:

循环不变消除符号方法的C程序验证自动化

摘要

在用命令式编程语言编写的程序的演绎验证中,对应于循环的验证条件的生成和证明特别复杂,因为每个循环都必须提供一个不变式,其构造通常是一个挑战。通常,用于合成循环不变式的方法具有试探性,这使它们的应用变得复杂。一种替代方法是VA Nepomniaschy在2005年提出的符号循环不变式消除方法。其思想是在特定约束下以特殊替换操作的形式表示循环体。这样的符号形式的操作表达了循环效果,这允许将没有不变的循环的推理规则引入公理语义中。这项工作是该方法的进一步发展。它扩展了提出的混合公理语义的方法,用于验证C-light程序。此扩展合并了用于验证可变数组上的迭代的方法,并可能退出C-light程序中的循环主体。该方法包含无循环不变性的迭代推理规则。该规则已在验证条件生成器中实现,该条件生成器是用于C-light程序验证的自动化系统的一部分。为了在使用过的ACL2系统中执行自动验证,已经开发了两种算法,其中一种算法以ACL2语言生成替换操作,第二种算法生成辅助引理,从而成功地自动证明了ACL2系统中获得的验证条件。并实施。
更新日期:2020-03-04
down
wechat
bug