Documentation

Mathlib.CategoryTheory.MorphismProperty.Comma

Subcategories of comma categories defined by morphism properties #

Given functors L : A ⥤ T and R : B ⥤ T and morphism properties P, Q and W on T, AandBrespectively, we define the subcategoryP.Comma L R Q Wof `Comma L R` where

For an object X : T, this specializes to P.Over Q X which is the subcategory of Over X where the structural morphism satisfies P and where the horizontal morphisms satisfy Q. Common examples of the latter are e.g. the category of schemes étale (finite, affine, etc.) over a base X. Here Q = ⊤.

Implementation details #

theorem CategoryTheory.MorphismProperty.over_iso_iff {T : Type u_3} [Category.{u_4, u_3} T] (P : MorphismProperty T) [P.RespectsIso] {X : T} {f g : Over X} (e : f g) :
P f.hom P g.hom
structure CategoryTheory.MorphismProperty.Comma {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] (L : Functor A T) (R : Functor B T) (P : MorphismProperty T) (Q : MorphismProperty A) (W : MorphismProperty B) extends CategoryTheory.Comma L R :
Type (max (max u_1 u_2) u_6)

P.Comma L R Q W is the subcategory of Comma L R consisting of objects X : Comma L R where X.hom satisfies P. The morphisms are given by morphisms in Comma L R where the left one satisfies Q and the right one satisfies W.

