Documentation

Mathlib.CategoryTheory.SmallObject.WellOrderInductionData

Limits of inverse systems indexed by well-ordered types #

Given a functor F : Jᵒᵖ ⥤ Type v where J is a well-ordered type, we introduce a structure F.WellOrderInductionData which allows to show that the map F.sections → F.obj (op ⊥) is surjective.

The data and properties in F.WellOrderInductionData consist of a section to the maps F.obj (op (Order.succ j)) → F.obj (op j) when j is not maximal, and, when j is limit, a section to the canonical map from F.obj (op j) to the type of compatible families of elements in F.obj (op i) for i < j.

In other words, from val₀ : F.obj (op ⊥), a term d : F.WellOrderInductionData allows the construction, by transfinite induction, of a section of F which restricts to val₀.

Given a functor F : Jᵒᵖ ⥤ Type v where J is a well-ordered type, this data allows to construct a section of F from an element in F.obj (op ⊥), see WellOrderInductionData.sectionsMk.

Instances For
    noncomputable def CategoryTheory.Functor.WellOrderInductionData.ofExists {J : Type u} [LinearOrder J] [SuccOrder J] {F : Functor Jᵒᵖ (Type v)} (h₁ : ∀ (j : J), ¬IsMax jFunction.Surjective (F.map (homOfLE ).op)) (h₂ : ∀ (j : J), Order.IsSuccLimit j∀ (x : (.functor.op.comp F).sections), ∃ (y : F.obj (Opposite.op j)), ∀ (i : J) (hi : i < j), F.map (homOfLE ).op y = x (Opposite.op i, hi)) :

    Given a functor F : Jᵒᵖ ⥤ Type v where J is a well-ordered type, this is a constructor for F.WellOrderInductionData which does not take data as inputs but proofs of the existence of certain elements.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      Given d : F.WellOrderInductionData, val₀ : F.obj (op ⊥) and j : J, this is the data of an element val : F.obj (op j) such that the induced compatible family of elements in all F.obj (op i) for i ≤ j is determined by val₀ and the choice of "liftings" given by d.

      Instances For
        def CategoryTheory.Functor.WellOrderInductionData.Extension.ofLE {J : Type u} [LinearOrder J] [SuccOrder J] {F : Functor Jᵒᵖ (Type v)} {d : F.WellOrderInductionData} [OrderBot J] {val₀ : F.obj (Opposite.op )} {j : J} (e : d.Extension val₀ j) {i : J} (hij : i j) :
        d.Extension val₀ i

        An element in d.Extension val₀ j induces an element in d.Extension val₀ i when i ≤ j.

        Equations
        Instances For
          @[simp]
          theorem CategoryTheory.Functor.WellOrderInductionData.Extension.ofLE_val {J : Type u} [LinearOrder J] [SuccOrder J] {F : Functor Jᵒᵖ (Type v)} {d : F.WellOrderInductionData} [OrderBot J] {val₀ : F.obj (Opposite.op )} {j : J} (e : d.Extension val₀ j) {i : J} (hij : i j) :
          (e.ofLE hij).val = F.map (homOfLE hij).op e.val
          theorem CategoryTheory.Functor.WellOrderInductionData.Extension.val_injective {J : Type u} [LinearOrder J] [SuccOrder J] {F : Functor Jᵒᵖ (Type v)} {d : F.WellOrderInductionData} [OrderBot J] {val₀ : F.obj (Opposite.op )} {j : J} {e e' : d.Extension val₀ j} (h : e.val = e'.val) :
          e = e'
          theorem CategoryTheory.Functor.WellOrderInductionData.Extension.compatibility {J : Type u} [LinearOrder J] [SuccOrder J] {F : Functor Jᵒᵖ (Type v)} {d : F.WellOrderInductionData} [OrderBot J] {val₀ : F.obj (Opposite.op )} [WellFoundedLT J] {j : J} (e : d.Extension val₀ j) {i : J} (e' : d.Extension val₀ i) (h : i j) :
          F.map (homOfLE h).op e.val = e'.val

          The obvious element in d.Extension val₀ ⊥.

          Equations
          Instances For

            The element in d.Extension val₀ (Order.succ j) obtained by extending an element in d.Extension val₀ j when j is not maximal.

            Equations
            • e.succ hj = { val := d.succ j hj e.val, map_zero := , map_succ := , map_limit := }
            Instances For
              def CategoryTheory.Functor.WellOrderInductionData.Extension.limit {J : Type u} [LinearOrder J] [SuccOrder J] {F : Functor Jᵒᵖ (Type v)} {d : F.WellOrderInductionData} [OrderBot J] {val₀ : F.obj (Opposite.op )} [WellFoundedLT J] (j : J) (hj : Order.IsSuccLimit j) (e : (i : J) → i < jd.Extension val₀ i) :
              d.Extension val₀ j

              When j is a limit element, this is the extension to d.Extension val₀ j of a family of elements in d.Extension val₀ i for all i < j.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                When J is a well-ordered type, F : Jᵒᵖ ⥤ Type v, and d : F.WellOrderInductionData, this is the section of F that is determined by val₀ : F.obj (op ⊥)

                Equations
                Instances For