Documentation

Mathlib.CategoryTheory.Subobject.Limits

Specific subobjects #

We define equalizerSubobject, kernelSubobject and imageSubobject, which are the subobjects represented by the equalizer, kernel and image of (a pair of) morphism(s) and provide conditions for P.factors f, where P is one of these special subobjects.

TODO: Add conditions for when P is a pullback subobject. TODO: an iff characterisation of (imageSubobject f).Factors h

@[reducible, inline]

The equalizer of morphisms f g : X ⟶ Y as a Subobject X.

Equations
    Instances For

      The underlying object of equalizerSubobject f g is (up to isomorphism!) the same as the chosen object equalizer f g.

      Equations
        Instances For
          @[reducible, inline]

          The kernel of a morphism f : X ⟶ Y as a Subobject X.

          Equations
            Instances For

              The underlying object of kernelSubobject f is (up to isomorphism!) the same as the chosen object kernel f.

              Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.Limits.kernelSubobject_arrow_apply {C : Type u} [Category.{v, u} C] {X Y : C} [HasZeroMorphisms C] (f : X Y) [HasKernel f] {F : CCType uF} {carrier : CType w} {instFunLike : (X Y : C) → FunLike (F X Y) (carrier X) (carrier Y)} [inst : ConcreteCategory C F] (x : ToType (Subobject.underlying.obj (kernelSubobject f))) :
                  @[simp]
                  theorem CategoryTheory.Limits.kernelSubobject_arrow'_apply {C : Type u} [Category.{v, u} C] {X Y : C} [HasZeroMorphisms C] (f : X Y) [HasKernel f] {F : CCType uF} {carrier : CType w} {instFunLike : (X Y : C) → FunLike (F X Y) (carrier X) (carrier Y)} [inst : ConcreteCategory C F] (x : ToType (kernel f)) :
                  @[simp]
                  theorem CategoryTheory.Limits.kernelSubobject_arrow_comp_apply {C : Type u} [Category.{v, u} C] {X Y : C} [HasZeroMorphisms C] (f : X Y) [HasKernel f] {F : CCType uF} {carrier : CType w} {instFunLike : (X Y : C) → FunLike (F X Y) (carrier X) (carrier Y)} [inst : ConcreteCategory C F] (x : ToType (Subobject.underlying.obj (kernelSubobject f))) :

                  A factorisation of h : W ⟶ X through kernelSubobject f, assuming h ≫ f = 0.

                  Equations
                    Instances For

                      A commuting square induces a morphism between the kernel subobjects.

                      Equations
                        Instances For
                          @[simp]
                          theorem CategoryTheory.Limits.kernelSubobjectMap_arrow_apply {C : Type u} [Category.{v, u} C] {X Y : C} [HasZeroMorphisms C] {f : X Y} [HasKernel f] {X' Y' : C} {f' : X' Y'} [HasKernel f'] (sq : Arrow.mk f Arrow.mk f') {F : CCType uF} {carrier : CType w} {instFunLike : (X Y : C) → FunLike (F X Y) (carrier X) (carrier Y)} [inst : ConcreteCategory C F] (x : ToType (Subobject.underlying.obj (kernelSubobject f))) :
                          @[simp]
                          theorem CategoryTheory.Limits.kernelSubobjectMap_comp {C : Type u} [Category.{v, u} C] {X Y : C} [HasZeroMorphisms C] {f : X Y} [HasKernel f] {X' Y' : C} {f' : X' Y'} [HasKernel f'] {X'' Y'' : C} {f'' : X'' Y''} [HasKernel f''] (sq : Arrow.mk f Arrow.mk f') (sq' : Arrow.mk f' Arrow.mk f'') :

                          The isomorphism between the kernel of f ≫ g and the kernel of g, when f is an isomorphism.

                          Equations
                            Instances For

                              The kernel of f is always a smaller subobject than the kernel of f ≫ h.

                              @[simp]

                              Postcomposing by a monomorphism does not change the kernel subobject.

                              Taking cokernels is an order-reversing map from the subobjects of X to the quotient objects of X.

                              Equations
                                Instances For
                                  @[simp]
                                  theorem CategoryTheory.Limits.cokernelOrderHom_coe {C : Type u} [Category.{v, u} C] [HasZeroMorphisms C] [HasCokernels C] (X : C) (a✝ : Subobject X) :
                                  (cokernelOrderHom X) a✝ = Subobject.lift (fun (x : C) (f : x X) (x_1 : Mono f) => Subobject.mk (cokernel.π f).op) a✝

                                  Taking kernels is an order-reversing map from the quotient objects of X to the subobjects of X.

                                  Equations
                                    Instances For
                                      @[simp]
                                      theorem CategoryTheory.Limits.kernelOrderHom_coe {C : Type u} [Category.{v, u} C] [HasZeroMorphisms C] [HasKernels C] (X : C) (a✝ : Subobject (Opposite.op X)) :
                                      (kernelOrderHom X) a✝ = Subobject.lift (fun (x : Cᵒᵖ) (f : x Opposite.op X) (x_1 : Mono f) => Subobject.mk (kernel.ι f.unop)) a✝
                                      @[reducible, inline]
                                      abbrev CategoryTheory.Limits.imageSubobject {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) [HasImage f] :

                                      The image of a morphism f g : X ⟶ Y as a Subobject Y.

                                      Equations
                                        Instances For

                                          The underlying object of imageSubobject f is (up to isomorphism!) the same as the chosen object image f.

                                          Equations
                                            Instances For

                                              A factorisation of f : X ⟶ Y through imageSubobject f.

                                              Equations
                                                Instances For
                                                  @[simp]
                                                  theorem CategoryTheory.Limits.imageSubobject_arrow_comp_apply {C : Type u} [Category.{v, u} C] {X Y : C} (f : X Y) [HasImage f] {F : CCType uF} {carrier : CType w} {instFunLike : (X Y : C) → FunLike (F X Y) (carrier X) (carrier Y)} [inst : ConcreteCategory C F] (x : ToType X) :

                                                  The image of h ≫ f is always a smaller subobject than the image of f.

                                                  The morphism imageSubobject (h ≫ f) ⟶ imageSubobject f is an epimorphism when h is an epimorphism. In general this does not imply that imageSubobject (h ≫ f) = imageSubobject f, although it will when the ambient category is abelian.

                                                  Postcomposing by an isomorphism gives an isomorphism between image subobjects.

                                                  Equations
                                                    Instances For

                                                      Precomposing by an isomorphism does not change the image subobject.

                                                      theorem CategoryTheory.Limits.imageSubobject_le_mk {C : Type u} [Category.{v, u} C] {A B X : C} (g : X B) [Mono g] (f : A B) [HasImage f] (h : A X) (w : CategoryStruct.comp h g = f) :

                                                      Given a commutative square between morphisms f and g, we have a morphism in the category from imageSubobject f to imageSubobject g.

                                                      Equations
                                                        Instances For