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.hom)
Instances For
The inclusion of image f
into the target
Equations
- ModuleCat.image.ι f = ModuleCat.ofHom (LinearMap.range f.hom).subtype
Instances For
def
ModuleCat.factorThruImage
{R : Type u}
[Ring R]
{G H : ModuleCat R}
(f : G ⟶ H)
:
G ⟶ ModuleCat.image f
The corestriction map to the image
Equations
- ModuleCat.factorThruImage f = ModuleCat.ofHom f.hom.rangeRestrict
Instances For
noncomputable def
ModuleCat.image.lift
{R : Type u}
[Ring R]
{G H : ModuleCat R}
{f : G ⟶ H}
(F' : CategoryTheory.Limits.MonoFactorisation f)
:
ModuleCat.image f ⟶ F'.I
The universal property for the image factorisation
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
ModuleCat.image.lift_fac
{R : Type u}
[Ring R]
{G H : ModuleCat R}
{f : G ⟶ H}
(F' : CategoryTheory.Limits.MonoFactorisation f)
:
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 H : ModuleCat R}
(f : G ⟶ H)
:
CategoryTheory.Limits.image f ≅ ModuleCat.of R ↥(LinearMap.range f.hom)
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
@[simp]
theorem
ModuleCat.imageIsoRange_inv_image_ι
{R : Type u}
[Ring R]
{G H : ModuleCat R}
(f : G ⟶ H)
:
CategoryTheory.CategoryStruct.comp (ModuleCat.imageIsoRange f).inv (CategoryTheory.Limits.image.ι f) = ModuleCat.ofHom (LinearMap.range f.hom).subtype
theorem
ModuleCat.imageIsoRange_inv_image_ι_apply
{R : Type u}
[Ring R]
{G H : ModuleCat R}
(f : G ⟶ H)
(x : (CategoryTheory.forget (ModuleCat R)).obj (ModuleCat.of R ↥(LinearMap.range f.hom)))
:
(CategoryTheory.Limits.image.ι f) ((ModuleCat.imageIsoRange f).inv x) = (ModuleCat.ofHom (LinearMap.range f.hom).subtype) x
@[simp]
theorem
ModuleCat.imageIsoRange_hom_subtype
{R : Type u}
[Ring R]
{G H : ModuleCat R}
(f : G ⟶ H)
:
CategoryTheory.CategoryStruct.comp (ModuleCat.imageIsoRange f).hom (ModuleCat.ofHom (LinearMap.range f.hom).subtype) = CategoryTheory.Limits.image.ι f
theorem
ModuleCat.imageIsoRange_hom_subtype_assoc
{R : Type u}
[Ring R]
{G 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 H : ModuleCat R}
(f : G ⟶ H)
(x : (CategoryTheory.forget (ModuleCat R)).obj (CategoryTheory.Limits.image f))
:
(ModuleCat.ofHom (LinearMap.range f.hom).subtype) ((ModuleCat.imageIsoRange f).hom x) = (CategoryTheory.Limits.image.ι f) x