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.
翻译:实际计算是浮动点算术的替代方法, 即实际数字的操作准确进行, 而不引入圆形错误。 当证明执行的正确性时, 可以仅仅侧重于问题的数学属性, 而不必考虑代表实际数字的微妙性。 我们提议在依赖型理论中将实际数字进行新的非对称化, 目的是从建设性证据中提取经过认证的准确实际计算程序。 我们的正规化与类似方法不同, 我们的正规化方法与类似方法不同, 我们将实际数字的理论正式化的方式与精确实际计算的某些成熟执行方法类似。 我们通过在科克验证助理中实施理论, 可以直接提取到相应的执行中的相应操作中, 产生效率更高的程序。 我们特别侧重于部分和非非定义计算的正式化, 这在精确的实际计算中是不可或缺的。 我们证明, 我们正式化了标准真实真实真实真实数据解释的正确性解释的正确性, 并展示了我们的理论在概念上的可行性, 我们通过在科克验证助手中实施它, 并展示了几个自然的例子。 我们从实际操作中, 正在自动地模拟地模拟地进行一个精确的模型, 进行一个精确的实验, 。