Skip to main content

Deductive Functional Verification of Safety-Critical Embedded C-Code: An Experience Report

Part of the Lecture Notes in Computer Science book series (LNPSE,volume 10471)

Abstract

This paper summarizes our experiences from an exercise in deductive verification of functional properties of automotive embedded C-code in an industrial setting. We propose a formal requirements model that supports the way C-code requirements are currently written at Scania. We describe our work, for a safety-critical module of an embedded system, on formalizing its functional requirements and verifying its C-code implementation by means of VCC, an established tool for deductive verification. We describe the obstacles we encountered, and discuss the automation of the specification and annotation effort as a prerequisite for integrating this technology into the embedded software design process.

Work partially funded by Vinnova within the KLOSS AkUt initiative, which sent academics out to Industry one day a week for half a year during 2015/2016.

This is a preview of subscription content, access via your institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • DOI: 10.1007/978-3-319-67113-0_1
  • Chapter length: 16 pages
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
eBook
USD   54.99
Price excludes VAT (USA)
  • ISBN: 978-3-319-67113-0
  • Instant PDF download
  • Readable on all devices
  • Own it forever
  • Exclusive offer for individuals only
  • Tax calculation will be finalised during checkout
Softcover Book
USD   69.99
Price excludes VAT (USA)
Fig. 1.
Fig. 2.
Fig. 3.
Fig. 4.
Fig. 5.

Notes

  1. 1.

    See github.com/Microsoft/vcc.

References

  1. Allocation Element Requirement AE417 Dual-Circuit Steering. Scania Technical Product Data (2015)

    Google Scholar 

  2. Alkassar, E., Hillebrand, M.A., Paul, W., Petrova, E.: Automated verification of a small hypervisor. In: Leavens, G.T., O’Hearn, P., Rajamani, S.K. (eds.) VSTTE 2010. LNCS, vol. 6217, pp. 40–54. Springer, Heidelberg (2010). doi:10.1007/978-3-642-15057-9_3

    CrossRef  Google Scholar 

  3. Baumann, C., Beckert, B., Blasum, H., Bormer, T.: Formal verification of a microkernel used in dependable software systems. In: Buth, B., Rabe, G., Seyfarth, T. (eds.) SAFECOMP 2009. LNCS, vol. 5775, pp. 187–200. Springer, Heidelberg (2009). doi:10.1007/978-3-642-04468-7_16

    CrossRef  Google Scholar 

  4. Cohen, E.: Modular verification of hybrid system code with VCC. CoRR abs/1403.3611 (2014)

    Google Scholar 

  5. Cohen, E., Dahlweid, M., Hillebrand, M., Leinenbach, D., Moskal, M., Santen, T., Schulte, W., Tobies, S.: 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). doi:10.1007/978-3-642-03359-9_2

    CrossRef  Google Scholar 

  6. Cohen, E., Moskal, M., Schulte, W., Tobies, S.: A practical verification methodology for concurrent programs. Technical report MSR-TR-2009-15, Microsoft Research, February 2009

    Google Scholar 

  7. Cohen, E., Moskal, M., Schulte, W., Tobies, S.: A precise yet efficient memory model for C. In: Workshop on Systems Software Verification (SSV 2009). Electronic Notes in Theoretical Computer Science, vol. 254, pp. 85–103. Elsevier (2009)

    Google Scholar 

  8. Cuoq, P., Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-C. In: Eleftherakis, G., Hinchey, M., Holcombe, M. (eds.) SEFM 2012. LNCS, vol. 7504, pp. 233–247. Springer, Heidelberg (2012). doi:10.1007/978-3-642-33826-7_16

    CrossRef  Google Scholar 

  9. Dordowsky, F.: An experimental study using ACSL and Frama-C to formulate and verify low-level requirements from a DO-178C compliant avionics project. In: Formal Integrated Development Environment (F-IDE 2015), pp. 28–41 (2015)

    Google Scholar 

  10. Eriksson, J.: Formal Requirement Models for Automotive Embedded Systems. Master’s thesis, KTH Royal Institute of Technology, School of Computer Science and Communication (2016)

    Google Scholar 

  11. Gordon, M., Collavizza, H.: Forward with Hoare. In: Roscoe, A., Jones, C., Wood, K. (eds) Reflections on the Work of C.A.R. Hoare, pp. 101–121. Springer, London (2010). doi:10.1007/978-1-84882-912-1_5

  12. Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969)

    CrossRef  MATH  Google Scholar 

  13. Lidström, C.: Verification of Functional Requirements of Embedded Automotive C Code. Master’s thesis, KTH Royal Institute of Technology, School of Computer Science and Communication (2016)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Christian Lidström .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and Permissions

Copyright information

© 2017 Springer International Publishing AG

About this paper

Cite this paper

Gurov, D., Lidström, C., Nyberg, M., Westman, J. (2017). Deductive Functional Verification of Safety-Critical Embedded C-Code: An Experience Report. In: Petrucci, L., Seceleanu, C., Cavalcanti, A. (eds) Critical Systems: Formal Methods and Automated Verification. AVoCS FMICS 2017 2017. Lecture Notes in Computer Science(), vol 10471. Springer, Cham. https://doi.org/10.1007/978-3-319-67113-0_1

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-67113-0_1

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-67112-3

  • Online ISBN: 978-3-319-67113-0

  • eBook Packages: Computer ScienceComputer Science (R0)