Limit approximations and their moduli #
A sequence of total functions f : ℕ → α → β, read as the stages f s, converges to
g : α → β when it agrees with g at every point from some stage on:
∀ x, ∀ᶠ s in atTop, f s x = g x. The stage after which the value at x is correct depends on
x and is not part of the data. A modulus of convergence is a function m : α → ℕ supplying
such stages: f s x = g x whenever m x ≤ s.
These are the notions of the Limit Lemma, by which the functions computable relative to the halting problem are exactly the limits of uniformly computable sequences, and of the Modulus Lemma, by which a function computable in a c.e. set has a computable approximation with a modulus computable in that set. Neither lemma is proved here. What is proved is the elementary calculus of limits and moduli, and the unrelativized fact that a uniformly computable sequence with a computable modulus has a computable limit. Convergence alone does not suffice: the halting problem is the limit of its increasing approximation by step-bounded evaluation, which therefore has no computable modulus.
Main definitions #
TauCeti.Approximation.Converges f g: the stagesf sagree withgat every point from some stage on.TauCeti.Approximation.IsModulus f g m:m xis a stage after whichf s x = g x.
Main results #
TauCeti.Approximation.converges_iff_exists_isModulus: a sequence converges exactly when it has a modulus.TauCeti.Approximation.Converges.unique: limits are unique.TauCeti.Approximation.Converges.eventually_forall_mem,TauCeti.Approximation.IsModulus.forall_mem_of_sup_le: finite-coordinate aggregation. Finitely many coordinates are simultaneously correct from some stage on, and from the largest of their moduli on.TauCeti.Approximation.Converges.exists_monotone_isModulus: a convergent sequence onℕ, or on any locally finite order with a bottom, has a monotone modulus.TauCeti.Approximation.converges_shift_iff,TauCeti.Approximation.IsModulus.shift,TauCeti.Approximation.IsModulus.of_shift: shifting the stages preserves the limit, and moves the modulus by the shift.TauCeti.Approximation.Converges.comp_tendsto,TauCeti.Approximation.IsModulus.comp: reindexing the stages by a clock tending to infinity preserves the limit; a modulus for the clock turns a modulus of the sequence into one of the reindexed sequence.TauCeti.Approximation.IsModulus.computable: a uniformly computable sequence with a computable modulus has a computable limit.TauCeti.Approximation.computable_iff_exists_isModulus: a function is computable exactly when it is the limit of a uniformly computable sequence with a computable modulus.
References #
- R. I. Soare, Recursively Enumerable Sets and Degrees, Springer, 1987, Chapter III.3.
Convergence #
Unfolding TauCeti.Approximation.Converges.
Convergence is pointwise convergence to g in the discrete sense: each sequence of values
tends to the principal filter of its limit.
Moduli #
Finite-coordinate aggregation for a modulus. From the largest modulus of finitely many coordinates on, all of them are correct.
A modulus can be replaced by its partial suprema x ↦ max_{y ≤ x} m y, which are monotone
(partialSups_monotone). From that stage on, every coordinate up to x is correct.
A convergent sequence on a locally finite order with a bottom, such as ℕ, has a monotone
modulus.
Shifts and reindexing #
Reindexing by a clock. Reading the stages along a clock t tending to infinity preserves
the limit. The clock need not be monotone.
Effective reindexing. If n k is a stage after which the clock t stays at least k,
then n ∘ m is a modulus of the reindexed sequence. For a computable clock modulus n and a
computable modulus m, this modulus is computable.
Computability of limits #
Computable modulus, computable limit. A uniformly computable sequence with a computable modulus has a computable limit: evaluate the sequence at the stage given by the modulus.
A function is computable exactly when it is the limit of a uniformly computable sequence with a computable modulus.