Categorical images
We define the categorical image of f
as a factorisation f = e ≫ m
through a monomorphism m
,
so that m
factors through the m'
in any other such factorisation.
Main definitions
- A
mono_factorisation
is a factorisationf = e ≫ m
, wherem
is a monomorphism is_image F
means that a given mono factorisationF
has the universal property of the image.has_image f
means that we have chosen an image for the morphismf : X ⟶ Y
.- In this case,
image f
is the image object,image.ι f : image f ⟶ Y
is the monomorphismm
of the factorisation andfactor_thru_image f : X ⟶ image f
is the morphisme
.
- In this case,
has_images C
means that every morphism inC
has an image.Let
f : X ⟶ Y
andg : P ⟶ Q
be morphisms inC
, which we will represent as objects of the arrow categoryarrow C
. Thensq : f ⟶ g
is a commutative square inC
. Iff
andg
have images, thenhas_image_map sq
represents the fact that there is a morphismi : image f ⟶ image g
making the diagramX ----→ image f ----→ Y | | | | | | ↓ ↓ ↓ P ----→ image g ----→ Q
commute, where the top row is the image factorisation of
f
, the bottom row is the image factorisation ofg
, and the outer rectangle is the commutative squaresq
.- If a category
has_images
, thenhas_image_maps
means that every commutative square admits an image map. - If a category
has_images
, thenhas_strong_epi_images
means that the morphism to the image is always a strong epimorphism.
Main statements
- When
C
has equalizers, the morphisme
appearing in an image factorisation is an epimorphism. - When
C
has strong epi images, then these images admit image maps.
Future work
- TODO: coimages, and abelian categories.
- TODO: connect this with existing working in the group theory and ring theory libraries.
A factorisation of a morphism f = e ≫ m
, with m
monic.
The obvious factorisation of a monomorphism through itself.
Equations
The morphism m
in a factorisation f = e ≫ m
through a monomorphism is uniquely determined.
- lift : Π (F' : category_theory.limits.mono_factorisation f), F.I ⟶ F'.I
- lift_fac' : (∀ (F' : category_theory.limits.mono_factorisation f), c.lift F' ≫ F'.m = F.m) . "obviously"
Data exhibiting that a given factorisation through a mono is initial.
The trivial factorisation of a monomorphism satisfies the universal property.
Equations
- category_theory.limits.is_image.self f = {lift := λ (F' : category_theory.limits.mono_factorisation f), F'.e, lift_fac' := _}
Equations
Two factorisations through monomorphisms satisfying the universal property must factor through isomorphic objects.
Equations
- hF.iso_ext hF' = {hom := hF.lift F', inv := hF'.lift F, hom_inv_id' := _, inv_hom_id' := _}
- F : category_theory.limits.mono_factorisation f
- is_image : category_theory.limits.is_image category_theory.limits.has_image.F
Data exhibiting that a morphism f
has an image.
The chosen factorisation of f
through a monomorphism.
The witness of the universal property for the chosen factorisation of f
through a monomorphism.
The categorical image of a morphism.
The inclusion of the image of a morphism into the target.
Equations
- _ = _
The map from the source to the image of a morphism.
Rewrite in terms of the factor_thru_image
interface.
Any other factorisation of the morphism f
through a monomorphism receives a map from the image.
Equations
Equations
- _ = _
- has_image : Π {X Y : C} (f : X ⟶ Y), category_theory.limits.has_image f
has_images
represents a choice of image for every morphism
The image of a monomorphism is isomorphic to the source.
Equations
- _ = _
An equation between morphisms gives a comparison map between the images (which momentarily we prove is an iso).
Equations
- category_theory.limits.image.eq_to_hom h = category_theory.limits.image.lift {I := category_theory.limits.image f' _inst_3, m := category_theory.limits.image.ι f' _inst_3, m_mono := _, e := category_theory.limits.factor_thru_image f' _inst_3, fac' := _}
Equations
An equation between morphisms gives an isomorphism between the images.
As long as the category has equalizers,
the image inclusion maps commute with image.eq_to_iso
.
The comparison map image (f ≫ g) ⟶ image g
.
Equations
- category_theory.limits.image.pre_comp f g = category_theory.limits.image.lift {I := category_theory.limits.image g _inst_2, m := category_theory.limits.image.ι g _inst_2, m_mono := _, e := f ≫ category_theory.limits.factor_thru_image g, fac' := _}
The two step comparison map
image (f ≫ (g ≫ h)) ⟶ image (g ≫ h) ⟶ image h
agrees with the one step comparison map
image (f ≫ (g ≫ h)) ≅ image ((f ≫ g) ≫ h) ⟶ image h
.
Equations
- category_theory.limits.category_theory.limits.has_image f = show category_theory.limits.has_image f, from _inst_2
- map : category_theory.limits.image f.hom ⟶ category_theory.limits.image g.hom
- map_ι' : category_theory.limits.has_image_map.map sq ≫ category_theory.limits.image.ι g.hom = category_theory.limits.image.ι f.hom ≫ sq.right . "obviously"
An image map is a morphism image f → image g
fitting into a commutative square and satisfying
the obvious commutativity conditions.
Equations
- _ = _
The map on images induced by a commutative square.
Image maps for composable commutative squares induce an image map in the composite square.
Equations
- category_theory.limits.has_image_map_comp sq sq' = {map := category_theory.limits.image.map sq ≫ category_theory.limits.image.map sq', map_ι' := _}
The identity image f ⟶ image f
fits into the commutative square represented by the identity
morphism 𝟙 f
in the arrow category.
Equations
- category_theory.limits.has_image_map_id f = {map := 𝟙 (category_theory.limits.image f.hom), map_ι' := _}
- has_image_map : Π {f g : category_theory.arrow C} (st : f ⟶ g), category_theory.limits.has_image_map st
If a category has_image_maps
, then all commutative squares induce morphisms on images.
The functor from the arrow category of C
to C
itself that maps a morphism to its image
and a commutative square to the induced morphism on images.
Equations
- category_theory.limits.im = {obj := λ (f : category_theory.arrow C), category_theory.limits.image f.hom, map := λ (_x _x_1 : category_theory.arrow C) (st : _x ⟶ _x_1), category_theory.limits.image.map st, map_id' := _, map_comp' := _}
- to_mono_factorisation : category_theory.limits.mono_factorisation f
- e_strong_epi : category_theory.strong_epi c.to_mono_factorisation.e
A strong epi-mono factorisation is a decomposition f = e ≫ m
with e
a strong epimorphism
and m
a monomorphism.
Satisfying the inhabited linter
Equations
- category_theory.limits.strong_epi_mono_factorisation_inhabited f = {default := {to_mono_factorisation := {I := Y, m := 𝟙 Y, m_mono := _, e := f, fac' := _}, e_strong_epi := _inst_2}}
A mono factorisation coming from a strong epi-mono factorisation always has the universal property of the image.
Equations
- F.to_mono_is_image = {lift := λ (G : category_theory.limits.mono_factorisation f), category_theory.arrow.lift (category_theory.arrow.hom_mk' _), lift_fac' := _}
- has_fac : Π {X Y : C} (f : X ⟶ Y), category_theory.limits.strong_epi_mono_factorisation f
A category has strong epi-mono factorisations if every morphism admits a strong epi-mono factorisation.
Equations
- category_theory.limits.has_images_of_has_strong_epi_mono_factorisations C = {has_image := λ (X Y : C) (f : X ⟶ Y), let F' : category_theory.limits.strong_epi_mono_factorisation f := category_theory.limits.has_strong_epi_mono_factorisations.has_fac f in {F := F'.to_mono_factorisation, is_image := F'.to_mono_is_image}}
- strong_factor_thru_image : Π {X Y : C} (f : X ⟶ Y), category_theory.strong_epi (category_theory.limits.factor_thru_image f)
A category has strong epi images if it has all images and factor_thru_image f
is a strong
epimorphism for all f
.
If we constructed our images from strong epi-mono factorisations, then these images are strong epi images.
A category with strong epi images has image maps. The construction is taken from Borceux, Handbook of Categorical Algebra 1, Proposition 4.4.5.
Equations
- category_theory.limits.has_image_maps_of_has_strong_epi_images = {has_image_map := λ (f g : category_theory.arrow C) (st : f ⟶ g), let I : C := category_theory.limits.image (category_theory.limits.image.ι f.hom ≫ st.right), I' : C . "obviously" := category_theory.limits.image (st.left ≫ category_theory.limits.factor_thru_image g.hom), upper : category_theory.limits.strong_epi_mono_factorisation (f.hom ≫ st.right) := category_theory.limits.strong_epi_mono_factorisation.mk {I := I, m := category_theory.limits.image.ι (category_theory.limits.image.ι f.hom ≫ st.right) (category_theory.limits.has_images.has_image (category_theory.limits.image.ι f.hom ≫ st.right)), m_mono := _, e := category_theory.limits.factor_thru_image f.hom ≫ category_theory.limits.factor_thru_image (category_theory.limits.image.ι f.hom ≫ st.right), fac' := _}, lower : category_theory.limits.strong_epi_mono_factorisation (f.hom ≫ st.right) := category_theory.limits.strong_epi_mono_factorisation.mk {I := I', m := category_theory.limits.image.ι (st.left ≫ category_theory.limits.factor_thru_image g.hom) ≫ category_theory.limits.image.ι g.hom, m_mono := _, e := category_theory.limits.factor_thru_image (st.left ≫ category_theory.limits.factor_thru_image g.hom) (category_theory.limits.has_images.has_image (st.left ≫ category_theory.limits.factor_thru_image g.hom)), fac' := _}, s : I ⟶ I' := upper.to_mono_is_image.lift lower.to_mono_factorisation in {map := category_theory.limits.factor_thru_image (category_theory.limits.image.ι f.hom ≫ st.right) ≫ s ≫ category_theory.limits.image.ι (st.left ≫ category_theory.limits.factor_thru_image g.hom), map_ι' := _}}
If C
has strong epi mono factorisations, then the image is unique up to isomorphism, in that if
f
factors as a strong epi followed by a mono, this factorisation is essentially the image
factorisation.
Equations
- category_theory.limits.image.iso_strong_epi_mono e m comm = (category_theory.limits.strong_epi_mono_factorisation.mk {I := I', m := m, m_mono := _inst_4, e := e, fac' := comm}).to_mono_is_image.iso_ext (category_theory.limits.image.is_image f)