Program Verification in the presence of complex numbers, functions with branch cuts etc
James H. Davenport, Russell Bradford, Matthew England, David Wilson

TL;DR
This paper explores the challenges of verifying numerical programs involving complex numbers and functions with branch cuts, highlighting the gap between theoretical solutions and practical implementations.
Contribution
It identifies a class of problems bridging numerical precision and high-level mathematics verification, focusing on complex functions and their computational issues.
Findings
Complex functions like log are not continuous, complicating verification.
Verifying inverse functions and algebraic rules is more difficult than solving equations.
Theoretical solutions exist but practical implementations are still developing.
Abstract
In considering the reliability of numerical programs, it is normal to "limit our study to the semantics dealing with numerical precision" (Martel, 2005). On the other hand, there is a great deal of work on the reliability of programs that essentially ignores the numerics. The thesis of this paper is that there is a class of problems that fall between these two, which could be described as "does the low-level arithmetic implement the high-level mathematics". Many of these problems arise because mathematics, particularly the mathematics of the complex numbers, is more difficult than expected: for example the complex function log is not continuous, writing down a program to compute an inverse function is more complicated than just solving an equation, and many algebraic simplification rules are not universally valid. The good news is that these problems are theoretically capable of being…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
