Normal mono categories with finite products and kernels have all equalizers. #
This, and the dual result, are used in the development of abelian categories.
@[irreducible]
def
CategoryTheory.NormalMonoCategory.pullback_of_mono
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasZeroMorphisms C]
[Limits.HasFiniteProducts C]
[Limits.HasKernels C]
[IsNormalMonoCategory C]
{X Y Z : C}
(a : X ⟶ Z)
(b : Y ⟶ Z)
[Mono a]
[Mono b]
:
Limits.HasLimit (Limits.cospan a b)
The pullback of two monomorphisms exists.
Equations
- ⋯ = ⋯
Instances For
@[irreducible]
def
CategoryTheory.NormalMonoCategory.hasLimit_parallelPair
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasZeroMorphisms C]
[Limits.HasFiniteProducts C]
[Limits.HasKernels C]
[IsNormalMonoCategory C]
{X Y : C}
(f g : X ⟶ Y)
:
The equalizer of f
and g
exists.
Equations
- ⋯ = ⋯
Instances For
@[instance 100]
instance
CategoryTheory.NormalMonoCategory.hasEqualizers
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasZeroMorphisms C]
[Limits.HasFiniteProducts C]
[Limits.HasKernels C]
[IsNormalMonoCategory C]
:
A NormalMonoCategory
category with finite products and kernels has all equalizers.
theorem
CategoryTheory.NormalMonoCategory.epi_of_zero_cokernel
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasZeroMorphisms C]
[Limits.HasFiniteProducts C]
[Limits.HasKernels C]
[IsNormalMonoCategory C]
{X Y : C}
(f : X ⟶ Y)
(Z : C)
(l : Limits.IsColimit (Limits.CokernelCofork.ofπ 0 ⋯))
:
Epi f
If a zero morphism is a cokernel of f
, then f
is an epimorphism.
theorem
CategoryTheory.NormalMonoCategory.epi_of_zero_cancel
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasZeroMorphisms C]
[Limits.HasFiniteProducts C]
[Limits.HasKernels C]
[IsNormalMonoCategory C]
[Limits.HasZeroObject C]
{X Y : C}
(f : X ⟶ Y)
(hf : ∀ (Z : C) (g : Y ⟶ Z), CategoryStruct.comp f g = 0 → g = 0)
:
Epi f
If f ≫ g = 0
implies g = 0
for all g
, then g
is a monomorphism.
@[irreducible]
def
CategoryTheory.NormalEpiCategory.pushout_of_epi
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasZeroMorphisms C]
[Limits.HasFiniteCoproducts C]
[Limits.HasCokernels C]
[IsNormalEpiCategory C]
{X Y Z : C}
(a : X ⟶ Y)
(b : X ⟶ Z)
[Epi a]
[Epi b]
:
Limits.HasColimit (Limits.span a b)
The pushout of two epimorphisms exists.
Equations
- ⋯ = ⋯
Instances For
@[irreducible]
def
CategoryTheory.NormalEpiCategory.hasColimit_parallelPair
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasZeroMorphisms C]
[Limits.HasFiniteCoproducts C]
[Limits.HasCokernels C]
[IsNormalEpiCategory C]
{X Y : C}
(f g : X ⟶ Y)
:
The coequalizer of f
and g
exists.
Equations
- ⋯ = ⋯
Instances For
@[instance 100]
instance
CategoryTheory.NormalEpiCategory.hasCoequalizers
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasZeroMorphisms C]
[Limits.HasFiniteCoproducts C]
[Limits.HasCokernels C]
[IsNormalEpiCategory C]
:
A NormalEpiCategory
category with finite coproducts and cokernels has all coequalizers.
theorem
CategoryTheory.NormalEpiCategory.mono_of_zero_kernel
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasZeroMorphisms C]
[Limits.HasFiniteCoproducts C]
[Limits.HasCokernels C]
[IsNormalEpiCategory C]
{X Y : C}
(f : X ⟶ Y)
(Z : C)
(l : Limits.IsLimit (Limits.KernelFork.ofι 0 ⋯))
:
Mono f
If a zero morphism is a kernel of f
, then f
is a monomorphism.
theorem
CategoryTheory.NormalEpiCategory.mono_of_cancel_zero
{C : Type u_1}
[Category.{u_2, u_1} C]
[Limits.HasZeroMorphisms C]
[Limits.HasFiniteCoproducts C]
[Limits.HasCokernels C]
[IsNormalEpiCategory C]
[Limits.HasZeroObject C]
{X Y : C}
(f : X ⟶ Y)
(hf : ∀ (Z : C) (g : Z ⟶ X), CategoryStruct.comp g f = 0 → g = 0)
:
Mono f
If g ≫ f = 0
implies g = 0
for all g
, then f
is a monomorphism.