Least and greatest fixed points on finite sets
Finite Iteration
DefinitionLeast fixed point of a finset map by finite iteration#✓fully proved
Let \(\alpha\) be a finite type with \(|\alpha|\) elements, let \(f\) map subsets of \(\alpha\) to subsets of \(\alpha\), and write \(f^n\) for the \(n\)-fold iterate of \(f\). Then \(\mathrm{lfp}_{\mathrm{fin}}(f)\) is the set \(f^{|\alpha|}(\emptyset)\), obtained by applying \(f\) to the empty set \(|\alpha|\) times.
For monotone \(f\) the iteration has stabilized after \(|\alpha|\) steps, and the result is the least fixed point of \(f\).
def lfpFin (f : Finset α → Finset α) : Finset α :=
f^[Fintype.card α] ∅
Used by 10
DefinitionGreatest fixed point of a finset map by finite iteration#✓fully proved
Let \(\alpha\) be a finite type with \(|\alpha|\) elements, let \(f\) map subsets of \(\alpha\) to subsets of \(\alpha\), and write \(f^n\) for the \(n\)-fold iterate of \(f\). Then \(\mathrm{gfp}_{\mathrm{fin}}(f)\) is the set \(f^{|\alpha|}(\alpha)\), obtained by applying \(f\) to the whole of \(\alpha\) \(|\alpha|\) times.
For monotone \(f\) the iteration has stabilized after \(|\alpha|\) steps, and the result is the greatest fixed point of \(f\).
def gfpFin (f : Finset α → Finset α) : Finset α :=
f^[Fintype.card α] Finset.univ
TheoremFinite iteration from the empty set reaches a fixed point#✓fully proved
Let \(\alpha\) be a finite type with \(|\alpha|\) elements, let \(f\) be a map from subsets of \(\alpha\) to subsets of \(\alpha\) that is monotone for inclusion, and let \(\mathrm{lfp}_{\mathrm{fin}}(f) = f^{|\alpha|}(\emptyset)\) be the result of applying \(f\) to \(\emptyset\) \(|\alpha|\) times. Then \(\mathrm{lfp}_{\mathrm{fin}}(f)\) is a fixed point of \(f\), that is, \(f(\mathrm{lfp}_{\mathrm{fin}}(f)) = \mathrm{lfp}_{\mathrm{fin}}(f)\).
The iterates of \(f\) from \(\emptyset\) form an increasing chain, and until it stabilizes each step strictly increases the cardinality, which is bounded by \(|\alpha|\).
theorem lfpFin_fixed {f : Finset α → Finset α} (hf : Monotone f) :
f (lfpFin f) = lfpFin f
def lfpFin (f : Finset α → Finset α) : Finset α :=
f^[Fintype.card α] ∅
MathlibExt/Order/FixedPoints/Finset.lean:49
Uses 1 · Used by 4
TheoremFinite iteration from the whole type reaches a fixed point#✓fully proved
Let \(\alpha\) be a finite type with \(|\alpha|\) elements, let \(f\) be a map from subsets of \(\alpha\) to subsets of \(\alpha\) that is monotone for inclusion, and let \(\mathrm{gfp}_{\mathrm{fin}}(f) = f^{|\alpha|}(\alpha)\) be the result of applying \(f\) to \(\alpha\) \(|\alpha|\) times. Then \(\mathrm{gfp}_{\mathrm{fin}}(f)\) is a fixed point of \(f\), that is, \(f(\mathrm{gfp}_{\mathrm{fin}}(f)) = \mathrm{gfp}_{\mathrm{fin}}(f)\).
The iterates of \(f\) from \(\alpha\) form a decreasing chain, and until it stabilizes each step strictly decreases the cardinality.
theorem gfpFin_fixed {f : Finset α → Finset α} (hf : Monotone f) :
f (gfpFin f) = gfpFin f
def gfpFin (f : Finset α → Finset α) : Finset α :=
f^[Fintype.card α] Finset.univ
MathlibExt/Order/FixedPoints/Finset.lean:56
Uses 1 · Used by 3
TheoremThe finite least fixed point lies in every pre-fixed point#✓fully proved
Let \(\alpha\) be a finite type with \(|\alpha|\) elements, let \(f\) be a map from subsets of \(\alpha\) to subsets of \(\alpha\) that is monotone for inclusion, and let \(\mathrm{lfp}_{\mathrm{fin}}(f) = f^{|\alpha|}(\emptyset)\) be the result of applying \(f\) to \(\emptyset\) \(|\alpha|\) times. If \(Z \subseteq \alpha\) satisfies \(f(Z) \subseteq Z\), then \(\mathrm{lfp}_{\mathrm{fin}}(f) \subseteq Z\).
Every iterate of \(f\) from \(\emptyset\) is contained in \(Z\), by induction.
theorem lfpFin_le {f : Finset α → Finset α} (hf : Monotone f)
{Z : Finset α} (hZ : f Z ⊆ Z) : lfpFin f ⊆ Z
def lfpFin (f : Finset α → Finset α) : Finset α :=
f^[Fintype.card α] ∅
MathlibExt/Order/FixedPoints/Finset.lean:49
Uses 1 · Used by 2
TheoremEvery post-fixed point lies in the finite greatest fixed point#✓fully proved
Let \(\alpha\) be a finite type with \(|\alpha|\) elements, let \(f\) be a map from subsets of \(\alpha\) to subsets of \(\alpha\) that is monotone for inclusion, and let \(\mathrm{gfp}_{\mathrm{fin}}(f) = f^{|\alpha|}(\alpha)\) be the result of applying \(f\) to \(\alpha\) \(|\alpha|\) times. If \(Z \subseteq \alpha\) satisfies \(Z \subseteq f(Z)\), then \(Z \subseteq \mathrm{gfp}_{\mathrm{fin}}(f)\).
\(Z\) is contained in every iterate of \(f\) from \(\alpha\), by induction.
theorem le_gfpFin {f : Finset α → Finset α} (hf : Monotone f)
{Z : Finset α} (hZ : Z ⊆ f Z) : Z ⊆ gfpFin f
def gfpFin (f : Finset α → Finset α) : Finset α :=
f^[Fintype.card α] Finset.univ
MathlibExt/Order/FixedPoints/Finset.lean:56
Uses 1
Bridge
TheoremFinset and predicate iterations from the bottom agree#✓fully proved
Let \(\alpha\) be a type, let \(f\) map finite subsets of \(\alpha\) to finite subsets of \(\alpha\), and let \(F\) map predicates on \(\alpha\) to predicates on \(\alpha\). For a finite set \(Z \subseteq \alpha\) write \(P_Z\) for the predicate \(t \mapsto t \in Z\), and suppose that for every finite \(Z \subseteq \alpha\) and every \(s \in \alpha\), \(s \in f(Z)\) if and only if \(F(P_Z)(s)\) holds. Write \(f^n\) and \(F^n\) for the \(n\)-fold iterates and \(\bot\) for the predicate that is false everywhere. Then for every \(n \in \mathbb{N}\) and every \(s \in \alpha\), \(s \in f^n(\emptyset)\) if and only if \(F^n(\bot)(s)\) holds.
theorem mem_finset_iterate_iff {F : (α → Prop) → α → Prop}
{f : Finset α → Finset α}
(hbridge : ∀ Z s, s ∈ f Z ↔ F (fun t => t ∈ Z) s) :
∀ n s, s ∈ f^[n] ∅ ↔ (F^[n] (fun _ => False)) s
Used by 1
TheoremFinset and predicate iterations from the top agree#✓fully proved
Let \(\alpha\) be a finite type, let \(f\) map subsets of \(\alpha\) to subsets of \(\alpha\), and let \(F\) map predicates on \(\alpha\) to predicates on \(\alpha\). For \(Z \subseteq \alpha\) write \(P_Z\) for the predicate \(t \mapsto t \in Z\), and suppose that for every \(Z \subseteq \alpha\) and every \(s \in \alpha\), \(s \in f(Z)\) if and only if \(F(P_Z)(s)\) holds. Write \(f^n\) and \(F^n\) for the \(n\)-fold iterates and \(\top\) for the predicate that is true everywhere. Then for every \(n \in \mathbb{N}\) and every \(s \in \alpha\), \(s \in f^n(\alpha)\) if and only if \(F^n(\top)(s)\) holds.
theorem mem_finset_iterate_univ_iff {F : (α → Prop) → α → Prop}
{f : Finset α → Finset α}
(hbridge : ∀ Z s, s ∈ f Z ↔ F (fun t => t ∈ Z) s) :
∀ n s, s ∈ f^[n] Finset.univ ↔ (F^[n] (fun _ => True)) s
Used by 1
TheoremFinite iteration computes the least fixed point#✓fully proved
Let \(\alpha\) be a finite type with \(|\alpha|\) elements, let \(f\) be a map from subsets of \(\alpha\) to subsets of \(\alpha\) that is monotone for inclusion, and let \(\mathrm{lfp}_{\mathrm{fin}}(f) = f^{|\alpha|}(\emptyset)\) be the result of applying \(f\) to \(\emptyset\) \(|\alpha|\) times. Let \(F\) be a map from predicates on \(\alpha\) to predicates on \(\alpha\) that is monotone for the pointwise order. For \(Z \subseteq \alpha\) write \(P_Z\) for the predicate \(t \mapsto t \in Z\), and suppose that for every \(Z \subseteq \alpha\) and every \(s \in \alpha\), \(s \in f(Z)\) if and only if \(F(P_Z)(s)\) holds. Then for every \(s \in \alpha\), \(s \in \mathrm{lfp}_{\mathrm{fin}}(f)\) if and only if \(s\) satisfies the least fixed point of \(F\) in the complete lattice of predicates on \(\alpha\).
One inclusion is iteration into the fixed point; the other is Park induction: the \(|\alpha|\)-th iterate of \(F\) from the everywhere-false predicate is pre-fixed because the corresponding iterate of \(f\) has stabilized, transported through the hypothesis relating \(f\) and \(F\).
theorem mem_lfpFin_iff_lfp {F : (α → Prop) → α → Prop}
{f : Finset α → Finset α}
(hfm : Monotone f) (hFm : Monotone F)
(hbridge : ∀ Z s, s ∈ f Z ↔ F (fun t => t ∈ Z) s) (s : α) :
s ∈ lfpFin f ↔
(⟨F, hFm⟩ : (α → Prop) →o (α → Prop)).lfp s
def lfpFin (f : Finset α → Finset α) : Finset α :=
f^[Fintype.card α] ∅
MathlibExt/Order/FixedPoints/Finset.lean:49
Uses 3 · Used by 1
TheoremFinite iteration computes the greatest fixed point#✓fully proved
Let \(\alpha\) be a finite type with \(|\alpha|\) elements, let \(f\) be a map from subsets of \(\alpha\) to subsets of \(\alpha\) that is monotone for inclusion, and let \(\mathrm{gfp}_{\mathrm{fin}}(f) = f^{|\alpha|}(\alpha)\) be the result of applying \(f\) to \(\alpha\) \(|\alpha|\) times. Let \(F\) be a map from predicates on \(\alpha\) to predicates on \(\alpha\) that is monotone for the pointwise order. For \(Z \subseteq \alpha\) write \(P_Z\) for the predicate \(t \mapsto t \in Z\), and suppose that for every \(Z \subseteq \alpha\) and every \(s \in \alpha\), \(s \in f(Z)\) if and only if \(F(P_Z)(s)\) holds. Then for every \(s \in \alpha\), \(s \in \mathrm{gfp}_{\mathrm{fin}}(f)\) if and only if \(s\) satisfies the greatest fixed point of \(F\) in the complete lattice of predicates on \(\alpha\).
This is dual to the corresponding statement for least fixed points.
theorem mem_gfpFin_iff_gfp {F : (α → Prop) → α → Prop}
{f : Finset α → Finset α}
(hfm : Monotone f) (hFm : Monotone F)
(hbridge : ∀ Z s, s ∈ f Z ↔ F (fun t => t ∈ Z) s) (s : α) :
s ∈ gfpFin f ↔
(⟨F, hFm⟩ : (α → Prop) →o (α → Prop)).gfp s
def gfpFin (f : Finset α → Finset α) : Finset α :=
f^[Fintype.card α] Finset.univ
MathlibExt/Order/FixedPoints/Finset.lean:56
Uses 3 · Used by 1
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.