Trusting computations: A mechanized proof from partial differential equations to actual program

Research output: Contribution to journalArticlepeer-review

Abstract

Computer programs may go wrong due to exceptional behaviors, out-of-bound array accesses, or simply coding errors. Thus, they cannot be blindly trusted. Scientific computing programs make no exception in that respect, and even bring specific accuracy issues due to their massive use of floating-point computations. Yet, it is uncommon to guarantee their correctness. Indeed, we had to extend existing methods and tools for proving the correct behavior of programs to verify an existing numerical analysis program. This C program implements the second-order centered finite difference explicit scheme for solving the 1D wave equation. In fact, we have gone much further as we have mechanically verified the convergence of the numerical scheme in order to get a complete formal proof covering all aspects from partial differential equations to actual numerical results. To the best of our knowledge, this is the first time such a comprehensive proof is achieved.

Original languageEnglish
Pages (from-to)325-352
Number of pages28
JournalComputers and Mathematics with Applications
Volume68
Issue number3
DOIs
Publication statusPublished - 1 Jan 2014
Externally publishedYes

Keywords

  • Acoustic wave equation
  • Convergence of numerical scheme
  • Formal proof of numerical program
  • Rounding error analysis

Fingerprint

Dive into the research topics of 'Trusting computations: A mechanized proof from partial differential equations to actual program'. Together they form a unique fingerprint.

Cite this