Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

draft(Module): Module length is additive in short exact sequences #22127

Open
wants to merge 18 commits into
base: master
Choose a base branch
from

Conversation

Raph-DG
Copy link
Collaborator

@Raph-DG Raph-DG commented Feb 20, 2025

In this PR, we define the module length to be the krull dimension of the lattice of submodules and prove that it is additive in short exact sequences. Relies on #22069, #22036 and #21869


Open in Gitpod

@Raph-DG Raph-DG added the WIP Work in progress label Feb 20, 2025
@github-actions github-actions bot added the new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! label Feb 20, 2025
RelSeries.trimmedLength (rs.submoduleComap S.f.hom) := by
induction' o : rs.length with n ih generalizing rs
· aesop
· let n' : Fin (rs.length) := {val := n, isLt := by rw[o] ; exact lt_add_one n}

Choose a reason for hiding this comment

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

[lint-style (comment with "bot fix style" to have the bot commit all style suggestions)] reported by reviewdog 🐶

Suggested change
· let n' : Fin (rs.length) := {val := n, isLt := by rw[o] ; exact lt_add_one n}
· let n' : Fin (rs.length) := {val := n, isLt := by rw[o]; exact lt_add_one n}

Copy link

github-actions bot commented Feb 20, 2025

PR summary 185ec73ce4

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.Order.TrimmedLength (new file) 1219
Mathlib.Algebra.Module.Length (new file) 1223

Declarations diff

+ Module.length
+ Module.length_additive
+ Module.length_additive_of_quotient
+ RelSeries.length_eq_trimmedLength_iff
+ RelSeries.moduleLength_ge_trimmedLength
+ RelSeries.trim
+ RelSeries.trimmedLength
+ RelSeries.trimmedLength_additive
+ RelSeries.trimmedLength_eraseLast_le
+ RelSeries.trimmedLength_eraseLast_of_eq
+ RelSeries.trimmedLength_eraseLast_of_lt
+ RelSeries.trimmedLength_exists_le
+ RelSeries.trimmedLength_le_length
+ add_iSup
+ coe_unbotD_iSup
+ iSup_add
+ iSup_le_add
+ instance (rs : RelSeries (α := α) (· ≤ ·)) :
+ ker_inf_lt_ker_inf
+ ker_inter_mono_of_map_eq
+ map_lt_map_of_ker_inf_eq
+ map_lt_map_or
+ map_mono_of_ker_inter_eq
+ ne_map_or_ne_kernel_inter_of_lt
+ range_inter_ssubset_iff_preimage_ssubset
+ rel_of_le
+ ssubset_iff_exists

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.


No changes to technical debt.

You can run this locally as

./scripts/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot added the blocked-by-other-PR This PR depends on another PR to Mathlib (this label is automatically managed by a bot) label Feb 21, 2025
@erdOne
Copy link
Member

erdOne commented Feb 24, 2025

I'm not entirely sure about this approach. I think we should show that the length is equal to the length of a composition series and then this result is immediate, instead of developing a whole new API reproving Jordan-Holder.

Note that the docstring/copyright is still missing
@Raph-DG
Copy link
Collaborator Author

Raph-DG commented Feb 25, 2025

I'm not entirely sure about this approach. I think we should show that the length is equal to the length of a composition series and then this result is immediate, instead of developing a whole new API reproving Jordan-Holder.

So I do agree that this is a lot of API to develop for this task (though I admit I can't yet see how what's proven here would imply Jordan Holder without some more work). We considered using this Jordan-Holder proof at one point, but we went for this other one because we thought on paper it looked like not much more work and that it would give the case for infinite length modules for free. But I agree that this small advantage over the Jordan-Holder based proof is definitely not worth all this API development.

That said, I still think the API itself is worthwhile for reasoning about chains of submodules because it makes moving them around with maps easier. I could be wrong about this applicability of the API because of my lack of experience, but if it is the case that this API is independently useful then I think it's less clear cut which approach to the proof we should use, because the actual proof of the main theorem here is fairly short once all the other stuff is built up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked-by-other-PR This PR depends on another PR to Mathlib (this label is automatically managed by a bot) new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! WIP Work in progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants