Extracting efficient exact real number computation from proofs in constructive type theory

02/02/2022
by   Michal Konečný, et al.
0

Exact real computation is an alternative to floating-point arithmetic where operations on real numbers are performed exactly, without the introduction of rounding errors. When proving the correctness of an implementation, one can focus solely on the mathematical properties of the problem without thinking about the subtleties of representing real numbers. We propose a new axiomatization of the real numbers in a dependent type theory with the goal of extracting certified exact real computation programs from constructive proofs. Our formalization differs from similar approaches, in that we formalize the reals in a conceptually similar way as some mature implementations of exact real computation. Primitive operations on reals can be extracted directly to the corresponding operations in such an implementation, producing more efficient programs. We particularly focus on the formalization of partial and nondeterministic computation, which is essential in exact real computation. We prove the soundness of our formalization with regards of the standard realizability interpretation from computable analysis and show how to relate our theory to a classical formalization of the reals. We demonstrate the feasibility of our theory by implementing it in the Coq proof assistant and present several natural examples. From the examples we have automatically extracted Haskell programs that use the exact real computation framework AERN for efficiently performing exact operations on real numbers. In experiments, the extracted programs behave similarly to native implementations in AERN in terms of running time and memory usage.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/19/2018

Multithreading for the expression-dag-based number type Real_algebraic

Many algorithms, especially in the field of computational geometry, are ...
research
08/24/2020

Exact p-adic computation in Magma

We describe a new arithmetic system for the Magma computer algebra syste...
research
10/11/2019

Constructive Domains with Classical Witnesses

We develop a constructive theory of continuous domains from the perspect...
research
07/27/2018

Limits with Signed Digit Streams

We work with the signed digit representation of abstract real numbers, w...
research
03/09/2023

Transport via Partial Galois Connections and Equivalences

Multiple types can represent the same concept. For example, lists and tr...
research
03/30/2021

How to hunt wild constants

There are now several comprehensive web applications, stand-alone comput...
research
05/01/2018

Computable decision making on the reals and other spaces via partiality and nondeterminism

Though many safety-critical software systems use floating point to repre...

Please sign up or login with your details

Forgot password? Click here to reset