3 research outputs found
Interpolating Between Choices for the Approximate Intermediate Value Theorem
This paper proves the approximate intermediate value theorem, constructively
and from notably weak hypotheses: from pointwise rather than uniform
continuity, without assuming that reals are presented with rational
approximants, and without using countable choice. The theorem is that if a
pointwise continuous function has both a negative and a positive value, then it
has values arbitrarily close to 0. The proof builds on the usual classical
proof by bisection, which repeatedly selects the left or right half of an
interval; the algorithm here selects an interval of half the size in a
continuous way, interpolating between those two possibilities
Analysis in univalent type theory
Some constructive real analysis is developed in univalent type theory (UTT). We develop various types of real numbers, and prove several equivalences between those types. We then study computation with real numbers. It is well known how to compute with real numbers in intensional formalizations of mathematics, where equality of real numbers is specified by an imposed equivalence relation on representations such as Cauchy sequences. However, because in UTT equality of real numbers is captured directly by identity types, we are prevented from making any nontrivial discrete observations of arbitrary real numbers. For instance, there is no function which converts real numbers to decimal expansions, as this would not be continuous. To avoid breaking extensionality, we thus restrict our attention to real numbers that have been equipped with a simple structure called a \emph{locator}. In order to compute, we modify existing constructions in analysis to work with locators, including Riemann integrals, intermediate value theorems and differential equations. Hence many of the proofs involving locators look familiar, showing that the use of locators is not a conceptual burden. We discuss the possibility of implementing the work in proof assistants and present a Haskell prototype