Abstract
The C-light is a project aimed onto deductive verification of C programs. It relies on three basic ideas, namely—metageneration of verification conditions (MetaVCG), semantic mark-up and the symbolic method, two-level verification that uses C-light language as a front-end and C-kernel language as a back-end. The semantic mark-up extends the standard Hoare inference rules by semantic labels for explanations of failed verification conditions. The symbolic method is based on a replacement of each for-loop by a single assignment with a cumulative effect, it allows us to avoid explicit invariant generation. However, to make verification efficient, it is necessary to develop new techniques instead of the replacement. These new techniques for verification of linear algebra programs is presented and explained in this article.
This research was in part supported by RFBR (grant No. 15-01-05974 and grant No. 17-01-00789).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Apt, K.R., de Boer, F.S., Olderog, E.R.: Verification of sequential and concurrent programs, p. 450. Springer, London (1991). https://doi.org/10.1007/978-1-84882-745-5
Cohen, E., et al.: VCC: a practical system for verifying concurrent C. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 23–42. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-03359-9_2
Denney, E., Fischer, B.: Explaining verification conditions. In: Meseguer, J., Roşu, G. (eds.) AMAST 2008. LNCS, vol. 5140, pp. 145–159. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-79980-1_12
Filliâtre, J.-C., Marché, C.: Multi-prover verification of C programs. In: Davies, J., Schulte, W., Barnett, M. (eds.) ICFEM 2004. LNCS, vol. 3308, pp. 15–29. Springer, Heidelberg (2004). https://doi.org/10.1007/978-3-540-30482-1_10
Fraer, R.: Tracing the origins of verification conditions. In: Wirsing, M., Nivat, M. (eds.) AMAST 1996. LNCS, vol. 1101, pp. 241–255. Springer, Heidelberg (1996). https://doi.org/10.1007/BFb0014320
Kondratyev D.A.: The extension of the MetaVCG approach by semantic mark-up concept. In: Proceedings of the International Workshop Conferences on Tools & Methods of Program Analysis, St. Petersburg, pp. 107–118 (2015). (in Russian)
Leino, K.R.M., Millstein, T., Saxe, J.B.: Generating error traces from verification condition counterexamples. Sci. Comput. Program. 55(1–3), 209–226 (2005)
Maryasov, I.V., Nepomniaschy, V.A.: Loop invariants elimination for definite iterations over unchangeable data structures in C programs. Model. Anal. Inf. Syst. 22(6), 773–782 (2015)
Moriconi, M., Schwartz, R.L.: Automatic construction of verification condition generators from Hoare logics. In: Even, S., Kariv, O. (eds.) ICALP 1981. LNCS, vol. 115, pp. 363–377. Springer, Heidelberg (1981). https://doi.org/10.1007/3-540-10843-2_30
Nepomniaschy, V.A.: Symbolic method of verification of definite iterations over altered data structures. Program. Comput. Softw. 31(1), 1–9 (2005)
Nepomniaschy, V.A., Anureev, I.S., Promsky, A.V.: Towards verification of C programs: axiomatic semantics of the C-kernel languages. Program. Comput. Softw. 29(6), 338–350 (2003)
Nepomniaschy, V.A., Anureev, I.S., Mikhailov, I.N., Promsky, A.V.: Towards verification of C programs. C-light language and its formal semantics. Program. Comput. Softw. 28(6), 314–323 (2002)
Nepomniaschy, V.A., Anureev, I.S., Mikhailov, I.N., Promsky, A.V.: Verification-oriented language C-light. In: System Informatics: Scientific Transactions/RAS. Siberian branch. Institute of Informatics Systems, vol. 9, pp. 51–134 (2004)
Nepomniaschy, V.A., Ryakin, O.M.: Applied methods of program verification. In: Radio and Communication, 256 p. Moscow (1988). (in Russian)
Nepomniaschy, V.A., Sulimov, A.A.: Problem-oriented verification system and its application to linear algebra programs. Theor. Comput. Sci. 119(1), 173–185 (1993)
Nepomniaschy, V.A., Sulimov, A.A.: Verification of the linear algebra programs in the system SPECTRUM. Cybern. Syst. Anal. 28(5), 766–774 (1992)
Owre, S., Rushby, J.M., Shankar, N.: PVS: a prototype verification system. In: Kapur, D. (ed.) CADE 1992. LNCS, vol. 607, pp. 748–752. Springer, Heidelberg (1992). https://doi.org/10.1007/3-540-55602-8_217
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG
About this paper
Cite this paper
Kondratyev, D. (2018). Implementing the Symbolic Method of Verification in the C-Light Project. In: Petrenko, A., Voronkov, A. (eds) Perspectives of System Informatics. PSI 2017. Lecture Notes in Computer Science(), vol 10742. Springer, Cham. https://doi.org/10.1007/978-3-319-74313-4_17
Download citation
DOI: https://doi.org/10.1007/978-3-319-74313-4_17
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-74312-7
Online ISBN: 978-3-319-74313-4
eBook Packages: Computer ScienceComputer Science (R0)