Least fixed points by bottom-up iteration #
[UPSTREAM] Kleene-style certificates for OrderHom.lfp without continuity
hypotheses: the iterates f^[k] ⊥ of a monotone map sit below every prefixed point,
so as soon as one is a fixed point it is the least fixed point
(OrderHom.lfp_eq_iterate_bot). In a finite lattice some iterate is always fixed —
a monotone chain can rise at most Fintype.card times (OrderHom.iterate_bot_fixed).
Together these give the computable face of Knaster–Tarski used by the recursive-scheme
and modal-μ semantics (Core/Computability/Subregular/Logic/): compute f^[k] ⊥,
check one more application, conclude lfp.
A well-founded descent has eventually-constant iterates: if f moves every
non-fixed point strictly down a well-founded relation, then from any start the orbit
reaches a fixed point — there is an N past which further iteration does nothing.
Absent from mathlib: the nearest neighbor is the chain condition
(wellFoundedGT_iff_monotone_chain_condition), which is keyed to preorders and
ℕ →o α sequences rather than a bare relation and a self-map; the lemma is also the
deterministic case of strong normalization, a rewriting theory mathlib lacks.
Bottom-up iterates never overtake the least fixed point.
The bottom-up chain is monotone in the iteration count.
In a finite lattice the bottom-up chain reaches a fixed point within
Fintype.card L steps: a monotone chain can rise at most card times.
In a finite lattice, lfp is computed by Fintype.card-fold iteration from ⊥.