Automatic Numerical Solving for Auto-active Verification of Floating-Point Programs

Abstract

We present a new process for the verification of numerical programs with tight functional specifications that feature exact arithmetic including selected transcendental functions. The process, which simplifies, derives bounds, and safely eliminates floating-point operations from Verification Conditions (VCs) produced by Why3, is capable of automatically verifying such specifications and is implemented in our new open source tool named PropaFP. We evaluate PropaFP alongside the state-of-the-art in formal verification of floating-point programs where we find that the process is able to verify specifications that current tools are unable to verify. We also present novel branch-and-prune contractions based on linearisations of conjunctions that consist of nonlinear real inequalities with differentiable expressions. These linearisations and contractions are implemented in our new open source numerical prover named LPPaver. The contractions we have discovered are used to significantly improve the ‘pruning’ step of our branch-and-prune algorithm. We evaluate LPPaver alongside state-of-the-art automated solvers for problems involving nonlinear real arithmetic. LPPaver performs comparably and, in some cases, better than these solvers. Together, PropaFP and LPPaver yield the first fully automatically verified implementations of the sine and square root functions with tight functional specifications.

Additional Information: Copyright © Junaid Ali Rasheed, 2022. Junaid Ali Rasheed asserts his moral right to be identified as the author of this thesis. This copy of the thesis has been supplied on condition that anyone who consults it is understood to recognise that its copyright rests with its author and that no quotation from the thesis and no information derived from it may be published without appropriate permission or acknowledgement. If you have discovered material in Aston Publications Explorer which is unlawful e.g. breaches copyright, (either yours or that of a third party) or any other law, including but not limited to those relating to patent, trademark, confidentiality, data protection, obscenity, defamation, libel, then please read our Takedown Policy and contact the service immediately. Collaborator Acknowledgements: Some content, namely Chapter 4 and Sections 2.8, 5.1, and 6.2, has been reused from a paper describing PropaFP, 'Rasheed, J., Konečný, M. (2022). Auto-Active Verification of Floating-Point Programs via Nonlinear Real Provers. In: Schlingloff, BH., Chai, M. (eds) Software Engineering and Formal Methods. SEFM 2022. Lecture Notes in Computer Science, vol 13550,' that was co-written with Michal Konečný. The ‘bounds derivation’ algorithm described in Section 4.2 was implemented mostly by Michal Konečný and is used in both PropaFP and LPPaver.
Institution: Aston University
Last Modified: 08 Dec 2023 09:00
Date Deposited: 03 Jul 2023 16:34
Completed Date: 2022-09
Authors: Rasheed, Junaid Ali

Export / Share Citation


Statistics

Additional statistics for this record