Skip to main content
Log in

Automatic C program verification based on mixed axiomatic semantics

  • Published:
Automatic Control and Computer Sciences Aims and scope Submit manuscript

Abstract

The development of the C-light project led to the application of new formalisms and method implementations that facilitate the verification of C programs. The mixed axiomatic semantics provides a choice between simplified and general inference rules of verification conditions (VC) depending on the program objects and their properties. The LLVM infrastructure greatly simplifies the implementation of the analyzer and translator of C-light programs. The semantic labeling method proposed earlier can now be safely used in verification conditions during their proving. A program from well-known verification competition is considered in order to illustrate the applicability of the system.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Gamma, E., Helm, R., Johnson, R., and Vlissides, J., Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994.

    Google Scholar 

  2. Kondratyev, D.A. and Promsky, A.V., Complex approach to error localization at C-program verification, Sist. Inform., 2013, no. 1, pp. 79–96.

    Google Scholar 

  3. Nepomnyaschy, V.A., Anureev, I.S., Mikhaylov, I.N., and Promsky, A.V., C-light language oriented on verification, in Sistemnaya informatika: Sbornik nauchnykh trudov. Vyp. 9: Formalnye metody i modeli informatiki (System Informatics: Coll. Sci. Papers. Part. 9. Formal Methods and Models of Informatics), Novosibirsk: Sibir. Otd. Ross. Akad. Nauk, 2004, pp. 51–134.

    Google Scholar 

  4. Anureev, I.S., Maryasov, I.V., and Nepomniaschy, V.A., C-programs verification based on mixed axiomatic semantics, Autom. Control Compt. Sci., 2011, vol. 45, pp. 485–500.

    Article  Google Scholar 

  5. Anureev, I., Maryasov, I., and Nepomniaschy, V., Revised mixed axiomatic semantics method of C program verification, Proc. 3rd Workshop “PSSV: Theory and Applications” Nizhni Novgorod, 2012, pp. 16–23.

    Google Scholar 

  6. Baudin, P., Cuoq, P., Filliatre, J.-C., Marché, C., Monate, B., Moy, Y., and Prevosto, V., ACSL: ANSI/ISO C Specification Language. http://frama-c.com/download/acsl-1.4.pdf

  7. Bormer, T., Brockschmidt, M., Distefano, D., Ernst, G., Filliatre, J.-C., Grigore, R., Huisman, M., Klebanov, V., Marché, C., Monahan, R., Mostowski, W., Polikarpova, N., Scheben, C., Schellhorn, G., Tofan, B., Tschannen, J., and Ulbrich, M., The COST IC0701 verification competition 2011, Revised Selected Papers of Int. Conf. FoVeOOS, Lect. Notes Compt. Sci., 2011, vol. 7421, pp. 3–21.

    Google Scholar 

  8. Cohen, E., Dahlweid, M., Hillebrand, M., Leinenbach, D., Moskal, M., Santen, T., Schulte, W., and Tobies, S., VCC: A practical system for verifying voncurrent C, Proc. 22nd Int. Conf. TPHOLs. Lect. Notes Compt. Sci., 2009, vol. 5674, pp. 23–42.

    Article  MathSciNet  Google Scholar 

  9. Detlefs, D., Nelson, G., and Saxe, J.B., Simplify: A Theorem Prover for Program Checking. HP Tech. Rep. HPL-2003-148, Palo Alto, 2003. http://www.hpl.hp.com/techreports/2003/HPL-2003-148.pdf

    Google Scholar 

  10. Filliatre, J.-C. and Marché, C., Multi-prover verification of C programs, Proc. of 6th ICFEM, Lect. Notes Compt. Sci., 2004, vol. 3308, pp. 15–29.

    Article  Google Scholar 

  11. Klebanov, V., Müller, P., Shankar, N., Leavens, G.T., Wüstholz, V., Alkassar, E., Arthan, R., Bronish, D., Chapman, R., Cohen, E., Hillebrand, M., Jacobs, B., Leino, K.R.M., Monahan, R., Piessens, F., Polikarpova, N., Ridge, T., Smans, J., Tobies, S., Tuerk, T., Ulbrich, M., and Wei, B., The 1st verified software competition: Experience report, Proc. 17th Int. Symp. on Formal Methods. Lect. Notes Compt. Sci., 2011, vol. 6664, pp. 154–168.

    Article  Google Scholar 

  12. Leino, K.R.M., Dafny: an automatic program verifier for functional correctness, Revised Selected Papers of 16th Int. Conf. LPAR-16, Lect. Notes Compt. Sci., 2010, vol. 6355, pp. 348–370.

    MathSciNet  Google Scholar 

  13. Maryasov, I.V., Nepomniaschy, V.A., Promsky, A.V., and Kondratyev, D.A., Automatic C program verification based on mixed axiomatic semantics, Proc. of 4th Workshop “PSSV: Theory and Applications”, Ekaterinburg, 2013, pp. 50–59.

    Google Scholar 

  14. Moura, L. de and Bjørner, N., Z3: An efficient SMT solver, Proc. 14th Int. Conf. on Tools and Algorithms for the Construction and Analysis of Systems (TACAS-2008), Lect. Notes Compt. Sci., 2008, vol. 4963, pp. 337–340.

    Article  Google Scholar 

  15. Nepomniaschy, V.A., Anureev, I.S., Atuchin, M.M., Maryasov, I.V., Petrov, A.A., and Promsky, A.V., C program verification in SPECTRUM multilanguage system, Autom. Control Compt. Sci., 2011, vol. 45, pp. 413–420.

    Article  Google Scholar 

  16. Promsky, A.V., A Formal Approach to the Error Localization, Preprint Sib. Branch Inst. Inform. System Russ. Acad. Sci., Novosibirsk, 2012, No. 169.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to I. V. Maryasov.

Additional information

Original Russian Text © I.V. Maryasov, V.A. Nepomnyaschy, A.V. Promsky, D.A. Kondratyev, 2013, published in Modelirovanie i Analiz Informatsionnykh Sistem, 2013, No. 6, pp. 52–63.

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Maryasov, I.V., Nepomnyaschy, V.A., Promsky, A.V. et al. Automatic C program verification based on mixed axiomatic semantics. Aut. Control Comp. Sci. 48, 407–414 (2014). https://doi.org/10.3103/S0146411614070141

Download citation

  • Received:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.3103/S0146411614070141

Keywords

Navigation