Skip to content

[Merged by Bors] - feat(Algebra/Module): characterizations of free modules in terms of their presentations#18327

Closed
joelriou wants to merge 25 commits intomasterfrom
unbundled-module-presentation-more-api
Closed

[Merged by Bors] - feat(Algebra/Module): characterizations of free modules in terms of their presentations#18327
joelriou wants to merge 25 commits intomasterfrom
unbundled-module-presentation-more-api

Conversation

@joelriou
Copy link
Copy Markdown
Contributor

@joelriou joelriou commented Oct 28, 2024

In this PR, the API for the presentations of modules is slightly developed (uniqueness up to a linear equivalence of the module defined by generators and relations, constructor for the property IsPresentation), and this is used to show that a module is free iff it admits a presentation with generators and no relation.


Open in Gitpod

@joelriou joelriou added the WIP Work in progress label Oct 28, 2024
@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
@github-actions github-actions bot added the t-algebra Algebra (groups, rings, fields, etc) label Oct 28, 2024
@github-actions
Copy link
Copy Markdown

github-actions bot commented Oct 28, 2024

PR summary 3febfb1960

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.Algebra.Module.Presentation.Free 962

Declarations diff

+ IsPresentationCore
+ Presentation.ofIsPresentation
+ Quotient.linearMap_ext
+ Solution.IsPresentation.free
+ congr_postcomp
+ congr_var
+ desc_var
+ down
+ free_iff_exists_presentation
+ fromQuotient_toQuotient
+ instance : AddCommGroup relations.Quotient := by
+ instance : Module A relations.Quotient := by
+ isPresentation
+ ofLinearEquiv
+ postcomp_comp
+ postcomp_desc
+ postcomp_id
+ postcomp_uniq
+ postcomp_uniq_symm
+ presentationFinsupp
+ solutionFinsupp
+ solutionFinsupp.isPresentationCore
+ solutionFinsupp_isPresentation
+ uniq
+ uniq_symm_var
+ uniq_var
- fromQuotient_mk

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 removed the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Oct 28, 2024
@mathlib4-dependent-issues-bot
Copy link
Copy Markdown
Collaborator

This PR/issue depends on:

@joelriou joelriou removed the WIP Work in progress label Oct 28, 2024
Copy link
Copy Markdown
Member

@erdOne erdOne left a comment

Choose a reason for hiding this comment

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

I feel that if you have a constructor of Presentation R M accepting an indexed family var spanning M and indexed family relations spanning the kernel of solution, you can the Freefile more easily without developingIsPresentationCore. But if you have other plans on IsPresentationCore` then this current approach works too.

@joelriou
Copy link
Copy Markdown
Contributor Author

I feel that if you have a constructor of Presentation R M accepting an indexed family var spanning M and indexed family relations spanning the kernel of solution, you can the Freefile more easily without developingIsPresentationCore. But if you have other plans on IsPresentationCore` then this current approach works too.

The case of free modules is a toy example for the IsPresentationCore API, for which I will have other applications (like the cokernel in #18332). At some point, I will also introduce the constructor you suggest so as to make the connection with Module.FinitePresentation.

Copy link
Copy Markdown
Member

@erdOne erdOne left a comment

Choose a reason for hiding this comment

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

LGTM

@erdOne
Copy link
Copy Markdown
Member

erdOne commented Oct 29, 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 Oct 29, 2024
Copy link
Copy Markdown
Member

@jcommelin jcommelin left a comment

Choose a reason for hiding this comment

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

Thanks 🎉

bors merge

@ghost ghost added the ready-to-merge This PR has been sent to bors. label Oct 30, 2024
mathlib-bors bot pushed a commit that referenced this pull request Oct 30, 2024
…heir presentations (#18327)

In this PR, the API for the presentations of modules is slightly developed (uniqueness up to a linear equivalence of the module defined by generators and relations, constructor for the property `IsPresentation`), and this is used to show that a module is free iff it admits a presentation with generators and no relation.

- [x] depends on: #18295



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

mathlib-bors bot commented Oct 30, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(Algebra/Module): characterizations of free modules in terms of their presentations [Merged by Bors] - feat(Algebra/Module): characterizations of free modules in terms of their presentations Oct 30, 2024
@mathlib-bors mathlib-bors bot closed this Oct 30, 2024
@mathlib-bors mathlib-bors bot deleted the unbundled-module-presentation-more-api branch October 30, 2024 05:54
grunweg pushed a commit that referenced this pull request Nov 2, 2024
…heir presentations (#18327)

In this PR, the API for the presentations of modules is slightly developed (uniqueness up to a linear equivalence of the module defined by generators and relations, constructor for the property `IsPresentation`), and this is used to show that a module is free iff it admits a presentation with generators and no relation.

- [x] depends on: #18295



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.

4 participants