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
      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_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.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.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) :