Presentation of a cokernel #
If f : M₁ →ₗ[A] M₂ is a linear map between modules,
pres₂ is a presentation of M₂ and g₁ : ι → M₁ is
a family of generators of M₁ (which is expressed as
hg₁ : Submodule.span A (Set.range g₁) = ⊤), then we
provide a way to obtain a presentation of the cokernel of f.
It requires an additional data data : pres₂.CokernelData f g₁,
which consists of liftings of the images by f of
the generators of M₁ as linear combinations of the
generators of M₂. Then, we obtain a presentation
pres₂.cokernel data hg₁ : Presentation A (M₂ ⧸ LinearMap.range f).
More generally, if we have an exact sequence M₁ → M₂ → M₃ → 0,
we obtain a presentation of M₃, see Presentation.ofExact.
Given a linear map f : M₁ →ₗ[A] M₂, a presentation of M₂ and a choice
of generators of M₁, this structure specifies a lifting of the image by f
of each generator of M₁ as a linear combination of the generators of M₂.
a lifting of
f (g₁ i)inpres₂.G →₀ A
Instances For
Constructor for Presentation.CokernelData in case we have a chosen set-theoretic
section of the projection (pres₂.G →₀ A) → M₂.
Equations
- Module.Presentation.CokernelData.ofSection pres₂ f g₁ s hs = { lift := fun (i : ι) => s (f (g₁ i)), π_lift := ⋯ }
Instances For
The shape of the presentation by generators and relations of the cokernel
of f : M₁ →ₗ[A] M₂. It consists of a generator for each generator of M₂, and
there are two types of relations: one for each relation in the presentation in M₂,
and one for each generator of M₁.
Equations
Instances For
The obvious solution in M₂ ⧸ LinearMap.range f to the equations in
pres₂.cokernelRelations data.
Equations
- pres₂.cokernelSolution data = { var := fun (g : (pres₂.cokernelRelations data).G) => (LinearMap.range f).mkQ (pres₂.var g), linearCombination_var_relation := ⋯ }
Instances For
The cokernel can be defined by generators and relations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The presentation of the cokernel of a linear map f : M₁ →ₗ[A] M₂ that is obtained
from a presentation pres₂ of M₂, a choice of generators g₁ : ι → M₁ of M₁,
and an additional data in pres₂.CokernelData f g₁.
Equations
- pres₂.cokernel data hg₁ = Module.Presentation.ofIsPresentation ⋯
Instances For
Given an exact sequence of A-modules M₁ → M₂ → M₃ → 0, this is the presentation
of M₃ that is obtained from a presentation pres₂ of M₂, a choice of generators
g₁ : ι → M₁ of M₁, and an additional data in a Presentation.CokernelData structure.
Equations
- pres₂.ofExact data hfg hg hg₁ = (pres₂.cokernel data hg₁).ofLinearEquiv (hfg.linearEquivOfSurjective hg)