Our goal is the verification of C programs at the source code level using formal proof tools. Programs are specified using
annotations such as pre- and post-conditions and global invariants. An original approach is presented which allows to formally
prove that a function implementation satisfies its specification and is free of null pointer dereferencing and out-of-bounds
array access. The method is not bound to a particular back-end theorem prover. A significant part of the ANSI C language is
supported, including pointer arithmetic and possible pointer aliasing. We describe a prototype tool and give some experimental
results.
Keywords C programming language - Hoare logic - pointer programs - formal verification and proof