Continuous and monotone machines

05/04/2020
by   Michal Konečný, et al.
0

We investigate a variant of the fuel-based approach to modeling diverging computation in type theories and use it to abstractly capture the essence of oracle Turing machines. The resulting objects we call continuous machines. We prove that it is possible to translate back and forth between such machines and names in the standard function encoding used in computable analysis. Put differently, among the operators on Baire space, exactly the partial continuous ones are implementable by continuous machines and the data that such a machine provides is a description of the operator as a sequentially realizable functional. Continuous machines are naturally formulated in type theories and we have formalized our findings in Coq. Continuous machines, their equivalence to the standard encoding and correctness of basic operations are now part of Incone, a Coq library for computable analysis. While the correctness proofs use a classical meta-theory with countable choice, the translations and algorithms that are proven correct are all fully executable. Along the way we formally prove some known results such as existence of a self-modulating moduli of continuity for partial continuous operators on Baire space. To illustrate their versatility we use continuous machines to specify some algorithms that operate on objects that cannot be fully described by finite means, such as real numbers and functions. We present particularly simple algorithms for finding the multiplicative inverse of a real number and for composition of partial continuous operators on Baire space. Some of the simplicity is achieved by utilizing the fact that continuous machines are compatible with multivalued semantics. We also connect continuous machines to the construction of precompletions and completions of represented spaces, topics that have recently caught the attention of the computable analysis community.

READ FULL TEXT

Please sign up or login with your details

Forgot password? Click here to reset