Skip to main content

A Formalization of the C99 Standard in HOL, Isabelle and Coq

  • Conference paper
Intelligent Computer Mathematics (CICM 2011)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 6824))

Included in the following conference series:

Abstract

We recently started the Formalin project to create a formal version of the C99 standard for the C programming language. We are writing three matching formalizations for the interactive theorem provers HOL4, Isabelle/HOL and Coq, that all closely follow the existing C99 standard text. The project runs from 2011 to 2015, and involves a full time PhD student, a half time researcher and several scientific advisors.

The project differs from existing work in that our aim is to formalize the full C99 standard. This means that we treat the C preprocessor, the C standard library, floating point arithmetic, and ‘dirty’ C features like signal handling and volatile variables. Importantly, this means we also treat embedded C programs without explicit input/output.

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 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.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

References

  1. Bessey, A., et al.: A few billion lines of code later: using static analysis to find bugs in the real world. Communications of the ACM 53(2), 66–75 (2010)

    Article  Google Scholar 

  2. Blazy, S., Leroy, X.: Mechanized semantics for the Clight subset of the C language. Journal of Automated Reasoning 43(3), 263–288 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  3. 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)

    Chapter  Google Scholar 

  4. Coq Development Team. The Coq Proof Assistant Reference Manual (2010)

    Google Scholar 

  5. International Organization for Standardization. ISO/IEC 9899: Programming languages – C. ISO Working Group 14 (1999), Draft standard WG14/N1256, the combined C99 + TC1 + TC2 + TC3 (September 7, 2007)

    Google Scholar 

  6. Foundations Group of the ICIS. Research/MathWiki, http://www.fnds.cs.ru.nl/fndswiki/Research/MathWiki

  7. Gordon, M., Melham, T. (eds.): Introduction to HOL. Cambridge University Press, Cambridge (1993)

    Google Scholar 

  8. Kernighan, B.W., Ritchie, D.M.: The C Programming Language, 2nd edn. Prentice Hall, Englewood Cliffs (1988)

    MATH  Google Scholar 

  9. LangPop.com. Programming Language Popularity, http://langpop.com/

  10. Moy, Y., Marché, C.: Jessie Plugin Tutorial, Beryllium version. INRIA (2009)

    Google Scholar 

  11. Nipkow, T., Paulson, L., Wenzel, M. (eds.): Isabelle/HOL — A Proof Assistant for Higher-Order Logic. LNCS, vol. 2283. Springer, Heidelberg (2002)

    MATH  Google Scholar 

  12. Sewell, P., et al.: Ott: Effective tool support for the working semanticist. Journal of Functional Programming 20(1), 70–122 (2010)

    Article  MATH  Google Scholar 

  13. TIOBE Software. TIOBE Programming Community index, http://www.tiobe.com/content/paperinfo/tpci/

  14. Wiedijk, F.: Formalizing the C99 standard in HOL, Isabelle and Coq (2010), http://www.cs.ru.nl/~freek/notes/ch2o.pdf

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Krebbers, R., Wiedijk, F. (2011). A Formalization of the C99 Standard in HOL, Isabelle and Coq. In: Davenport, J.H., Farmer, W.M., Urban, J., Rabe, F. (eds) Intelligent Computer Mathematics. CICM 2011. Lecture Notes in Computer Science(), vol 6824. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-22673-1_28

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-22673-1_28

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-22672-4

  • Online ISBN: 978-3-642-22673-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics