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
      • h.splitEpi = { section_ := h.i, id := }
      Instances For
        @[simp]
        theorem CategoryTheory.Retract.splitEpi_section_ {C : Type u} [Category.{v, u} C] {X Y : C} (h : Retract X Y) :
        h.splitEpi.section_ = h.i
        def CategoryTheory.Retract.splitMono {C : Type u} [Category.{v, u} C] {X Y : C} (h : Retract X Y) :

        a retract determines a split monomorphism.

        Equations
        • h.splitMono = { retraction := h.r, id := }
        Instances For
          @[simp]
          theorem CategoryTheory.Retract.splitMono_retraction {C : Type u} [Category.{v, u} C] {X Y : C} (h : Retract X Y) :
          h.splitMono.retraction = h.r
          @[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) :
                h.right.i = h.i.right
                @[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) :
                h.right.r = h.r.right
                @[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]
                theorem CategoryTheory.RetractArrow.retract_right {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_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) :
                IsSplitEpi h.r.left
                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) :
                IsSplitEpi h.r.right
                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) :
                IsSplitMono h.i.left
                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) :
                IsSplitMono h.i.right