Skip to content

[Merged by Bors] - feat(Algebra/Module): presentation of the cokernel of a linear map#18332

Closed
joelriou wants to merge 45 commits intomasterfrom
unbundled-module-presentation-cokernel
Closed

[Merged by Bors] - feat(Algebra/Module): presentation of the cokernel of a linear map#18332
joelriou wants to merge 45 commits intomasterfrom
unbundled-module-presentation-cokernel

Conversation

@joelriou
Copy link
Copy Markdown
Contributor

@joelriou joelriou commented Oct 28, 2024

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).


Open in Gitpod

@joelriou joelriou added WIP Work in progress t-algebra Algebra (groups, rings, fields, etc) labels Oct 28, 2024
@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 28, 2024

PR summary 940bc7bb84

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.Algebra.Module.Presentation.Cokernel 906

Declarations diff

+ CokernelData
+ CokernelData.ofSection
+ Function.Exact.linearEquivOfSurjective
+ cokernel
+ cokernelRelations
+ cokernelSolution
+ desc_comp_π
+ injective_range_liftQ_of_exact
+ isPresentation
+ isPresentationCore
+ ker_eq_bot_range_liftQ_iff
+ nonempty_cokernelData
+ ofExact
+ surjective_range_liftQ
+ π_desc_apply

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.

@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Oct 28, 2024
@leanprover-community-bot-assistant leanprover-community-bot-assistant added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Nov 2, 2024
@leanprover-community-bot-assistant leanprover-community-bot-assistant removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Nov 3, 2024
@joelriou joelriou removed the WIP Work in progress label Nov 3, 2024
@joelriou joelriou added the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 3, 2024
joelriou and others added 3 commits November 3, 2024 21:07
Co-authored-by: Andrew Yang <36414270+erdOne@users.noreply.github.com>
Co-authored-by: Andrew Yang <36414270+erdOne@users.noreply.github.com>
@joelriou joelriou removed the awaiting-author A reviewer has asked the author a question or requested changes. label Nov 3, 2024
@leanprover-community-bot-assistant leanprover-community-bot-assistant added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Nov 4, 2024
@leanprover-community-bot-assistant leanprover-community-bot-assistant removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Nov 4, 2024
Comment on lines +86 to +91
erw [← Finsupp.apply_linearCombination]
obtain (r | i) := x
· erw [pres₂.linearCombination_var_relation]
dsimp
· erw [data.π_lift]
simp
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These erws are unfortunate but I can't find a way to avoid it.

@erdOne
Copy link
Copy Markdown
Member

erdOne commented Nov 13, 2024

Thanks!
maintainer merge

@github-actions
Copy link
Copy Markdown

🚀 Pull request has been placed on the maintainer queue by erdOne.

@github-actions github-actions bot added the maintainer-merge A reviewer has approved the changed; awaiting maintainer approval. label Nov 13, 2024
@jcommelin
Copy link
Copy Markdown
Member

bors merge

@github-actions github-actions bot added the ready-to-merge This PR has been sent to bors. label Nov 13, 2024
mathlib-bors bot pushed a commit that referenced this pull request Nov 13, 2024
…18332)

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)`.



Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Nov 13, 2024

Build failed (retrying...):

mathlib-bors bot pushed a commit that referenced this pull request Nov 13, 2024
…18332)

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)`.



Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Nov 13, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(Algebra/Module): presentation of the cokernel of a linear map [Merged by Bors] - feat(Algebra/Module): presentation of the cokernel of a linear map Nov 13, 2024
@mathlib-bors mathlib-bors bot closed this Nov 13, 2024
@mathlib-bors mathlib-bors bot deleted the unbundled-module-presentation-cokernel branch November 13, 2024 18:31
TobiasLeichtfried pushed a commit that referenced this pull request Nov 21, 2024
…18332)

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)`.



Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintainer-merge A reviewer has approved the changed; awaiting maintainer approval. ready-to-merge This PR has been sent to bors. t-algebra Algebra (groups, rings, fields, etc)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants