Skip to content

feat(Mathlib/Algebra/Module): uniform annihilator for FG modules with subsingleton localization#87

Open
chrisflav wants to merge 2 commits into
chrisflav:masterfrom
chrisflav-agents:pr/localization-fg-uniform-annihilator
Open

feat(Mathlib/Algebra/Module): uniform annihilator for FG modules with subsingleton localization#87
chrisflav wants to merge 2 commits into
chrisflav:masterfrom
chrisflav-agents:pr/localization-fg-uniform-annihilator

Conversation

@chrisflav
Copy link
Copy Markdown
Owner

Summary

Adds the lemma
Module.Finite.exists_mem_smul_eq_zero_of_subsingleton_localizedModule
to the Mathlib-mirror tree (new file
Proetale/Mathlib/Algebra/Module/LocalizedModule.lean):

For a finitely generated R-module M and a submonoid T ⊆ R such that the
localized module T⁻¹ M is trivial, there exists a single element t ∈ T whose
action annihilates all of M. This is the uniform version of
LocalizedModule.subsingleton_iff for finitely generated modules.

This is upstreamed from the archon branch (where it appears as a _root_.
helper inside Proetale/Mathlib/RingTheory/Etale/IndSpreads.lean,
named Module.exists_mem_smul_eq_zero_of_finite_of_subsingleton_localization).
Pulled out and renamed to a Mathlib-style location/name so it can be used
independently and is destined for Mathlib proper.

Test plan

  • lake build Proetale.Mathlib.Algebra.Module.LocalizedModule succeeds
  • full lake build succeeds (no regressions in dependents)
  • no sorry in the new file
  • manual review of the proof

… FG modules with subsingleton localization

Adds `Module.Finite.exists_mem_smul_eq_zero_of_subsingleton_localizedModule`:
for a finitely generated `R`-module `M` and a submonoid `T ⊆ R` such that the
localized module `T⁻¹ M` is trivial, there exists a single element `t ∈ T` that
annihilates all of `M`. This is the uniform version of
`LocalizedModule.subsingleton_iff` and is destined for Mathlib.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@chrisflav-agent chrisflav-agent Bot force-pushed the pr/localization-fg-uniform-annihilator branch from 3b75ee3 to 129ddac Compare May 22, 2026 14:57
@chrisflav chrisflav added archon Upstreamed from `archon` branch awaiting-auto-review This PR is scheduled to receive an automatic review through orchestra. labels May 22, 2026
…o `IsLocalizedModule` and strengthen to `iff`

Addresses review on PR chrisflav#87:

- Generalize from `LocalizedModule T M` to any `g : M →ₗ[R] M'` with
  `[IsLocalizedModule S g]`, matching the pattern of
  `IsLocalizedModule.subsingleton_iff` / `LocalizedModule.subsingleton_iff`.
- Strengthen the existential to an `iff`
  (`Module.Finite.subsingleton_iff_exists_mem_smul_eq_zero`): under finite
  generation, a uniform annihilator exists iff the localization is trivial.
  Keep the forward existential
  (`Module.Finite.exists_mem_smul_eq_zero_of_subsingleton`) as a thin
  corollary, with the `_localizedModule` suffix dropped.
- Move the file to `Proetale/Mathlib/RingTheory/Finiteness/LocalizedModule.lean`
  to respect the mirror-tree convention and reflect the `Module.Finite`
  dependency (the lemma's heavier import is `RingTheory.Finiteness`).
- Minor proof polish: `s.mem_attach ⟨x, hx⟩` and `by rw [hs]; exact Submodule.mem_top`.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@chrisflav chrisflav removed the awaiting-auto-review This PR is scheduled to receive an automatic review through orchestra. label May 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

archon Upstreamed from `archon` branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant