Documentation

Mathlib.CategoryTheory.Filtration.Basic

Filtrations #

In this file, a filtration on X indexed by a category I is defined as a functor I ⥤ MonoOver X.

We also define the category of filtered objects and strict morphisms, characterized by pullback squares at each filtration level.

Implementation notes #

We model a filtration as a functor to MonoOver X, so that the filtration steps and their inclusions into X are bundled together and functorial in the index category.

References #

structure CategoryTheory.Filtration {C : Type u} [Category.{v, u} C] (X : C) (I : Type u_1) [Category.{u_2, u_1} I] :
Type (max (max (max u u_1) u_2) v)

A filtration on X indexed by I, as a functor I ⥤ MonoOver X.

Instances For
    @[reducible, inline]
    abbrev CategoryTheory.Filtration.diagram {C : Type u} [Category.{v, u} C] {X : C} {I : Type u_1} [Category.{u_2, u_1} I] (F : Filtration X I) :

    The underlying diagram in C obtained by forgetting MonoOver.

    Equations
    Instances For
      theorem CategoryTheory.Filtration.diagram_obj {C : Type u} [Category.{v, u} C] {X : C} {I : Type u_1} [Category.{u_2, u_1} I] (F : Filtration X I) (X✝ : I) :
      F.diagram.obj X✝ = (F.toMonoOver.obj X✝).obj.left
      theorem CategoryTheory.Filtration.diagram_map {C : Type u} [Category.{v, u} C] {X : C} {I : Type u_1} [Category.{u_2, u_1} I] (F : Filtration X I) {X✝ Y✝ : I} (f : X✝ Y✝) :
      @[reducible, inline]
      abbrev CategoryTheory.Filtration.obj {C : Type u} [Category.{v, u} C] {X : C} {I : Type u_1} [Category.{u_2, u_1} I] (F : Filtration X I) (i : I) :
      C

      The object at index i (domain of the mono into X).

      Equations
      Instances For
        @[implicit_reducible]

        The natural transformation from the filtration diagram to the constant underlying object.

        Equations
        Instances For
          theorem CategoryTheory.Filtration.ι_app {C : Type u} [Category.{v, u} C] {X : C} {I : Type u_1} [Category.{u_2, u_1} I] (F : Filtration X I) (i : I) :
          instance CategoryTheory.Filtration.instMonoAppι {C : Type u} [Category.{v, u} C] {X : C} {I : Type u_1} [Category.{u_2, u_1} I] (F : Filtration X I) (i : I) :
          Mono (F.ι.app i)
          structure CategoryTheory.FilteredObject (C : Type u) [Category.{v, u} C] (I : Type u_1) [Category.{u_2, u_1} I] :
          Type (max (max (max u u_1) u_2) v)

          A filtered object: an object equipped with a filtration.

          • X : C

            The underlying object.

          • filtration : Filtration self.X I

            The filtration on X.

          Instances For
            @[reducible, inline]

            The filtration diagram in C.

            Equations
            Instances For
              structure CategoryTheory.FilteredObject.Hom {C : Type u} [Category.{v, u} C] {I : Type u_1} [Category.{u_2, u_1} I] (F G : FilteredObject C I) :
              Type (max u_1 v)

              Morphisms of filtered objects: a morphism on objects and a compatible natural transformation between the filtration diagrams.

              Instances For
                theorem CategoryTheory.FilteredObject.Hom.ext {C : Type u} {inst✝ : Category.{v, u} C} {I : Type u_1} {inst✝¹ : Category.{u_2, u_1} I} {F G : FilteredObject C I} {x y : F.Hom G} (hom : x.hom = y.hom) (natTrans : x.natTrans = y.natTrans) :
                x = y
                theorem CategoryTheory.FilteredObject.Hom.ext_iff {C : Type u} {inst✝ : Category.{v, u} C} {I : Type u_1} {inst✝¹ : Category.{u_2, u_1} I} {F G : FilteredObject C I} {x y : F.Hom G} :
                @[simp]

                Commutativity with the structure maps into the underlying objects.

                @[instance_reducible]

                The category structure on filtered objects.

                Equations
                • One or more equations did not get rendered due to their size.
                @[simp]
                theorem CategoryTheory.FilteredObject.comp_hom {C : Type u} [Category.{v, u} C] {I : Type u_1} [Category.{u_2, u_1} I] {X✝ Y✝ Z✝ : FilteredObject C I} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) :
                @[simp]
                theorem CategoryTheory.FilteredObject.comp_natTrans {C : Type u} [Category.{v, u} C] {I : Type u_1} [Category.{u_2, u_1} I] {X✝ Y✝ Z✝ : FilteredObject C I} (f : X✝.Hom Y✝) (g : Y✝.Hom Z✝) :
                theorem CategoryTheory.FilteredObject.hom_ext {C : Type u} [Category.{v, u} C] {I : Type u_1} [Category.{u_2, u_1} I] {F G : FilteredObject C I} {f g : F G} (h : f.hom = g.hom) :
                f = g
                theorem CategoryTheory.FilteredObject.hom_ext_iff {C : Type u} [Category.{v, u} C] {I : Type u_1} [Category.{u_2, u_1} I] {F G : FilteredObject C I} {f g : F G} :
                f = g f.hom = g.hom
                @[implicit_reducible]
                def CategoryTheory.FilteredObject.homMk {C : Type u} [Category.{v, u} C] {I : Type u_1} [Category.{u_2, u_1} I] {F G : FilteredObject C I} (hom : F.X G.X) (app : (i : I) → F.filtration.obj i G.filtration.obj i) (comm : ∀ (i : I), CategoryStruct.comp (app i) (G.filtration.ι.app i) = CategoryStruct.comp (F.filtration.ι.app i) hom := by cat_disch) :
                F G

                Constructor for morphisms of filtered objects.

                Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.FilteredObject.homMk_hom {C : Type u} [Category.{v, u} C] {I : Type u_1} [Category.{u_2, u_1} I] {F G : FilteredObject C I} (hom : F.X G.X) (app : (i : I) → F.filtration.obj i G.filtration.obj i) (comm : ∀ (i : I), CategoryStruct.comp (app i) (G.filtration.ι.app i) = CategoryStruct.comp (F.filtration.ι.app i) hom := by cat_disch) :
                  (homMk hom app comm).hom = hom
                  @[simp]
                  theorem CategoryTheory.FilteredObject.homMk_natTrans_app {C : Type u} [Category.{v, u} C] {I : Type u_1} [Category.{u_2, u_1} I] {F G : FilteredObject C I} (hom : F.X G.X) (app : (i : I) → F.filtration.obj i G.filtration.obj i) (comm : ∀ (i : I), CategoryStruct.comp (app i) (G.filtration.ι.app i) = CategoryStruct.comp (F.filtration.ι.app i) hom := by cat_disch) (i : I) :
                  (homMk hom app comm).natTrans.app i = app i
                  @[implicit_reducible]
                  def CategoryTheory.FilteredObject.isoMk {C : Type u} [Category.{v, u} C] {I : Type u_1} [Category.{u_2, u_1} I] {F G : FilteredObject C I} (iso : F.X G.X) (app : (i : I) → F.filtration.obj i G.filtration.obj i) (comm : ∀ (i : I), CategoryStruct.comp (app i).hom (G.filtration.ι.app i) = CategoryStruct.comp (F.filtration.ι.app i) iso.hom := by cat_disch) :
                  F G

                  Constructor for isomorphisms of filtered objects.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[simp]
                    theorem CategoryTheory.FilteredObject.isoMk_hom {C : Type u} [Category.{v, u} C] {I : Type u_1} [Category.{u_2, u_1} I] {F G : FilteredObject C I} (iso : F.X G.X) (app : (i : I) → F.filtration.obj i G.filtration.obj i) (comm : ∀ (i : I), CategoryStruct.comp (app i).hom (G.filtration.ι.app i) = CategoryStruct.comp (F.filtration.ι.app i) iso.hom := by cat_disch) :
                    (isoMk iso app comm).hom = homMk iso.hom (fun (i : I) => (app i).hom) comm
                    @[simp]
                    theorem CategoryTheory.FilteredObject.isoMk_inv {C : Type u} [Category.{v, u} C] {I : Type u_1} [Category.{u_2, u_1} I] {F G : FilteredObject C I} (iso : F.X G.X) (app : (i : I) → F.filtration.obj i G.filtration.obj i) (comm : ∀ (i : I), CategoryStruct.comp (app i).hom (G.filtration.ι.app i) = CategoryStruct.comp (F.filtration.ι.app i) iso.hom := by cat_disch) :
                    (isoMk iso app comm).inv = homMk iso.inv (fun (i : I) => (app i).inv)

                    Strictness of a filtered morphism: each compatibility square is a pullback.

                    Instances
                      @[reducible, inline]

                      The morphism property of strict morphisms of filtered objects.

                      Equations
                      Instances For
                        @[implicit_reducible]

                        The forgetful functor FilteredObject C I ⥤ C.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[simp]
                          theorem CategoryTheory.FilteredObject.forget_map {C : Type u} [Category.{v, u} C] {I : Type u_1} [Category.{u_2, u_1} I] {X✝ Y✝ : FilteredObject C I} (f : X✝ Y✝) :