We use ideas from computable analysis to formalize exact real number computation in the Coq proof assistant. Our formalization is built on top of the Incone library, a Coq library for computable analysis. We use the theoretical framework that computable analysis provides to systematically generate target specifications for real number algorithms. First we give very simple algorithms that fulfill these specifications based on rational approximations. To provide more efficient algorithms, we develop alternate representations that utilize an existing formalization of floating-point algorithms and interval arithmetic in combination with methods used by software packages for exact real arithmetic that focus on execution speed. We also define a general framework to define real number algorithms independently of their concrete encoding and to prove them correct. Algorithms verified in our framework can be extracted to Haskell programs for efficient computation. The performance of the extracted code is comparable to programs produced using non-verified software packages. This is without the need to optimize the extracted code by hand. As an example, we formalize an algorithm for the square root function based on the Heron method. The algorithm is parametric in the implementation of the real number datatype, not referring to any details of its implementation. Thus the same verified algorithm can be used with different real number representations. Since Boolean valued comparisons of real numbers are not decidable, our algorithms use basic operations that take values in the Kleeneans and Sierpinski space. We develop some of the theory of these spaces. To capture the semantics of non-sequential operations, such as the “parallel or”, we use multivalued functions.
|Title of host publication||40th IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science, FSTTCS 2020|
|Editors||Nitin Saxena, Sunil Simon|
|Publication status||Published - Dec 2020|
|Event||40th IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science, FSTTCS 2020 - Virtual, Goa, India|
Duration: 14 Dec 2020 → 18 Dec 2020
|Name||Leibniz International Proceedings in Informatics, LIPIcs|
|Conference||40th IARCS Annual Conference on Foundations of Software Technology and Theoretical Computer Science, FSTTCS 2020|
|Period||14/12/20 → 18/12/20|
Bibliographical noteFunding Information:
Funding Michal Konečný: This project has received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie grant agreement No 731143. Holger Thies: Supported by JSPS KAKENHI Grant Numbers JP18J10407 and JP20K19744 and by the Japan Society for the Promotion of Science (JSPS), Core-to-Core Program (A. Advanced Research Networks).
© Michal Konečný, Florian Steinberg, and Holger Thies; licensed under Creative Commons License CC-BY.
- Computable Analysis
- Exact real computation
- Formal proofs
- Proof assistant