Automation of C Program Deductive Verification without Using Loop Invariants

Automation of C program verification is an important problem in modern software development. To solve this problem, the solution of the following problems must be automated: loop invariants, proof of verification conditions, and localization of errors in the case of invalid verification conditions....

Celý popis

Uložené v:
Podrobná bibliografia
Vydané v:Programming and computer software Ročník 48; číslo 5; s. 331 - 346
Hlavní autori: Kondratyev, D. A., Nepomniaschy, V. A.
Médium: Journal Article
Jazyk:English
Vydavateľské údaje: Moscow Pleiades Publishing 01.10.2022
Springer Nature B.V
Predmet:
ISSN:0361-7688, 1608-3261
On-line prístup:Získať plný text
Tagy: Pridať tag
Žiadne tagy, Buďte prvý, kto otaguje tento záznam!
Popis
Shrnutí:Automation of C program verification is an important problem in modern software development. To solve this problem, the solution of the following problems must be automated: loop invariants, proof of verification conditions, and localization of errors in the case of invalid verification conditions. To this end, the C-lightVer system is under development in the Ershov Institute of Informatics Systems of the Siberian Branch of the Russian Academy of Sciences. This system uses an integrated approach to the automated deductive verification of C programs. This approach includes a symbolic method of verification of definite iterations for eliminating loop invariants, strategies for proving verification conditions, and a method for error localization. The symbolic method of verification of definite iterations is based on replacing the action of certain loops by the application of a special recursive function rep. The error localization method is based on matching the verification conditions to the source code and on generation of a report about the correspondence between the verification conditions and program fragments. Thus, the problem of automation of verification of C programs containing nested loops naturally arises. The application of the symbolic method of verification of definite iterations for such programs leads to a composition of the functions rep for outer and inner loops. A novel result obtained in this paper is a strategy of automation of proof of verification conditions for such programs. This strategy is based on induction on the index of iteration in the outer loop. To prove the induction step, another result obtained in this paper is used. This is a strategy for programs the specification of which contains functions with the concatenation property. The paper also describes strategies of error localization and modifications of the error localization method for the case of nested loops. These strategies are also used for verifying the loop properties that may indicate the presence of errors. As an example of applying the results obtained in this paper, automatic verification of insertion sort without loop invariants is considered.
Bibliografia:ObjectType-Article-1
SourceType-Scholarly Journals-1
ObjectType-Feature-2
content type line 14
ISSN:0361-7688
1608-3261
DOI:10.1134/S036176882205005X