Skip to Main content Skip to Navigation

Wave Equation Numerical Resolution: a Comprehensive Mechanized Proof of a C Program

Sylvie Boldo 1, 2 Francois Clement 3 Jean-Christophe Filliâtre 1, 2 Micaela Mayero 4, 5 Guillaume Melquiond 1, 2 Pierre Weis 3
1 PROVAL - Proof of Programs
UP11 - Université Paris-Sud - Paris 11, Inria Saclay - Ile de France, CNRS - Centre National de la Recherche Scientifique : UMR
5 ARENAIRE - Computer arithmetic
Inria Grenoble - Rhône-Alpes, LIP - Laboratoire de l'Informatique du Parallélisme
Abstract : We formally prove correct a C program that implements a numerical scheme for the resolution of the one-dimensional acoustic wave equation. Such an implementation introduces errors at several levels: the numerical scheme introduces method errors, and floating-point computations lead to round-off errors. We annotate this C program to specify both method error and round-off error. We use Frama-C to generate theorems that guarantee the soundness of the code. We discharge these theorems using SMT solvers, Gappa, and Coq. This involves a large Coq development to prove the adequacy of the C program to the numerical scheme and to bound errors. To our knowledge, this is the first time such a numerical analysis program is fully machine-checked.
Complete list of metadatas
Contributor : Francois Clement <>
Submitted on : Tuesday, May 15, 2012 - 4:12:27 PM
Last modification on : Monday, November 16, 2020 - 1:06:03 PM
Long-term archiving on: : Thursday, December 15, 2016 - 9:01:59 AM


Files produced by the author(s)


  • HAL Id : hal-00649240, version 2
  • ARXIV : 1112.1795



Sylvie Boldo, Francois Clement, Jean-Christophe Filliâtre, Micaela Mayero, Guillaume Melquiond, et al.. Wave Equation Numerical Resolution: a Comprehensive Mechanized Proof of a C Program. [Research Report] RR-7826, 2011, pp.32. ⟨hal-00649240v2⟩



Record views


Files downloads