Documentation

DescriptiveComplexity.Iterate

Orbits of a self-map on a finite type #

The quantitative facts every fixed-point iteration in this library rests on, stated for a bare self-map f : α → α with no logic in sight:

Consumers: the stages of DescriptiveComplexity.derivesIn (DescriptiveComplexity.FixedPoint), the inflationary and partial iterations of DescriptiveComplexity.StepDef (DescriptiveComplexity.FixedPointStep), and any future exponential iteration (SO(LFP), SO(PFP)). Everything is stated over an arbitrary starting point, so ascending chains from and descending chains from are both instances.

Constancy from a plateau #

theorem DescriptiveComplexity.iterate_eq_of_isFixedPt {α : Type u_1} {f : αα} {a : α} {N : } (h : Function.IsFixedPt f (f^[N] a)) {n : } (hn : N n) :
f^[n] a = f^[N] a

Once an orbit reaches a fixed point, it stays there: the orbit is constant from any index whose value is a fixed point.

Dependency graph

Pigeonhole: repeats and eventual periodicity #

theorem DescriptiveComplexity.exists_iterate_eq_of_finite {α : Type u_1} [Finite α] (f : αα) (a : α) :
∃ (i : ) (j : ), i < j j Nat.card α f^[i] a = f^[j] a

An orbit on a finite type repeats within Nat.card α steps.

Dependency graph
theorem DescriptiveComplexity.isFixedPt_iterate_card_iff {α : Type u_1} [Finite α] (f : αα) (a : α) :

If an orbit on a finite type ever reaches a fixed point, the Nat.card α-th iterate already is one. This is what bounds the partial fixed-point iteration: convergence, if it happens at all, happens within the number of states.

Dependency graph

Monotone chains of subsets plateau within the cardinality #

The bound here is Nat.card X – the height of the subset lattice – rather than the 2 ^ Nat.card X states a bare pigeonhole would give.

theorem DescriptiveComplexity.exists_succ_eq_of_monotone_subset {X : Type u_2} [Finite X] {c : Set X} (hc : ∀ (n : ), c nc (n + 1)) :
NNat.card X, c (N + 1) = c N

A monotone chain of subsets of a finite type plateaus within Nat.card X steps.

Dependency graph
theorem DescriptiveComplexity.exists_succ_eq_of_antitone_subset {X : Type u_2} [Finite X] {c : Set X} (hc : ∀ (n : ), c (n + 1)c n) :
NNat.card X, c (N + 1) = c N

An antitone chain of subsets of a finite type plateaus within Nat.card X steps: the dual of DescriptiveComplexity.exists_succ_eq_of_monotone_subset, for descending refinement chains.

Dependency graph
theorem DescriptiveComplexity.isFixedPt_iterate_card_of_subset {X : Type u_2} [Finite X] {f : Set XSet X} (hf : ∀ (s : Set X), sf s) (s : Set X) :

An inflationary map on the subsets of a finite type reaches a fixed point within Nat.card X steps, from any starting point: the chain of iterates can only grow Nat.card X many times.

Dependency graph