Kernels and cokernels #
In a category with zero morphisms, the kernel of a morphism f : X ⟶ Y
is
the equalizer of f
and 0 : X ⟶ Y
. (Similarly the cokernel is the coequalizer.)
The basic definitions are
-
kernel : (X ⟶ Y) → C
-
kernel.condition : kernel.ι f ≫ f = 0
and -
kernel.lift (k : W ⟶ X) (h : k ≫ f = 0) : W ⟶ kernel f
(as well as the dual versions)
Main statements #
Besides the definition and lifts, we prove
kernel.ιZeroIsIso
: a kernel map of a zero morphism is an isomorphismkernel.eq_zero_of_epi_kernel
: ifkernel.ι f
is an epimorphism, thenf = 0
kernel.ofMono
: the kernel of a monomorphism is the zero objectkernel.liftMono
: the lift of a monomorphismk : W ⟶ X
such thatk ≫ f = 0
is still a monomorphismkernel.isLimitConeZeroCone
: if our category has a zero object, then the map from the zero object is a kernel map of any monomorphismkernel.ιOfZero
:kernel.ι (0 : X ⟶ Y)
is an isomorphism
and the corresponding dual statements.
Future work #
- TODO: connect this with existing work in the group theory and ring theory libraries.
Implementation notes #
As with the other special shapes in the limits library, all the definitions here are given as
abbreviation
s of the general statements for limits, so all the simp
lemmas and theorems about
general limits can be used.
References #
- [F. Borceux, Handbook of Categorical Algebra 2][borceux-vol2]
A morphism f
has a kernel if the functor ParallelPair f 0
has a limit.
Equations
Instances For
A morphism f
has a cokernel if the functor ParallelPair f 0
has a colimit.
Equations
Instances For
A kernel fork is just a fork where the second morphism is a zero morphism.
Equations
Instances For
A morphism ι
satisfying ι ≫ f = 0
determines a kernel fork over f
.
Equations
Instances For
Every kernel fork s
is isomorphic (actually, equal) to fork.ofι (fork.ι s) _
.
Equations
Instances For
If ι = ι'
, then fork.ofι ι _
and fork.ofι ι' _
are isomorphic.
Equations
Instances For
If F
is an equivalence, then applying F
to a diagram indexing a (co)kernel of f
yields
the diagram indexing the (co)kernel of F.map f
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If s
is a limit kernel fork and k : W ⟶ X
satisfies k ≫ f = 0
, then there is some
l : W ⟶ s.X
such that l ≫ fork.ι s = k
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
This is a slightly more convenient method to verify that a kernel fork is a limit cone. It only asks for a proof of facts that carry any mathematical content
Equations
- CategoryTheory.Limits.isLimitAux t lift fac uniq = CategoryTheory.Limits.IsLimit.mk lift
Instances For
This is a more convenient formulation to show that a KernelFork
constructed using
KernelFork.ofι
is a limit cone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every kernel of f
induces a kernel of f ≫ g
if g
is mono.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every kernel of f ≫ g
is also a kernel of f
, as long as c.ι ≫ f
vanishes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
X
identifies to the kernel of a zero map X ⟶ Y
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Any zero object identifies to the kernel of a given monomorphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The kernel of a morphism, expressed as the equalizer with the 0 morphism.
Equations
Instances For
The map from kernel f
into the source of f
.
Equations
Instances For
The kernel built from kernel.ι f
is limiting.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given any morphism k : W ⟶ X
satisfying k ≫ f = 0
, k
factors through kernel.ι f
via kernel.lift : W ⟶ kernel f
.
Equations
Instances For
Any morphism k : W ⟶ X
satisfying k ≫ f = 0
induces a morphism l : W ⟶ kernel f
such that
l ≫ kernel.ι f = k
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A commuting square induces a morphism of kernels.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a commutative diagram X --f--> Y --g--> Z | | | | | | v v v X' -f'-> Y' -g'-> Z' with horizontal arrows composing to zero, then we obtain a commutative square X ---> kernel g | | | | kernel.map | | v v X' --> kernel g'
A commuting square of isomorphisms induces an isomorphism of kernels.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every kernel of the zero morphism is an isomorphism
The kernel of a zero morphism is isomorphic to the source.
Equations
- CategoryTheory.Limits.kernelZeroIsoSource = CategoryTheory.Limits.equalizer.isoSourceOfSelf 0
Instances For
If two morphisms are known to be equal, then their kernels are isomorphic.
Equations
- One or more equations did not get rendered due to their size.
Instances For
When g
is a monomorphism, the kernel of f ≫ g
is isomorphic to the kernel of f
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
When f
is an isomorphism, the kernel of f ≫ g
is isomorphic to the kernel of g
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The morphism from the zero object determines a cone on a kernel diagram
Equations
- CategoryTheory.Limits.kernel.zeroKernelFork f = { pt := 0, π := CategoryTheory.NatTrans.mk fun j => 0 }
Instances For
The map from the zero object is a kernel of a monomorphism
Equations
- One or more equations did not get rendered due to their size.
Instances For
The kernel of a monomorphism is isomorphic to the zero object
Equations
- One or more equations did not get rendered due to their size.
Instances For
The kernel morphism of a monomorphism is a zero morphism
If g ≫ f = 0
implies g = 0
for all g
, then 0 : 0 ⟶ X
is a kernel of f
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If i
is an isomorphism such that l ≫ i.hom = f
, then any kernel of f
is a kernel of l
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If i
is an isomorphism such that l ≫ i.hom = f
, then the kernel of f
is a kernel of l
.
Equations
Instances For
If s
is any limit kernel cone over f
and if i
is an isomorphism such that
i.hom ≫ s.ι = l
, then l
is a kernel of f
.
Equations
Instances For
If i
is an isomorphism such that i.hom ≫ kernel.ι f = l
, then l
is a kernel of f
.
Equations
Instances For
The kernel morphism of a zero morphism is an isomorphism
A cokernel cofork is just a cofork where the second morphism is a zero morphism.
Equations
Instances For
A morphism π
satisfying f ≫ π = 0
determines a cokernel cofork on f
.
Equations
Instances For
Every cokernel cofork s
is isomorphic (actually, equal) to cofork.ofπ (cofork.π s) _
.
Equations
Instances For
If π = π'
, then CokernelCofork.of_π π _
and CokernelCofork.of_π π' _
are isomorphic.
Equations
Instances For
If s
is a colimit cokernel cofork, then every k : Y ⟶ W
satisfying f ≫ k = 0
induces
l : s.X ⟶ W
such that cofork.π s ≫ l = k
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
This is a slightly more convenient method to verify that a cokernel cofork is a colimit cocone. It only asks for a proof of facts that carry any mathematical content
Equations
- CategoryTheory.Limits.isColimitAux t desc fac uniq = CategoryTheory.Limits.IsColimit.mk desc
Instances For
This is a more convenient formulation to show that a CokernelCofork
constructed using
CokernelCofork.ofπ
is a limit cone.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every cokernel of f
induces a cokernel of g ≫ f
if g
is epi.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every cokernel of g ≫ f
is also a cokernel of f
, as long as f ≫ c.π
vanishes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Y
identifies to the cokernel of a zero map X ⟶ Y
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Any zero object identifies to the cokernel of a given epimorphisms.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cokernel of a morphism, expressed as the coequalizer with the 0 morphism.
Equations
Instances For
The map from the target of f
to cokernel f
.
Equations
Instances For
The cokernel built from cokernel.π f
is colimiting.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given any morphism k : Y ⟶ W
such that f ≫ k = 0
, k
factors through cokernel.π f
via cokernel.desc : cokernel f ⟶ W
.
Equations
Instances For
Any morphism k : Y ⟶ W
satisfying f ≫ k = 0
induces l : cokernel f ⟶ W
such that
cokernel.π f ≫ l = k
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A commuting square induces a morphism of cokernels.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a commutative diagram X --f--> Y --g--> Z | | | | | | v v v X' -f'-> Y' -g'-> Z' with horizontal arrows composing to zero, then we obtain a commutative square cokernel f ---> Z | | | cokernel.map | | | v v cokernel f' --> Z'
A commuting square of isomorphisms induces an isomorphism of cokernels.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cokernel of the zero morphism is an isomorphism
The cokernel of a zero morphism is isomorphic to the target.
Equations
- CategoryTheory.Limits.cokernelZeroIsoTarget = CategoryTheory.Limits.coequalizer.isoTargetOfSelf 0
Instances For
If two morphisms are known to be equal, then their cokernels are isomorphic.
Equations
- One or more equations did not get rendered due to their size.
Instances For
When g
is an isomorphism, the cokernel of f ≫ g
is isomorphic to the cokernel of f
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
When f
is an epimorphism, the cokernel of f ≫ g
is isomorphic to the cokernel of g
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The morphism to the zero object determines a cocone on a cokernel diagram
Equations
- CategoryTheory.Limits.cokernel.zeroCokernelCofork f = { pt := 0, ι := CategoryTheory.NatTrans.mk fun j => 0 }
Instances For
The morphism to the zero object is a cokernel of an epimorphism
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cokernel of an epimorphism is isomorphic to the zero object
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cokernel morphism of an epimorphism is a zero morphism
The cokernel of the image inclusion of a morphism f
is isomorphic to the cokernel of f
.
(This result requires that the factorisation through the image is an epimorphism. This holds in any category with equalizers.)
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cokernel of a zero morphism is an isomorphism
The kernel of the cokernel of an epimorphism is an isomorphism
The cokernel of the kernel of a monomorphism is an isomorphism
If f ≫ g = 0
implies g = 0
for all g
, then 0 : Y ⟶ 0
is a cokernel of f
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If i
is an isomorphism such that i.hom ≫ l = f
, then any cokernel of f
is a cokernel of
l
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If i
is an isomorphism such that i.hom ≫ l = f
, then the cokernel of f
is a cokernel of
l
.
Equations
Instances For
If s
is any colimit cokernel cocone over f
and i
is an isomorphism such that
s.π ≫ i.hom = l
, then l
is a cokernel of f
.
Equations
Instances For
If i
is an isomorphism such that cokernel.π f ≫ i.hom = l
, then l
is a cokernel of f
.
Equations
Instances For
The comparison morphism for the kernel of f
.
This is an isomorphism iff G
preserves the kernel of f
; see
CategoryTheory/Limits/Preserves/Shapes/Kernels.lean
Equations
- One or more equations did not get rendered due to their size.
Instances For
The comparison morphism for the cokernel of f
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
- has_limit : ∀ {X Y : C} (f : X ⟶ Y), CategoryTheory.Limits.HasKernel f
HasKernels
represents the existence of kernels for every morphism.
Instances
- has_colimit : ∀ {X Y : C} (f : X ⟶ Y), CategoryTheory.Limits.HasCokernel f
HasCokernels
represents the existence of cokernels for every morphism.