The category of R-modules has images. #
Note that we don't need to register any of the constructions here as instances, because we get them
from the fact that ModuleCat R
is an abelian category.
The image of a morphism in ModuleCat R
is just the bundling of LinearMap.range f
Equations
- ModuleCat.image f = ModuleCat.of R ↥(LinearMap.range f)
Instances For
def
ModuleCat.image.ι
{R : Type u}
[Ring R]
{G : ModuleCat R}
{H : ModuleCat R}
(f : G ⟶ H)
:
ModuleCat.image f ⟶ H
The inclusion of image f
into the target
Equations
- ModuleCat.image.ι f = (LinearMap.range f).subtype
Instances For
def
ModuleCat.factorThruImage
{R : Type u}
[Ring R]
{G : ModuleCat R}
{H : ModuleCat R}
(f : G ⟶ H)
:
G ⟶ ModuleCat.image f
The corestriction map to the image
Equations
Instances For
noncomputable def
ModuleCat.image.lift
{R : Type u}
[Ring R]
{G : ModuleCat R}
{H : ModuleCat R}
{f : G ⟶ H}
(F' : CategoryTheory.Limits.MonoFactorisation f)
:
ModuleCat.image f ⟶ F'.I
The universal property for the image factorisation
Equations
- ModuleCat.image.lift F' = { toFun := fun (x : ↑(ModuleCat.image f)) => F'.e ↑(Classical.indefiniteDescription (fun (x_1 : ↑G) => f x_1 = ↑x) ⋯), map_add' := ⋯, map_smul' := ⋯ }
Instances For
theorem
ModuleCat.image.lift_fac
{R : Type u}
[Ring R]
{G : ModuleCat R}
{H : ModuleCat R}
{f : G ⟶ H}
(F' : CategoryTheory.Limits.MonoFactorisation f)
:
noncomputable def
ModuleCat.isImage
{R : Type u}
[Ring R]
{G : ModuleCat R}
{H : ModuleCat R}
(f : G ⟶ H)
:
The factorisation of any morphism in ModuleCat R
through a mono has the universal property of
the image.
Equations
- ModuleCat.isImage f = { lift := ModuleCat.image.lift, lift_fac := ⋯ }
Instances For
noncomputable def
ModuleCat.imageIsoRange
{R : Type u}
[Ring R]
{G : ModuleCat R}
{H : ModuleCat R}
(f : G ⟶ H)
:
The categorical image of a morphism in ModuleCat R
agrees with the linear algebraic range.
Equations
- ModuleCat.imageIsoRange f = (CategoryTheory.Limits.Image.isImage f).isoExt (ModuleCat.isImage f)
Instances For
theorem
ModuleCat.imageIsoRange_inv_image_ι_apply
{R : Type u}
[Ring R]
{G : ModuleCat R}
{H : ModuleCat R}
(f : G ⟶ H)
(x : (CategoryTheory.forget (ModuleCat R)).obj (ModuleCat.of R ↥(LinearMap.range f)))
:
(CategoryTheory.Limits.image.ι f) ((ModuleCat.imageIsoRange f).inv x) = (ModuleCat.asHom (LinearMap.range f).subtype) x
theorem
ModuleCat.imageIsoRange_hom_subtype_assoc
{R : Type u}
[Ring R]
{G : ModuleCat R}
{H : ModuleCat R}
(f : G ⟶ H)
{Z : ModuleCat R}
(h : ModuleCat.of R ↑H ⟶ Z)
:
theorem
ModuleCat.imageIsoRange_hom_subtype_apply
{R : Type u}
[Ring R]
{G : ModuleCat R}
{H : ModuleCat R}
(f : G ⟶ H)
(x : (CategoryTheory.forget (ModuleCat R)).obj (CategoryTheory.Limits.image f))
:
(ModuleCat.asHom (LinearMap.range f).subtype) ((ModuleCat.imageIsoRange f).hom x) = (CategoryTheory.Limits.image.ι f) x