Skip to content

feat: Module theory theorems#37893

Open
abeldonate wants to merge 12 commits intoleanprover-community:masterfrom
abeldonate:ring-theory-lemmas
Open

feat: Module theory theorems#37893
abeldonate wants to merge 12 commits intoleanprover-community:masterfrom
abeldonate:ring-theory-lemmas

Conversation

@abeldonate
Copy link
Copy Markdown
Contributor

Added three theorems:

  • annihilator_sup
  • torsionOf_eq_annihilator_span_singleton
  • annihilator_eq_iInf_torsionOf

@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 Apr 10, 2026
@github-actions
Copy link
Copy Markdown

Welcome new contributor!

Thank you for contributing to Mathlib! If you haven't done so already, please review our contribution guidelines, as well as the style guide and naming conventions. In particular, we kindly remind contributors that we have guidelines regarding the use of AI when making pull requests.

We use a review queue to manage reviews. If your PR does not appear there, it is probably because it is not successfully building (i.e., it doesn't have a green checkmark), has the awaiting-author tag, or another reason described in the Lifecycle of a PR. The review dashboard has a dedicated webpage which shows whether your PR is on the review queue, and (if not), why.

If you haven't already done so, please come to https://leanprover.zulipchat.com/, introduce yourself, and mention your new PR.

Thank you again for joining our community.

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 10, 2026

PR summary 6bc2280e53

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

+ _root_.Module.annihilator_eq_iInf_torsionOf
+ annihilator_sup
+ torsionOf_eq_annihilator_span_singleton

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

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

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


No changes to technical debt.

You can run this locally as

./scripts/reporting/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).

· rw [mem_torsionOf_iff, smul_eq_zero] at hr
tauto

@[simp]
Copy link
Copy Markdown
Collaborator

@wwylele wwylele Apr 10, 2026

Choose a reason for hiding this comment

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

As the CI error shows, this breaks simp in some other files so it might not be a good global simp lemma

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I think it broke some other files because of the namespace I was using, now it should be fixed.

@github-actions github-actions bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Apr 10, 2026
@github-actions github-actions bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Apr 10, 2026
Copy link
Copy Markdown
Collaborator

@scholzhannah scholzhannah left a comment

Choose a reason for hiding this comment

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

Thank you for your PR! I have left some comments on style.

Comment on lines +117 to +119
torsionOf R M x = (Submodule.span R ({x} : Set M)).annihilator := by
have := (Submodule.annihilator_span_singleton (R := R) (M := M) x).symm
simpa [torsionOf]
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Suggested change
torsionOf R M x = (Submodule.span R ({x} : Set M)).annihilator := by
have := (Submodule.annihilator_span_singleton (R := R) (M := M) x).symm
simpa [torsionOf]
torsionOf R M x = (Submodule.span R ({x} : Set M)).annihilator :=
(Submodule.annihilator_span_singleton x).symm

I'm not 100% sure if we want this lemma given that it is just restating Submodule.annihilator_span_singleton but I think it is probably still useful for discoverability.

@scholzhannah scholzhannah added the awaiting-author A reviewer has asked the author a question or requested changes. label Apr 14, 2026
abeldonate and others added 2 commits April 14, 2026 20:19
Co-authored-by: Hannah Scholz <70071345+scholzhannah@users.noreply.github.com>
Co-authored-by: Hannah Scholz <70071345+scholzhannah@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting-author A reviewer has asked the author a question or requested changes. new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community!

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants