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. The first five people are from the Radboud University in The Netherlands. The first two people are the developers, while the other six are advising. The C programming language [8] is one of the most popular in the world. It is among the two currently most popular languages [9, 13] , and is a dominant language from the smallest microcontroller with only a few hundred bytes of RAM to the largest supercomputer that runs at petaflops speeds. C is especially used for embedded software, but it is also the native language of most modern operating systems due to its tight connection to Unix. The current official description of the syntax and semantics of the C language -the C99 standard [5] , issued by ANSI and ISO together -is written in English and does not use a mathematically precise formalism. This makes it inherently
The Formalin project REF is another formalization of the C language.
A Formalization of the C99 Standard in HOL, Isabelle and Coq
Calculemus/MKM
Computer Science