Documentation

Mathlib.CategoryTheory.Subobject.Comma

Subobjects in the category of structured arrows #

We compute the subobjects of an object A in the category StructuredArrow S T for T : C ⥤ D and S : D as a subtype of the subobjects of A.right. We deduce that StructuredArrow S T is well-powered if C is.

Main declarations #

Implementation notes #

Our computation requires that C has all limits and T preserves all limits. Furthermore, we require that the morphisms of C and D are in the same universe. It is possible that both of these requirements can be relaxed by refining the results about limits in comma categories.

We also provide the dual results. As usual, we use Subobject (op A) for the quotient objects of A.

Every subobject of a structured arrow can be projected to a subobject of the underlying object.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    def CategoryTheory.StructuredArrow.liftSubobject {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v, u₂} D] {S : D} {T : CategoryTheory.Functor C D} {A : CategoryTheory.StructuredArrow S T} (P : CategoryTheory.Subobject A.right) {q : (CategoryTheory.Functor.fromPUnit S).toPrefunctor.obj A.left T.toPrefunctor.obj (CategoryTheory.Subobject.underlying.toPrefunctor.obj P)} (hq : CategoryTheory.CategoryStruct.comp q (T.toPrefunctor.map (CategoryTheory.Subobject.arrow P)) = A.hom) :

    A subobject of the underlying object of a structured arrow can be lifted to a subobject of the structured arrow, provided that there is a morphism making the subobject into a structured arrow.

    Equations
    Instances For

      Projecting and then lifting a subobject recovers the original subobject, because there is at most one morphism making the projected subobject into a structured arrow.

      If A : S → T.obj B is a structured arrow for S : D and T : C ⥤ D, then we can explicitly describe the subobjects of A as the subobjects P of B in C for which A.hom factors through the image of P under T.

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

        Every quotient of a costructured arrow can be projected to a quotient of the underlying object.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def CategoryTheory.CostructuredArrow.liftQuotient {C : Type u₁} [CategoryTheory.Category.{v, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v, u₂} D] {S : CategoryTheory.Functor C D} {T : D} {A : CategoryTheory.CostructuredArrow S T} (P : CategoryTheory.Subobject (Opposite.op A.left)) {q : S.toPrefunctor.obj (CategoryTheory.Subobject.underlying.toPrefunctor.obj P).unop (CategoryTheory.Functor.fromPUnit T).toPrefunctor.obj A.right} (hq : CategoryTheory.CategoryStruct.comp (S.toPrefunctor.map (CategoryTheory.Subobject.arrow P).unop) q = A.hom) :

          A quotient of the underlying object of a costructured arrow can be lifted to a quotient of the costructured arrow, provided that there is a morphism making the quotient into a costructured arrow.

          Equations
          Instances For

            Projecting and then lifting a quotient recovers the original quotient, because there is at most one morphism making the projected quotient into a costructured arrow.

            If A : S.obj B ⟶ T is a costructured arrow for S : C ⥤ D and T : D, then we can explicitly describe the quotients of A as the quotients P of B in C for which A.hom factors through the image of P under S.

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