Categories with finite limits. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
A typeclass for categories with all finite (co)limits.
- out : ∀ (J : Type) [𝒥 : category_theory.small_category J] [_inst_2 : category_theory.fin_category J], category_theory.limits.has_limits_of_shape J C
A category has all finite limits if every functor J ⥤ C
with a fin_category J
instance and J : Type
has a limit.
This is often called 'finitely complete'.
Instances of this typeclass
If C
has all limits, it has finite limits.
We can always derive has_finite_limits C
by providing limits at an
arbitrary universe.
- out : ∀ (J : Type) [𝒥 : category_theory.small_category J] [_inst_2 : category_theory.fin_category J], category_theory.limits.has_colimits_of_shape J C
A category has all finite colimits if every functor J ⥤ C
with a fin_category J
instance and J : Type
has a colimit.
This is often called 'finitely cocomplete'.
Instances of this typeclass
We can always derive has_finite_colimits C
by providing colimits at an
arbitrary universe.
Equations
- category_theory.limits.fintype_walking_parallel_pair = {elems := [category_theory.limits.walking_parallel_pair.zero, category_theory.limits.walking_parallel_pair.one].to_finset, complete := category_theory.limits.fintype_walking_parallel_pair._proof_1}
Equations
- category_theory.limits.walking_parallel_pair_hom.fintype j j' = {elems := j.rec_on (j'.rec_on [category_theory.limits.walking_parallel_pair_hom.id category_theory.limits.walking_parallel_pair.zero].to_finset [category_theory.limits.walking_parallel_pair_hom.left, category_theory.limits.walking_parallel_pair_hom.right].to_finset) (j'.rec_on ∅ [category_theory.limits.walking_parallel_pair_hom.id category_theory.limits.walking_parallel_pair.one].to_finset), complete := _}
Equations
- category_theory.limits.wide_pullback_shape.fintype_obj = category_theory.limits.wide_pullback_shape.fintype_obj._proof_1.mpr option.fintype
Equations
- j.fintype_hom j' = {elems := option.cases_on j' (option.cases_on j {category_theory.limits.wide_pullback_shape.hom.id option.none} (λ (j : J), {category_theory.limits.wide_pullback_shape.hom.term j})) (λ (j' : J), dite (option.some j' = j) (λ (h : option.some j' = j), _.mpr {category_theory.limits.wide_pullback_shape.hom.id j}) (λ (h : ¬option.some j' = j), ∅)), complete := _}
Equations
- category_theory.limits.wide_pushout_shape.fintype_obj = category_theory.limits.wide_pushout_shape.fintype_obj._proof_1.mpr option.fintype
Equations
- j.fintype_hom j' = {elems := option.cases_on j (option.cases_on j' {category_theory.limits.wide_pushout_shape.hom.id option.none} (λ (j' : J), {category_theory.limits.wide_pushout_shape.hom.init j'})) (λ (j : J), dite (option.some j = j') (λ (h : option.some j = j'), _.mpr {category_theory.limits.wide_pushout_shape.hom.id j'}) (λ (h : ¬option.some j = j'), ∅)), complete := _}
- out : ∀ (J : Type) [_inst_2 : fintype J], category_theory.limits.has_limits_of_shape (category_theory.limits.wide_pullback_shape J) C
has_finite_wide_pullbacks
represents a choice of wide pullback
for every finite collection of morphisms
- out : ∀ (J : Type) [_inst_2 : fintype J], category_theory.limits.has_colimits_of_shape (category_theory.limits.wide_pushout_shape J) C
has_finite_wide_pushouts
represents a choice of wide pushout
for every finite collection of morphisms
Finite wide pullbacks are finite limits, so if C
has all finite limits,
it also has finite wide pullbacks
Finite wide pushouts are finite colimits, so if C
has all finite colimits,
it also has finite wide pushouts
Equations
- category_theory.limits.fintype_walking_pair = {elems := {category_theory.limits.walking_pair.left, category_theory.limits.walking_pair.right}, complete := category_theory.limits.fintype_walking_pair._proof_1}