File: Mathlib/CategoryTheory/Limits/Shapes/FiniteProducts.lean

full_name: CategoryTheory.Limits.HasFiniteProducts.out
code: /-- A category has finite products if there exists a limit for every diagram
with shape `Discrete J`, where we have `[Finite J]`.

We require this condition only for `J = Fin n` in the definition, then deduce a version for any
`J : Type*` as a corollary of this definition.
-/
class HasFiniteProducts : Prop where
  /-- `C` has finite products -/
  out (n : ℕ) : HasLimitsOfShape (Discrete (Fin n)) C
goal: CategoryTheory.Limits.HasLimitsOfShape (CategoryTheory.Discrete (Fin n)) C

full_name: CategoryTheory.Limits.HasFiniteProducts
code: /-- A category has finite products if there exists a limit for every diagram
with shape `Discrete J`, where we have `[Finite J]`.

We require this condition only for `J = Fin n` in the definition, then deduce a version for any
`J : Type*` as a corollary of this definition.
-/
class HasFiniteProducts : Prop where
  /-- `C` has finite products -/
  out (n : ℕ) : HasLimitsOfShape (Discrete (Fin n)) C
goal: Prop

full_name: CategoryTheory.Limits.hasFiniteProducts_of_hasFiniteLimits
code: /-- If `C` has finite limits then it has finite products. -/
instance (priority := 10) hasFiniteProducts_of_hasFiniteLimits [HasFiniteLimits C] :
    HasFiniteProducts C 
goal: CategoryTheory.Limits.HasFiniteProducts C

full_name: CategoryTheory.Limits.hasLimitsOfShape_discrete
code: instance hasLimitsOfShape_discrete [HasFiniteProducts C] (ι : Type w) [Finite ι] :
    HasLimitsOfShape (Discrete ι) C 
goal: CategoryTheory.Limits.HasLimitsOfShape (CategoryTheory.Discrete ι) C

full_name: CategoryTheory.Limits.hasFiniteProducts_of_hasProducts
code: /-- If a category has all products then in particular it has finite products.
-/
theorem hasFiniteProducts_of_hasProducts [HasProducts.{w} C] : HasFiniteProducts C 
goal: CategoryTheory.Limits.HasFiniteProducts C

full_name: CategoryTheory.Limits.HasFiniteCoproducts
code: /-- A category has finite coproducts if there exists a colimit for every diagram
with shape `Discrete J`, where we have `[Fintype J]`.

We require this condition only for `J = Fin n` in the definition, then deduce a version for any
`J : Type*` as a corollary of this definition.
-/
class HasFiniteCoproducts : Prop where
  /-- `C` has all finite coproducts -/
  out (n : ℕ) : HasColimitsOfShape (Discrete (Fin n)) C
goal: Prop

full_name: CategoryTheory.Limits.HasFiniteCoproducts.out
code: /-- A category has finite coproducts if there exists a colimit for every diagram
with shape `Discrete J`, where we have `[Fintype J]`.

We require this condition only for `J = Fin n` in the definition, then deduce a version for any
`J : Type*` as a corollary of this definition.
-/
class HasFiniteCoproducts : Prop where
  /-- `C` has all finite coproducts -/
  out (n : ℕ) : HasColimitsOfShape (Discrete (Fin n)) C
goal: CategoryTheory.Limits.HasColimitsOfShape (CategoryTheory.Discrete (Fin n)) C

full_name: CategoryTheory.Limits.hasColimitsOfShape_discrete
code: instance hasColimitsOfShape_discrete [HasFiniteCoproducts C] (ι : Type w) [Finite ι] :
    HasColimitsOfShape (Discrete ι) C 
goal: CategoryTheory.Limits.HasColimitsOfShape (CategoryTheory.Discrete ι) C

full_name: CategoryTheory.Limits.hasFiniteCoproducts_of_hasFiniteColimits
code: /-- If `C` has finite colimits then it has finite coproducts. -/
instance (priority := 10) hasFiniteCoproducts_of_hasFiniteColimits [HasFiniteColimits C] :
    HasFiniteCoproducts C 
goal: CategoryTheory.Limits.HasFiniteCoproducts C

full_name: CategoryTheory.Limits.hasFiniteCoproducts_of_hasCoproducts
code: /-- If a category has all coproducts then in particular it has finite coproducts.
-/
theorem hasFiniteCoproducts_of_hasCoproducts [HasCoproducts.{w} C] : HasFiniteCoproducts C 
goal: CategoryTheory.Limits.HasFiniteCoproducts C