Properties of objects that are stable under finite products #
We introduce typeclasses IsClosedUnderBinaryProducts and
IsClosedUnderFiniteProducts expressing that P : ObjectProperty C
is closed under binary products or finite products.
We introduce a constructor for P.IsClosedUnderFiniteProducts
assuming P.IsClosedUnderBinaryProducts,
P.IsClosedUnderLimitsOfShape (Discrete.{0} PEmpty) and that C
has finite products.
@[reducible, inline]
abbrev
CategoryTheory.ObjectProperty.IsClosedUnderBinaryProducts
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
:
The typeclass saying that P : ObjectProperty C is stable under binary products.
Equations
Instances For
theorem
CategoryTheory.ObjectProperty.prop_of_isLimit_binaryFan
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
[P.IsClosedUnderBinaryProducts]
{X Y : C}
{B : Limits.BinaryFan X Y}
(hB : Limits.IsLimit B)
(hX : P X)
(hY : P Y)
:
P B.pt
theorem
CategoryTheory.ObjectProperty.prop_prod
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
[P.IsClosedUnderBinaryProducts]
(X Y : C)
[Limits.HasBinaryProduct X Y]
(hX : P X)
(hY : P Y)
:
P (X ⨯ Y)
theorem
CategoryTheory.ObjectProperty.prop_of_isTerminal
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
[P.IsClosedUnderLimitsOfShape (Discrete PEmpty.{1})]
(X : C)
(hX : Limits.IsTerminal X)
:
P X
theorem
CategoryTheory.ObjectProperty.prop_terminal
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
[P.IsClosedUnderLimitsOfShape (Discrete PEmpty.{1})]
[Limits.HasTerminal C]
:
P (⊤_ C)
class
CategoryTheory.ObjectProperty.IsClosedUnderFiniteProducts
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
:
The typeclass saying that P : ObjectProperty C is stable under finite products.
Instances
instance
CategoryTheory.ObjectProperty.instIsClosedUnderLimitsOfShapeDiscreteOfIsClosedUnderFiniteProductsOfFinite
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
[P.IsClosedUnderFiniteProducts]
(J : Type u_2)
[Finite J]
:
theorem
CategoryTheory.ObjectProperty.prop_of_isLimit_fan
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
[P.IsClosedUnderFiniteProducts]
{J : Type u_2}
[Finite J]
{f : J → C}
{F : Limits.Fan f}
(hF : Limits.IsLimit F)
(h : ∀ (j : J), P (f j))
:
P F.pt
theorem
CategoryTheory.ObjectProperty.prop_product
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
[P.IsClosedUnderFiniteProducts]
{J : Type u_2}
[Finite J]
{f : J → C}
[Limits.HasProduct f]
(h : ∀ (j : J), P (f j))
:
P (∏ᶜ f)
@[reducible, inline]
abbrev
CategoryTheory.ObjectProperty.IsClosedUnderBinaryCoproducts
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
:
The typeclass saying that P : ObjectProperty C is stable under binary coproducts.
Equations
Instances For
theorem
CategoryTheory.ObjectProperty.prop_of_isColimit_binaryCofan
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
[P.IsClosedUnderBinaryCoproducts]
{X Y : C}
{B : Limits.BinaryCofan X Y}
(hB : Limits.IsColimit B)
(hX : P X)
(hY : P Y)
:
P B.pt
theorem
CategoryTheory.ObjectProperty.prop_coprod
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
[P.IsClosedUnderBinaryCoproducts]
(X Y : C)
[Limits.HasBinaryCoproduct X Y]
(hX : P X)
(hY : P Y)
:
P (X ⨿ Y)
theorem
CategoryTheory.ObjectProperty.prop_of_isInitial
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
[P.IsClosedUnderColimitsOfShape (Discrete PEmpty.{1})]
(X : C)
(hX : Limits.IsInitial X)
:
P X
theorem
CategoryTheory.ObjectProperty.prop_initial
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
[P.IsClosedUnderColimitsOfShape (Discrete PEmpty.{1})]
[Limits.HasInitial C]
:
P (⊥_ C)
class
CategoryTheory.ObjectProperty.IsClosedUnderFiniteCoproducts
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
:
The typeclass saying that P : ObjectProperty C is stable under finite coproducts.
Instances
instance
CategoryTheory.ObjectProperty.instIsClosedUnderColimitsOfShapeDiscreteOfIsClosedUnderFiniteCoproductsOfFinite
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
[P.IsClosedUnderFiniteCoproducts]
(J : Type u_2)
[Finite J]
:
theorem
CategoryTheory.ObjectProperty.prop_of_isColimit_cofan
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
[P.IsClosedUnderFiniteCoproducts]
{J : Type u_2}
[Finite J]
{f : J → C}
{F : Limits.Cofan f}
(hF : Limits.IsColimit F)
(h : ∀ (j : J), P (f j))
:
P F.pt
theorem
CategoryTheory.ObjectProperty.prop_coproduct
{C : Type u_1}
[Category.{v_1, u_1} C]
(P : ObjectProperty C)
[P.IsClosedUnderFiniteCoproducts]
{J : Type u_2}
[Finite J]
{f : J → C}
[Limits.HasCoproduct f]
(h : ∀ (j : J), P (f j))
:
P (∐ f)