Instances For
    theorem CategoryTheory.MorphismProperty.Comma.ext {A : Type u_1} {inst✝ : Category.{u_4, u_1} A} {B : Type u_2} {inst✝¹ : Category.{u_5, u_2} B} {T : Type u_3} {inst✝² : Category.{u_6, u_3} T} {L : Functor A T} {R : Functor B T} {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} {x y : MorphismProperty.Comma L R P Q W} (left : x.left = y.left) (right : x.right = y.right) (hom : HEq x.hom y.hom) :
    x = y

    A morphism in P.Comma L R Q W is a morphism in Comma L R where the left hom satisfies Q and the right one satisfies W.

    Instances For
      theorem CategoryTheory.MorphismProperty.Comma.Hom.ext {A : Type u_1} {inst✝ : Category.{u_4, u_1} A} {B : Type u_2} {inst✝¹ : Category.{u_5, u_2} B} {T : Type u_3} {inst✝² : Category.{u_6, u_3} T} {L : Functor A T} {R : Functor B T} {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} {X Y : MorphismProperty.Comma L R P Q W} {x y : X.Hom Y} (left : x.left = y.left) (right : x.right = y.right) :
      x = y
      @[reducible, inline]

      The underlying morphism of objects in Comma L R.

      Equations
      Instances For
        @[simp]
        theorem CategoryTheory.MorphismProperty.Comma.Hom.hom_mk {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] {L : Functor A T} {R : Functor B T} {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} {X Y : MorphismProperty.Comma L R P Q W} (f : CommaMorphism X.toComma Y.toComma) (hf : Q f.left) (hg : W f.right) :
        { toCommaMorphism := f, prop_hom_left := hf, prop_hom_right := hg }.hom = f

        See Note [custom simps projection]

        Equations
        Instances For

          The identity morphism of an object in P.Comma L R Q W.

          Equations
          Instances For

            Composition of morphisms in P.Comma L R Q W.

            Equations
            Instances For
              theorem CategoryTheory.MorphismProperty.Comma.Hom.ext' {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] {L : Functor A T} {R : Functor B T} {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {X Y : MorphismProperty.Comma L R P Q W} {f g : X Y} (h : hom f = hom g) :
              f = g

              Alternative ext lemma for Comma.Hom.

              If i is an isomorphism in Comma L R, it is also a morphism in P.Comma L R Q W.

              Equations
              Instances For

                Any isomorphism between objects of P.Comma L R Q W in Comma L R is also an isomorphism in P.Comma L R Q W.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For

                  Constructor for isomorphisms in P.Comma L R Q W from isomorphisms of the left and right components and naturality in the forward direction.

                  Equations
                  Instances For

                    The forgetful functor.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      @[simp]
                      theorem CategoryTheory.MorphismProperty.Comma.forget_map {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] (L : Functor A T) (R : Functor B T) (P : MorphismProperty T) (Q : MorphismProperty A) (W : MorphismProperty B) [Q.IsMultiplicative] [W.IsMultiplicative] {X✝ Y✝ : MorphismProperty.Comma L R P Q W} (f : X✝ Y✝) :
                      (forget L R P Q W).map f = Hom.hom f

                      The forgetful functor from the full subcategory of Comma L R defined by P is fully faithful.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        def CategoryTheory.MorphismProperty.Comma.lift {A : Type u_1} [Category.{u_5, u_1} A] {B : Type u_2} [Category.{u_6, u_2} B] {T : Type u_3} [Category.{u_7, u_3} T] {L : Functor A T} {R : Functor B T} {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {C : Type u_4} [Category.{u_8, u_4} C] (F : Functor C (Comma L R)) (hP : ∀ (X : C), P (F.obj X).hom) (hQ : ∀ {X Y : C} (f : X Y), Q (F.map f).left) (hW : ∀ {X Y : C} (f : X Y), W (F.map f).right) :

                        Lift a functor F : C ⥤ Comma L R to the subcategory P.Comma L R Q W under suitable assumptions on F.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[simp]
                          theorem CategoryTheory.MorphismProperty.Comma.lift_map_hom {A : Type u_1} [Category.{u_5, u_1} A] {B : Type u_2} [Category.{u_6, u_2} B] {T : Type u_3} [Category.{u_7, u_3} T] {L : Functor A T} {R : Functor B T} {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {C : Type u_4} [Category.{u_8, u_4} C] (F : Functor C (Comma L R)) (hP : ∀ (X : C), P (F.obj X).hom) (hQ : ∀ {X Y : C} (f : X Y), Q (F.map f).left) (hW : ∀ {X Y : C} (f : X Y), W (F.map f).right) {X Y : C} (f : X Y) :
                          Hom.hom ((lift F hP hQ hW).map f) = F.map f
                          @[simp]
                          theorem CategoryTheory.MorphismProperty.Comma.lift_obj_toComma {A : Type u_1} [Category.{u_5, u_1} A] {B : Type u_2} [Category.{u_6, u_2} B] {T : Type u_3} [Category.{u_7, u_3} T] {L : Functor A T} {R : Functor B T} {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {C : Type u_4} [Category.{u_8, u_4} C] (F : Functor C (Comma L R)) (hP : ∀ (X : C), P (F.obj X).hom) (hQ : ∀ {X Y : C} (f : X Y), Q (F.map f).left) (hW : ∀ {X Y : C} (f : X Y), W (F.map f).right) (X : C) :
                          ((lift F hP hQ hW).obj X).toComma = F.obj X
                          def CategoryTheory.MorphismProperty.Comma.mapLeft {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] (R : Functor B T) {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {L₁ L₂ : Functor A T} (l : L₁ L₂) (hl : ∀ (X : MorphismProperty.Comma L₂ R P Q W), P (CategoryStruct.comp (l.app X.left) X.hom)) :

                          A natural transformation L₁ ⟶ L₂ induces a functor P.Comma L₂ R Q W ⥤ P.Comma L₁ R Q W.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            @[simp]
                            theorem CategoryTheory.MorphismProperty.Comma.mapLeft_map_left {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] (R : Functor B T) {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {L₁ L₂ : Functor A T} (l : L₁ L₂) (hl : ∀ (X : MorphismProperty.Comma L₂ R P Q W), P (CategoryStruct.comp (l.app X.left) X.hom)) {X Y : MorphismProperty.Comma L₂ R P Q W} (f : X Y) :
                            ((mapLeft R l hl).map f).left = (Hom.hom f).left
                            @[simp]
                            theorem CategoryTheory.MorphismProperty.Comma.mapLeft_obj_right {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] (R : Functor B T) {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {L₁ L₂ : Functor A T} (l : L₁ L₂) (hl : ∀ (X : MorphismProperty.Comma L₂ R P Q W), P (CategoryStruct.comp (l.app X.left) X.hom)) (X : MorphismProperty.Comma L₂ R P Q W) :
                            ((mapLeft R l hl).obj X).right = X.right
                            @[simp]
                            theorem CategoryTheory.MorphismProperty.Comma.mapLeft_map_right {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] (R : Functor B T) {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {L₁ L₂ : Functor A T} (l : L₁ L₂) (hl : ∀ (X : MorphismProperty.Comma L₂ R P Q W), P (CategoryStruct.comp (l.app X.left) X.hom)) {X Y : MorphismProperty.Comma L₂ R P Q W} (f : X Y) :
                            ((mapLeft R l hl).map f).right = (Hom.hom f).right
                            @[simp]
                            theorem CategoryTheory.MorphismProperty.Comma.mapLeft_obj_hom {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] (R : Functor B T) {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {L₁ L₂ : Functor A T} (l : L₁ L₂) (hl : ∀ (X : MorphismProperty.Comma L₂ R P Q W), P (CategoryStruct.comp (l.app X.left) X.hom)) (X : MorphismProperty.Comma L₂ R P Q W) :
                            @[simp]
                            theorem CategoryTheory.MorphismProperty.Comma.mapLeft_obj_left {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] (R : Functor B T) {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {L₁ L₂ : Functor A T} (l : L₁ L₂) (hl : ∀ (X : MorphismProperty.Comma L₂ R P Q W), P (CategoryStruct.comp (l.app X.left) X.hom)) (X : MorphismProperty.Comma L₂ R P Q W) :
                            ((mapLeft R l hl).obj X).left = X.left
                            def CategoryTheory.MorphismProperty.Comma.mapRight {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] (L : Functor A T) {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {R₁ R₂ : Functor B T} (r : R₁ R₂) (hr : ∀ (X : MorphismProperty.Comma L R₁ P Q W), P (CategoryStruct.comp X.hom (r.app X.right))) :

                            A natural transformation R₁ ⟶ R₂ induces a functor P.Comma L R₁ Q W ⥤ P.Comma L R₂ Q W.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              @[simp]
                              theorem CategoryTheory.MorphismProperty.Comma.mapRight_map_left {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] (L : Functor A T) {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {R₁ R₂ : Functor B T} (r : R₁ R₂) (hr : ∀ (X : MorphismProperty.Comma L R₁ P Q W), P (CategoryStruct.comp X.hom (r.app X.right))) {X Y : MorphismProperty.Comma L R₁ P Q W} (f : X Y) :
                              ((mapRight L r hr).map f).left = (Hom.hom f).left
                              @[simp]
                              theorem CategoryTheory.MorphismProperty.Comma.mapRight_map_right {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] (L : Functor A T) {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {R₁ R₂ : Functor B T} (r : R₁ R₂) (hr : ∀ (X : MorphismProperty.Comma L R₁ P Q W), P (CategoryStruct.comp X.hom (r.app X.right))) {X Y : MorphismProperty.Comma L R₁ P Q W} (f : X Y) :
                              ((mapRight L r hr).map f).right = (Hom.hom f).right
                              @[simp]
                              theorem CategoryTheory.MorphismProperty.Comma.mapRight_obj_hom {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] (L : Functor A T) {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {R₁ R₂ : Functor B T} (r : R₁ R₂) (hr : ∀ (X : MorphismProperty.Comma L R₁ P Q W), P (CategoryStruct.comp X.hom (r.app X.right))) (X : MorphismProperty.Comma L R₁ P Q W) :
                              @[simp]
                              theorem CategoryTheory.MorphismProperty.Comma.mapRight_obj_left {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] (L : Functor A T) {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {R₁ R₂ : Functor B T} (r : R₁ R₂) (hr : ∀ (X : MorphismProperty.Comma L R₁ P Q W), P (CategoryStruct.comp X.hom (r.app X.right))) (X : MorphismProperty.Comma L R₁ P Q W) :
                              ((mapRight L r hr).obj X).left = X.left
                              @[simp]
                              theorem CategoryTheory.MorphismProperty.Comma.mapRight_obj_right {A : Type u_1} [Category.{u_4, u_1} A] {B : Type u_2} [Category.{u_5, u_2} B] {T : Type u_3} [Category.{u_6, u_3} T] (L : Functor A T) {P : MorphismProperty T} {Q : MorphismProperty A} {W : MorphismProperty B} [Q.IsMultiplicative] [W.IsMultiplicative] {R₁ R₂ : Functor B T} (r : R₁ R₂) (hr : ∀ (X : MorphismProperty.Comma L R₁ P Q W), P (CategoryStruct.comp X.hom (r.app X.right))) (X : MorphismProperty.Comma L R₁ P Q W) :
                              ((mapRight L r hr).obj X).right = X.right
                              @[reducible, inline]
                              abbrev CategoryTheory.MorphismProperty.Over {T : Type u_1} [Category.{u_2, u_1} T] (P Q : MorphismProperty T) (X : T) :
                              Type (max u_2 u_1)

                              Given a morphism property P on a category C and an object X : C, this is the subcategory of Over X defined by P where morphisms satisfy Q.

                              Equations
                              Instances For
                                @[reducible, inline]

                                The forgetful functor from the full subcategory of Over X defined by P to Over X.

                                Equations
                                Instances For
                                  def CategoryTheory.MorphismProperty.Over.Hom.mk {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] {A B : P.Over Q X} (f : A.toComma B.toComma) (hf : Q f.left) :
                                  A B

                                  Construct a morphism in P.Over Q X from a morphism in Over.X.

                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem CategoryTheory.MorphismProperty.Over.Hom.mk_hom {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] {A B : P.Over Q X} (f : A.toComma B.toComma) (hf : Q f.left) :
                                    Comma.Hom.hom (mk f hf) = f
                                    def CategoryTheory.MorphismProperty.Over.mk {T : Type u_1} [Category.{u_2, u_1} T] {P : MorphismProperty T} (Q : MorphismProperty T) {X A : T} (f : A X) (hf : P f) :
                                    P.Over Q X

                                    Make an object of P.Over Q X from a morphism f : A ⟶ X and a proof of P f.

                                    Equations
                                    Instances For
                                      @[simp]
                                      theorem CategoryTheory.MorphismProperty.Over.mk_hom {T : Type u_1} [Category.{u_2, u_1} T] {P : MorphismProperty T} (Q : MorphismProperty T) {X A : T} (f : A X) (hf : P f) :
                                      (Over.mk Q f hf).hom = f
                                      @[simp]
                                      theorem CategoryTheory.MorphismProperty.Over.mk_left {T : Type u_1} [Category.{u_2, u_1} T] {P : MorphismProperty T} (Q : MorphismProperty T) {X A : T} (f : A X) (hf : P f) :
                                      (Over.mk Q f hf).left = A
                                      def CategoryTheory.MorphismProperty.Over.homMk {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] {A B : P.Over Q X} (f : A.left B.left) (w : CategoryStruct.comp f B.hom = A.hom := by aesop_cat) (hf : Q f := by trivial) :
                                      A B

                                      Make a morphism in P.Over Q X from a morphism in T with compatibilities.

                                      Equations
                                      Instances For
                                        @[simp]
                                        theorem CategoryTheory.MorphismProperty.Over.homMk_hom {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] {A B : P.Over Q X} (f : A.left B.left) (w : CategoryStruct.comp f B.hom = A.hom := by aesop_cat) (hf : Q f := by trivial) :
                                        def CategoryTheory.MorphismProperty.Over.isoMk {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] [Q.RespectsIso] {A B : P.Over Q X} (f : A.left B.left) (w : CategoryStruct.comp f.hom B.hom = A.hom := by aesop_cat) :
                                        A B

                                        Make an isomorphism in P.Over Q X from an isomorphism in T with compatibilities.

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem CategoryTheory.MorphismProperty.Over.isoMk_inv_left {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] [Q.RespectsIso] {A B : P.Over Q X} (f : A.left B.left) (w : CategoryStruct.comp f.hom B.hom = A.hom := by aesop_cat) :
                                          @[simp]
                                          theorem CategoryTheory.MorphismProperty.Over.isoMk_hom_left {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] [Q.RespectsIso] {A B : P.Over Q X} (f : A.left B.left) (w : CategoryStruct.comp f.hom B.hom = A.hom := by aesop_cat) :
                                          theorem CategoryTheory.MorphismProperty.Over.Hom.ext {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] {A B : P.Over Q X} {f g : A B} (h : f.left = g.left) :
                                          f = g
                                          @[reducible, inline]
                                          abbrev CategoryTheory.MorphismProperty.Under {T : Type u_1} [Category.{u_2, u_1} T] (P Q : MorphismProperty T) (X : T) :
                                          Type (max u_2 u_1)

                                          Given a morphism property P on a category C and an object X : C, this is the subcategory of Under X defined by P where morphisms satisfy Q.

                                          Equations
                                          Instances For
                                            @[reducible, inline]

                                            The forgetful functor from the full subcategory of Under X defined by P to Under X.

                                            Equations
                                            Instances For
                                              def CategoryTheory.MorphismProperty.Under.Hom.mk {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] {A B : P.Under Q X} (f : A.toComma B.toComma) (hf : Q f.right) :
                                              A B

                                              Construct a morphism in P.Under Q X from a morphism in Under.X.

                                              Equations
                                              Instances For
                                                @[simp]
                                                theorem CategoryTheory.MorphismProperty.Under.Hom.mk_hom {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] {A B : P.Under Q X} (f : A.toComma B.toComma) (hf : Q f.right) :
                                                Comma.Hom.hom (mk f hf) = f
                                                def CategoryTheory.MorphismProperty.Under.mk {T : Type u_1} [Category.{u_2, u_1} T] {P : MorphismProperty T} (Q : MorphismProperty T) {X A : T} (f : X A) (hf : P f) :
                                                P.Under Q X

                                                Make an object of P.Under Q X from a morphism f : A ⟶ X and a proof of P f.

                                                Equations
                                                Instances For
                                                  @[simp]
                                                  theorem CategoryTheory.MorphismProperty.Under.mk_hom {T : Type u_1} [Category.{u_2, u_1} T] {P : MorphismProperty T} (Q : MorphismProperty T) {X A : T} (f : X A) (hf : P f) :
                                                  (Under.mk Q f hf).hom = f
                                                  @[simp]
                                                  theorem CategoryTheory.MorphismProperty.Under.mk_left {T : Type u_1} [Category.{u_2, u_1} T] {P : MorphismProperty T} (Q : MorphismProperty T) {X A : T} (f : X A) (hf : P f) :
                                                  (Under.mk Q f hf).left = { as := PUnit.unit }
                                                  def CategoryTheory.MorphismProperty.Under.homMk {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] {A B : P.Under Q X} (f : A.right B.right) (w : CategoryStruct.comp A.hom f = B.hom := by aesop_cat) (hf : Q f := by trivial) :
                                                  A B

                                                  Make a morphism in P.Under Q X from a morphism in T with compatibilities.

                                                  Equations
                                                  Instances For
                                                    @[simp]
                                                    theorem CategoryTheory.MorphismProperty.Under.homMk_hom {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] {A B : P.Under Q X} (f : A.right B.right) (w : CategoryStruct.comp A.hom f = B.hom := by aesop_cat) (hf : Q f := by trivial) :
                                                    def CategoryTheory.MorphismProperty.Under.isoMk {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] [Q.RespectsIso] {A B : P.Under Q X} (f : A.right B.right) (w : CategoryStruct.comp A.hom f.hom = B.hom := by aesop_cat) :
                                                    A B

                                                    Make an isomorphism in P.Under Q X from an isomorphism in T with compatibilities.

                                                    Equations
                                                    Instances For
                                                      @[simp]
                                                      theorem CategoryTheory.MorphismProperty.Under.isoMk_hom_right {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] [Q.RespectsIso] {A B : P.Under Q X} (f : A.right B.right) (w : CategoryStruct.comp A.hom f.hom = B.hom := by aesop_cat) :
                                                      @[simp]
                                                      theorem CategoryTheory.MorphismProperty.Under.isoMk_inv_right {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] [Q.RespectsIso] {A B : P.Under Q X} (f : A.right B.right) (w : CategoryStruct.comp A.hom f.hom = B.hom := by aesop_cat) :
                                                      theorem CategoryTheory.MorphismProperty.Under.Hom.ext {T : Type u_1} [Category.{u_2, u_1} T] {P Q : MorphismProperty T} {X : T} [Q.IsMultiplicative] {A B : P.Under Q X} {f g : A B} (h : f.right = g.right) :
                                                      f = g