Documentation

Mathlib.CategoryTheory.Retract

Retracts #

Defines retracts of objects and morphisms.

structure CategoryTheory.Retract {C : Type u} [Category.{v, u} C] (X Y : C) :

An object X is a retract of Y if there are morphisms i : X ⟶ Y and r : Y ⟶ X such that ir = 𝟙 X.

Instances For
    @[simp]
    theorem CategoryTheory.Retract.retract_assoc {C : Type u} [Category.{v, u} C] {X Y : C} (self : Retract X Y) {Z : C} (h : X Z) :
    def CategoryTheory.Retract.map {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] {X Y : C} (h : Retract X Y) (F : Functor C D) :
    Retract (F.obj X) (F.obj Y)

    If X is a retract of Y, then F.obj X is a retract of F.obj Y.

    Equations
    • h.map F = { i := F.map h.i, r := F.map h.r, retract := }
    Instances For
      @[simp]
      theorem CategoryTheory.Retract.map_i {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] {X Y : C} (h : Retract X Y) (F : Functor C D) :
      (h.map F).i = F.map h.i
      @[simp]
      theorem CategoryTheory.Retract.map_r {C : Type u} [Category.{v, u} C] {D : Type u'} [Category.{v', u'} D] {X Y : C} (h : Retract X Y) (F : Functor C D) :
      (h.map F).r = F.map h.r
      def CategoryTheory.Retract.splitEpi {C : Type u} [Category.{v, u} C] {X Y : C} (h : Retract X Y) :

      a retract determines a split epimorphism.

      Equations
      Instances For
        @[simp]

        a retract determines a split monomorphism.

        Equations
        Instances For

          Any object is a retract of itself.

          Equations
          Instances For
            def CategoryTheory.Retract.trans {C : Type u} [Category.{v, u} C] {X Y : C} (h : Retract X Y) {Z : C} (h' : Retract Y Z) :

            A retract of a retract is a retract.

            Equations
            Instances For
              @[simp]
              theorem CategoryTheory.Retract.trans_i {C : Type u} [Category.{v, u} C] {X Y : C} (h : Retract X Y) {Z : C} (h' : Retract Y Z) :
              @[simp]
              theorem CategoryTheory.Retract.trans_r {C : Type u} [Category.{v, u} C] {X Y : C} (h : Retract X Y) {Z : C} (h' : Retract Y Z) :
              @[reducible, inline]
              abbrev CategoryTheory.RetractArrow {C : Type u} [Category.{v, u} C] {X Y Z W : C} (f : X Y) (g : Z W) :
                X -------> Z -------> X
                |          |          |
                f          g          f
                |          |          |
                v          v          v
                Y -------> W -------> Y
              
              

              A morphism f : X ⟶ Y is a retract of g : Z ⟶ W if there are morphisms i : f ⟶ g and r : g ⟶ f in the arrow category such that ir = 𝟙 f.

              Equations
              Instances For
                theorem CategoryTheory.RetractArrow.i_w {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) :
                theorem CategoryTheory.RetractArrow.i_w_assoc {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) {Z✝ : C} (h✝ : W Z✝) :
                theorem CategoryTheory.RetractArrow.r_w {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) :
                theorem CategoryTheory.RetractArrow.r_w_assoc {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) {Z✝ : C} (h✝ : Y Z✝) :
                def CategoryTheory.RetractArrow.left {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) :

                The top of a retract diagram of morphisms determines a retract of objects.

                Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.RetractArrow.left_r {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) :
                  h.left.r = h.r.left
                  @[simp]
                  theorem CategoryTheory.RetractArrow.left_i {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) :
                  h.left.i = h.i.left
                  def CategoryTheory.RetractArrow.right {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) :

                  The bottom of a retract diagram of morphisms determines a retract of objects.

                  Equations
                  Instances For
                    @[simp]
                    theorem CategoryTheory.RetractArrow.right_i {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) :
                    @[simp]
                    theorem CategoryTheory.RetractArrow.right_r {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) :
                    @[simp]
                    theorem CategoryTheory.RetractArrow.retract_left {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) :
                    @[simp]
                    theorem CategoryTheory.RetractArrow.retract_left_assoc {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) {Z✝ : C} (h✝ : (Arrow.mk f).left Z✝) :
                    @[simp]
                    @[simp]
                    theorem CategoryTheory.RetractArrow.retract_right_assoc {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) {Z✝ : C} (h✝ : (Arrow.mk f).right Z✝) :
                    instance CategoryTheory.RetractArrow.instIsSplitEpiLeftRArrow {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) :
                    instance CategoryTheory.RetractArrow.instIsSplitEpiRightRArrow {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) :
                    instance CategoryTheory.RetractArrow.instIsSplitMonoLeftIArrow {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) :
                    instance CategoryTheory.RetractArrow.instIsSplitMonoRightIArrow {C : Type u} [Category.{v, u} C] {X Y Z W : C} {f : X Y} {g : Z W} (h : RetractArrow f g) :
                    def CategoryTheory.Iso.retract {C : Type u} [Category.{v, u} C] {X Y : C} (e : X Y) :

                    If X is isomorphic to Y, then X is a retract of Y.

                    Equations
                    Instances For
                      @[simp]
                      theorem CategoryTheory.Iso.retract_i {C : Type u} [Category.{v, u} C] {X Y : C} (e : X Y) :
                      @[simp]
                      theorem CategoryTheory.Iso.retract_r {C : Type u} [Category.{v, u} C] {X Y : C} (e : X Y) :