Trusting computations: a mechanized proof from partial differential equations to actual program
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.
Les programmes peuvent échouer, que ce soit en raison de comportements exceptionnels, d'accès hors des bornes d'un tableau, ou simplement d'erreurs de codage. On ne peut donc pas leur faire confiance aveuglément. De ce point de vue, les programmes de calcul scientifique ne font pas exception, et ils présentent même des problèmes spécifiques de précision en raison de l'utilisation massive de calculs en virgule flottante. Cependant, leur correction est rarement garantie. En effet, nous avons dû étendre des méthodes et des outils existants pour prouver le comportement correct de programmes pour vérifier un programme d'analyse numérique existant. Ce programme C implémenté le schéma explicite aux différences finies centrées du second ordre pour la résolution de l'équation des ondes mono-dimensionnelle. En fait, nous sommes allés beaucoup plus loin puisque nous avons vérifié mécaniquement la convergence du schéma numérique pour obtenir une preuve formelle complète couvrant tous les aspects de l'équation aux dérivées partielles aux résultats numériques effectifs. À notre connaissance, c'est la première fois qu'une telle preuve complète est obtenue.
Origin | Files produced by the author(s) |
---|
Loading...