The Picard Algorithm for Ordinary Differential Equations in Coq

Ordinary Differential Equations (ODEs) are ubiquitous in physical applications of mathematics. The Picard-Lindelof theorem is the first fundamental theorem in the theory of ODEs. It allows one to solve differential equations numerically. We provide a constructive development of the Picard-Lindelof theorem which includes a program together with sufficient conditions for its correctness. The proof/program is written in the Coq proof assistant and uses the implementation of efficient real numbers from the CoRN library and the MathClasses library. Our proof makes heavy use of operators and functionals, functions on spaces of functions. This is faithful to the usual mathematical description, but a novel level of abstraction for certified exact real computation.

[1]  Guillaume Melquiond,et al.  Journal of Automated Reasoning manuscript No. (will be inserted by the editor) Wave Equation Numerical Resolution: a Comprehensive Mechanized Proof of a C Program , 2022 .

[2]  Brian Campbell,et al.  An Executable Semantics for CompCert C , 2012, CPP.

[3]  Guillaume Melquiond,et al.  Formal Proof of a Wave Equation Resolution Scheme: The Method Error , 2010, ITP.

[4]  Russell O'Connor,et al.  Certified Exact Transcendental Real Number Computation in Coq , 2008, TPHOLs.

[5]  David Aspinall,et al.  Formalising Java's Data Race Free Guarantee , 2007, TPHOLs.

[6]  Bas Spitters,et al.  Type classes for efficient exact real arithmetic in Coq , 2011, Log. Methods Comput. Sci..

[7]  Johannes Hölzl,et al.  Numerical Analysis of Ordinary Differential Equations in Isabelle/HOL , 2012, ITP.

[8]  Thierry Coquand,et al.  A constructive proof of Simpson's Rule , 2012, J. Log. Anal..

[9]  Mark Bridger Real Analysis: A Constructive Approach , 2006 .

[10]  Herman Geuvers,et al.  C-CoRN, the Constructive Coq Repository at Nijmegen , 2004, MKM.

[11]  Bas Spitters,et al.  A computer-verified monadic functional implementation of the integral , 2008, Theor. Comput. Sci..

[12]  Bas Spitters,et al.  Type classes for mathematics in type theory† , 2011, Mathematical Structures in Computer Science.

[13]  Derek Dreyer,et al.  How to make ad hoc proof automation less ad hoc , 2011, ICFP '11.

[14]  Benjamin Grégoire,et al.  Full Reduction at Full Throttle , 2011, CPP.

[15]  Ioana Pasca,et al.  Formal Verification of Exact Computations Using Newton's Method , 2009, TPHOLs.