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) :
              def CategoryTheory.Retract.ofIso {C : Type u} [Category.{v, u} C] {X Y : C} (e : X Y) :

              If e : X ≅ Y, then X is a retract of Y.

              Equations
              Instances For
                @[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_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
                    @[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
                    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_r {C : Type u} [Category.{v, u} C] {X Y : C} (e : X Y) :
                        @[simp]
                        theorem CategoryTheory.Iso.retract_i {C : Type u} [Category.{v, u} C] {X Y : C} (e : X Y) :