🤖 AI Summary
Numerical solvers for nonlinear hyperbolic PDEs often suffer from spurious shocks, instability, violation of conservation laws, or convergence to nonphysical solutions.
Method: We propose the first end-to-end formal verification framework for such solvers, built on Racket metaprogramming and a custom theorem prover. It integrates symbolic automatic differentiation with floating-point algebra-aware modeling, enabling user-defined physical models and automatic generation of mathematically verified C code.
Contribution/Results: The framework formally verifies L² stability, flux conservation, and physical validity, and has been integrated into the Gkeyll multiphysics platform. Experiments demonstrate that the generated solvers achieve both high performance and physical fidelity in strongly nonlinear regimes—including shock waves and turbulence—while providing, for the first time, full formal correctness guarantees from high-order algorithm specification to executable code.
📝 Abstract
First-order systems of hyperbolic partial differential equations (PDEs) occur ubiquitously throughout computational physics, commonly used in simulations of fluid turbulence, shock waves, electromagnetic interactions, and even general relativistic phenomena. Such equations are often challenging to solve numerically in the non-linear case, due to their tendency to form discontinuities even for smooth initial data, which can cause numerical algorithms to become unstable, violate conservation laws, or converge to physically incorrect solutions. In this paper, we introduce a new formal verification pipeline for such algorithms in Racket, which allows a user to construct a bespoke hyperbolic PDE solver for a specified equation system, generate low-level C code which verifiably implements that solver, and then produce formal proofs of various mathematical and physical correctness properties of the resulting implementation, including L^2 stability, flux conservation, and physical validity. We outline how these correctness proofs are generated, using a custom-built theorem-proving and automatic differentiation framework that fully respects the algebraic structure of floating-point arithmetic, and show how the resulting C code may either be used to run standalone simulations, or integrated into a larger computational multiphysics framework such as Gkeyll.