Documentation

Mathlib.Topology.Category.Profinite.Nobeling.ZeroLimit

The zero and limit cases in the induction for NΓΆbeling's theorem #

This file proves the zero and limit cases of the ordinal induction used in the proof of NΓΆbeling's theorem. See the section docstrings for more information.

For the overall proof outline see Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean.

References #

The zero case of the induction #

In this case, we have contained C 0 which means that C is either empty or a singleton.

The empty list as a Products

Instances For
    @[implicit_reducible]

    There is a unique GoodProducts for the singleton {fun _ ↦ false}.

    The limit case of the induction #

    We relate linear independence in LocallyConstant (Ο€ C (ord I Β· < o')) β„€ with linear independence in LocallyConstant C β„€, where contained C o and o' < o.

    When o is a limit ordinal, we prove that the good products in LocallyConstant C β„€ are linearly independent if and only if a certain directed union is linearly independent. Each term in this directed union is in bijection with the good products w.r.t. Ο€ C (ord I Β· < o') for an ordinal o' < o, and these are linearly independent by the inductive hypothesis.

    Main definitions #

    Main results #

    def Profinite.NobelingProof.GoodProducts.smaller {I : Type u} (C : Set (I β†’ Bool)) [LinearOrder I] [WellFoundedLT I] (o : Ordinal.{u}) :
    Set (LocallyConstant ↑C β„€)

    The image of the GoodProducts for Ο€ C (ord I Β· < o) in LocallyConstant C β„€. The name smaller refers to the setting in which we will use this, when we are mapping in GoodProducts from a smaller set, i.e. when o is a smaller ordinal than the one C is "contained" in.

    Instances For
      noncomputable def Profinite.NobelingProof.GoodProducts.range_equiv_smaller_toFun {I : Type u} (C : Set (I β†’ Bool)) [LinearOrder I] [WellFoundedLT I] (o : Ordinal.{u}) (x : ↑(range (Ο€ C fun (x : I) => ord I x < o))) :
      ↑(smaller C o)

      The map from the image of the GoodProducts in LocallyConstant (Ο€ C (ord I Β· < o)) β„€ to smaller C o

      Instances For
        noncomputable def Profinite.NobelingProof.GoodProducts.range_equiv_smaller {I : Type u} (C : Set (I β†’ Bool)) [LinearOrder I] [WellFoundedLT I] (o : Ordinal.{u}) :
        ↑(range (Ο€ C fun (x : I) => ord I x < o)) ≃ ↑(smaller C o)

        The equivalence from the image of the GoodProducts in LocallyConstant (Ο€ C (ord I Β· < o)) β„€ to smaller C o

        Instances For
          theorem Profinite.NobelingProof.GoodProducts.smaller_factorization {I : Type u} (C : Set (I β†’ Bool)) [LinearOrder I] [WellFoundedLT I] (o : Ordinal.{u}) :
          (fun (p : ↑(smaller C o)) => ↑p) ∘ (range_equiv_smaller C o).toFun = ⇑(Ο€s C o) ∘ fun (p : ↑(range (Ο€ C fun (x : I) => ord I x < o))) => ↑p
          theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_smaller {I : Type u} (C : Set (I β†’ Bool)) [LinearOrder I] [WellFoundedLT I] (o : Ordinal.{u}) :
          LinearIndependent β„€ (eval (Ο€ C fun (x : I) => ord I x < o)) ↔ LinearIndependent β„€ fun (p : ↑(smaller C o)) => ↑p
          theorem Profinite.NobelingProof.GoodProducts.smaller_mono {I : Type u} (C : Set (I β†’ Bool)) [LinearOrder I] [WellFoundedLT I] {o₁ oβ‚‚ : Ordinal.{u}} (h : o₁ ≀ oβ‚‚) :
          smaller C o₁ βŠ† smaller C oβ‚‚
          theorem Profinite.NobelingProof.Products.limitOrdinal {I : Type u} (C : Set (I β†’ Bool)) [LinearOrder I] [WellFoundedLT I] {o : Ordinal.{u}} (ho : Order.IsSuccLimit o) (l : Products I) :
          isGood (Ο€ C fun (x : I) => ord I x < o) l ↔ βˆƒ o' < o, isGood (Ο€ C fun (x : I) => ord I x < o') l
          theorem Profinite.NobelingProof.GoodProducts.union {I : Type u} (C : Set (I β†’ Bool)) [LinearOrder I] [WellFoundedLT I] {o : Ordinal.{u}} (ho : Order.IsSuccLimit o) (hsC : contained C o) :
          range C = ⋃ (e : { o' : Ordinal.{u} // o' < o }), smaller C ↑e
          def Profinite.NobelingProof.GoodProducts.range_equiv {I : Type u} (C : Set (I β†’ Bool)) [LinearOrder I] [WellFoundedLT I] {o : Ordinal.{u}} (ho : Order.IsSuccLimit o) (hsC : contained C o) :
          ↑(range C) ≃ ↑(⋃ (e : { o' : Ordinal.{u} // o' < o }), smaller C ↑e)

          The image of the GoodProducts in C is equivalent to the union of smaller C o' over all ordinals o' < o.

          Instances For
            theorem Profinite.NobelingProof.GoodProducts.range_equiv_factorization {I : Type u} (C : Set (I β†’ Bool)) [LinearOrder I] [WellFoundedLT I] {o : Ordinal.{u}} (ho : Order.IsSuccLimit o) (hsC : contained C o) :
            (fun (p : ↑(⋃ (e : { o' : Ordinal.{u} // o' < o }), smaller C ↑e)) => ↑p) ∘ (range_equiv C ho hsC).toFun = fun (p : ↑(range C)) => ↑p
            theorem Profinite.NobelingProof.GoodProducts.linearIndependent_iff_union_smaller {I : Type u} (C : Set (I β†’ Bool)) [LinearOrder I] [WellFoundedLT I] {o : Ordinal.{u}} (ho : Order.IsSuccLimit o) (hsC : contained C o) :
            LinearIndependent β„€ (eval C) ↔ LinearIndependent β„€ fun (p : ↑(⋃ (e : { o' : Ordinal.{u} // o' < o }), smaller C ↑e)) => ↑p