|
This article is cited in 2 scientific papers (total in 2 papers)
Program Verification
The automation of C program verification by symbolic method of loop invariants elimination
D. A. Kondratyev, I. V. Maryasov, V. A. Nepomnyaschy A.P. Ershov Institute of Informatics Systems SB RAS,
6 Akademik Lavrentyev av., Novosibirsk 630090, Russia
Abstract:
During deductive verification of programs written in imperative languages, the generation and proof of verification conditions corresponding to loops can cause difficulties, because each one must be provided with an invariant whose construction is often a challenge. As a rule, the methods of invariant synthesis are heuristic ones. This impedes its application. An alternative is the symbolic method of loop invariant elimination suggested by V.A. Nepomniaschy in 2005. Its idea is to represent a loop body in a form of special replacement operation under certain constraints. This operation expresses loop effect in a symbolic form and allows to introduce an inference rule which uses no invariants in axiomatic semantics. This work represents the further development of this method. It extends the mixed axiomatic semantics method suggested for C-light program verification. This extension includes the verification method of iterations over changeable arrays possibly with loop exit in C-light programs. The method contains the inference rule for iterations without loop invariants. This rule was implemented in verification conditions generator which is a part of the automated system of C-light program verification. To prove verification conditions automatically in ACL2, two algorithms were developed and implemented. The first one automatically generates the replacement operation in ACL2 language, the second one automatically generates auxiliary lemmas which allow to prove the obtained verification conditions in ACL2 successfully in automatic mode. An example which illustrates the application of the mentioned methods is described.
Keywords:
C-light, loop invariants, mixed axiomatic semantics, definite iteration, arrays, ACL2, specification, verification, Hoare logic.
Received: 10.09.2018
Citation:
D. A. Kondratyev, I. V. Maryasov, V. A. Nepomnyaschy, “The automation of C program verification by symbolic method of loop invariants elimination”, Model. Anal. Inform. Sist., 25:5 (2018), 491–505
Linking options:
https://www.mathnet.ru/eng/mais644 https://www.mathnet.ru/eng/mais/v25/i5/p491
|
|