Skip to main content

Online Teaching of Verification of C Programs in Applied Computer Science

  • Conference paper
  • First Online:
Formal Methods Teaching (FMTea 2021)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 13122))

Included in the following conference series:

Abstract

This is a report on teaching formal methods in the form of program verification for Master students in an applied computer science setting. The course was taught fully online, using recorded videos, synchronous sessions, the learning management system Moodle (https://moodle.org/), a distributed version control system and mostly biweekly graded practical assignments.

The first objective was to use the C language. It is a very relevant language in the sectors where verification is used in industry. The students already know the language, it also has interesting properties which can make verification challenging and shows the importance of edge cases in verification. The second objective was to teach the use of mature, industrial-strength tools in order to make the skills transferable to the later work situation of the students. This required tools that are actually used in industry to analyze C programs. The third objective was to introduce different verification approaches and to show the strengths and potential limitations of each. The selected approaches were deductive verification, abstract interpretation and model checking.

To achieve these goals, Frama-C with its WP and EVA plugin, the model checker CBMC and the Z3 SMT solver were selected. Because of the applied setting it was desired to use examples which did not require the use of interactive theorem proving for deductive verification.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 44.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 59.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    https://classroom.github.com.

  2. 2.

    https://rocket.chat/.

  3. 3.

    https://jitsi.org/.

  4. 4.

    https://en.wikipedia.org/wiki/Fast_inverse_square_root.

  5. 5.

    https://github.com/id-Software/Quake-III-Arena/blob/master/code/game/q_math.c.

  6. 6.

    https://guedemann.org/downloads/Evaluierung_Programmverifikation.pdf.

  7. 7.

    https://github.com/sukrutrao/IntervalAI.

References

  1. Barrett, C., et al.: CVC4. In: Gopalakrishnan, G., Qadeer, S. (eds.) CAV 2011. LNCS, vol. 6806, pp. 171–177. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22110-1_14

    Chapter  Google Scholar 

  2. Baudin, P., Filliâtre, J.C., Marché, C., Monate, B., Moy, Y., Prevosto, V.: ACSL: ANSI C specification language. CEA-LIST, Saclay, France, Technical report v1 2 (2008)

    Google Scholar 

  3. Blanchard, A.: Introduction to C program proof with Frama-C and its WP plug-in. https://allan-blanchard.fr/frama-c-wp-tutorial.html

  4. Bühler, D.: EVA, an evolved value analysis for Frama-C: structuring an abstract interpreter through value and state abstractions. Ph.D. thesis, Rennes 1 (2017)

    Google Scholar 

  5. Bühler, D., et al.: Eva-the evolved value analysis plug-in. https://frama-c.com/download/frama-c-eva-manual.pdf

  6. Burghardt, J., Gerlach, J., Hartig, K., Pohl, H., Soto, J.: ACSL by example. DEVICE-SOFT project publication. Fraunhofer FIRST Institute (2010)

    Google Scholar 

  7. Clarke, E.M.: The birth of model checking. In: Grumberg, O., Veith, H. (eds.) 25 Years of Model Checking. LNCS, vol. 5000, pp. 1–26. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-69850-0_1

    Chapter  Google Scholar 

  8. de Moura, L., Bjørner, N.: Z3: an efficient SMT solver. In: Ramakrishnan, C.R., Rehof, J. (eds.) TACAS 2008. LNCS, vol. 4963, pp. 337–340. Springer, Heidelberg (2008). https://doi.org/10.1007/978-3-540-78800-3_24

    Chapter  Google Scholar 

  9. Filliâtre, J.C., Paskevich, A.: Why3 – where programs meet provers. In: Felleisen, M., Gardner, P. (eds.) Programming Languages and Systems, pp. 125–128. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  10. Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-C: a software analysis perspective. Formal Aspects Comput. 27(3), 573–609 (2015)

    Article  MathSciNet  Google Scholar 

  11. Kroening, D., Tautschnig, M.: CBMC – C bounded model checker. In: Ábrahám, E., Havelund, K. (eds.) TACAS 2014. LNCS, vol. 8413, pp. 389–391. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-642-54862-8_26

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Matthias Güdemann .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2021 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Güdemann, M. (2021). Online Teaching of Verification of C Programs in Applied Computer Science. In: Ferreira, J.F., Mendes, A., Menghi, C. (eds) Formal Methods Teaching. FMTea 2021. Lecture Notes in Computer Science(), vol 13122. Springer, Cham. https://doi.org/10.1007/978-3-030-91550-6_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-91550-6_2

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-91549-0

  • Online ISBN: 978-3-030-91550-6

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics