Ordinal Approximants for the Fixed points on complete lattices #
This file sets up the ordinal-indexed approximation theory of fixed points of a monotone function in a complete lattice [CC79]. The proof follows loosely the one from [Ech05].
However, the proof given here is not constructive as we use the non-constructive axiomatization of ordinals from mathlib. It still allows an approximation scheme indexed over the ordinals.
Main definitions #
OrdinalApprox.lfpApprox: The ordinal-indexed approximation of the least fixed point greater or equal than an initial value of a bundled monotone function.OrdinalApprox.gfpApprox: The ordinal-indexed approximation of the greatest fixed point less or equal than an initial value of a bundled monotone function.
Main theorems #
OrdinalApprox.lfp_mem_range_lfpApprox: The ordinal-indexed approximation of the least fixed point eventually reaches the least fixed pointOrdinalApprox.gfp_mem_range_gfpApprox: The ordinal-indexed approximation of the greatest fixed point eventually reaches the greatest fixed point
References #
- F. Echenique, A short and constructive proof of Tarski’s fixed-point theorem
- P. Cousot & R. Cousot, Constructive Versions of Tarski's Fixed Point Theorems
Tags #
fixed point, complete lattice, monotone function, ordinals, approximation
The ordinal-indexed sequence approximating the least fixed point greater than
an initial value x. It is defined in such a way that we have lfpApprox 0 x = x and
lfpApprox a x = ⨆ b < a, f (lfpApprox b x).
Equations
- OrdinalApprox.lfpApprox f x a = x ⊔ ⨆ (b : Ordinal.{?u.1}), ⨆ (_ : b < a), f (OrdinalApprox.lfpApprox f x b)
Instances For
Alias of OrdinalApprox.lfpApprox_mono_right.
The approximations of the least fixed point stabilize at a fixed point of f
If the sequence of ordinal-indexed approximations takes a value twice, then it actually stabilised at that value.
There are distinct indices smaller than the successor of the domain's cardinality yielding the same value
The approximation at the index of the successor of the domain's cardinality is a fixed point
Every value of the approximation is less or equal than every fixed point of f
greater or equal than the initial value
The approximation sequence converges at the successor of the domain's cardinality
to the least fixed point if starting from ⊥
Some approximation of the least fixed point starting from ⊥ is the least fixed point.
If lfpApprox f x a is a fixed point, then the supremum of the whole
ordinal-indexed sequence equals the value at a.
The ordinal-indexed supremum of lfpApprox equals nextFixed: the least fixed point
greater than or equal to x.
The ordinal-indexed sequence approximating the greatest fixed point greater than
an initial value x. It is defined in such a way that we have gfpApprox 0 x = x and
gfpApprox a x = ⨅ b < a, f (lfpApprox b x).
Equations
- OrdinalApprox.gfpApprox f x a = x ⊓ ⨅ (b : Ordinal.{?u.1}), ⨅ (_ : b < a), f (OrdinalApprox.gfpApprox f x b)
Instances For
Alias of OrdinalApprox.gfpApprox_anti_right.
The approximations of the greatest fixed point stabilize at a fixed point of f
There are distinct indices smaller than the successor of the domain's cardinality yielding the same value
The approximation at the index of the successor of the domain's cardinality is a fixed point
Every value of the approximation is greater or equal than every fixed point of f
less or equal than the initial value
The approximation sequence converges at the successor of the domain's cardinality
to the greatest fixed point if starting from ⊥
Some approximation of the least fixed point starting from ⊤ is the greatest fixed point.
If gfpApprox f x a is a fixed point, then the infimum of the whole
ordinal-indexed sequence equals the value at a.
The ordinal-indexed infimum of gfpApprox equals prevFixed: the greatest fixed point
less than or equal to x.