Paper XII · Lean source

ModuleSupport.lean

Inherited / related evidence Coverage and evidence

The edition relies on earlier or related formal evidence. That evidence is not a fresh full-edition replay.

This viewer reads the retained source; it does not run Lean or assign new claim mappings.

PaperXII/ModuleSupport.lean63 lines

Original source pathcore/publication/source/lean_guide/formal_release/lean/PaperXII/ModuleSupport.lean
Skip declarations and read code

Skip source text

1 import Mathlib.RingTheory.Support
2 import Mathlib.RingTheory.Noetherian.Nilpotent
3 
4 /-! Paper XII, claims 6.2, 6.7 and 6.8.
5 Support is Mathlib's actual localized-module support. -/
6 namespace PaperXII.ModuleSupport
7 
8 variable (R M : Type*) [CommRing R] [AddCommGroup M] [Module R M]
9 
10 /-- Every localization at a prime is nontrivial. -/
11 def FullSupport : Prop := Module.support R M = Set.univ
12 
13 /-- The annihilator ideal has a zero power. -/
14 def NearlyFaithful : Prop := IsNilpotent (Module.annihilator R M)
15 
16 /-- Manuscript 6.2. Finite generation suffices; no Noetherian assumption. -/
17 theorem support_eq_zeroLocus_annihilator [Module.Finite R M] :
18     Module.support R M = PrimeSpectrum.zeroLocus (Module.annihilator R M) :=
19   Module.support_eq_zeroLocus
20 
21 /-- The localization meaning of full support, without a finiteness assumption. -/
22 theorem fullSupport_iff_localizations :
23     FullSupport R M ↔ ∀ p : PrimeSpectrum R,
24       Nontrivial (LocalizedModule p.asIdeal.primeCompl M) := by
25   simp only [FullSupport, Set.eq_univ_iff_forall, Module.mem_support_iff]
26 
27 /-- Manuscript 6.7, conditions (2) and (3). -/
28 theorem fullSupport_iff_annihilator_le_nilradical [Module.Finite R M] :
29     FullSupport R M ↔ Module.annihilator R M ≤ nilradical R := by
30   rw [FullSupport, Module.support_eq_zeroLocus, PrimeSpectrum.zeroLocus_eq_univ_iff]
31   rfl
32 
33 /-- Manuscript 6.7, conditions (1) and (3). -/
34 theorem nearlyFaithful_iff_annihilator_le_nilradical [IsNoetherianRing R] :
35     NearlyFaithful R M ↔ Module.annihilator R M ≤ nilradical R :=
36   Ideal.FG.isNilpotent_iff_le_nilradical (IsNoetherian.noetherian _)
37 
38 /-- Manuscript 6.7, conditions (1) and (2). -/
39 theorem nearlyFaithful_iff_fullSupport [IsNoetherianRing R] [Module.Finite R M] :
40     NearlyFaithful R M ↔ FullSupport R M :=
41   (nearlyFaithful_iff_annihilator_le_nilradical R M).trans
42     (fullSupport_iff_annihilator_le_nilradical R M).symm
43 
44 /-- Manuscript 6.8, strengthened to every prime, hence every component generic point. -/
45 theorem nontrivial_localization_of_nearlyFaithful [IsNoetherianRing R]
46     [Module.Finite R M] (h : NearlyFaithful R M) (p : PrimeSpectrum R) :
47     Nontrivial (LocalizedModule p.asIdeal.primeCompl M) :=
48   (fullSupport_iff_localizations R M).mp
49     ((nearlyFaithful_iff_fullSupport R M).mp h) p
50 
51 /-- Manuscript 6.7, reduced-ring refinement. -/
52 theorem nearlyFaithful_iff_faithful_of_reduced [IsNoetherianRing R] [IsReduced R] :
53     NearlyFaithful R M ↔ FaithfulSMul R M := by
54   rw [nearlyFaithful_iff_annihilator_le_nilradical, nilradical_eq_zero,
55     Ideal.zero_eq_bot, le_bot_iff, Module.annihilator_eq_bot]
56 
57 /-- Full support detects faithfulness over a reduced ring for finite modules. -/
58 theorem fullSupport_iff_faithful_of_reduced [Module.Finite R M] [IsReduced R] :
59     FullSupport R M ↔ FaithfulSMul R M := by
60   rw [fullSupport_iff_annihilator_le_nilradical, nilradical_eq_zero,
61     Ideal.zero_eq_bot, le_bot_iff, Module.annihilator_eq_bot]
62 
63 end PaperXII.ModuleSupport

Back to source controls

Original file and source record

This copy matches the recorded source file. Its publication here does not change the work’s review status.

SHA-256: b724c27d7ea2d3f2a5941ffe751365fd3835bbe9bcfd29d65da0a8d7ae8ef8be

Original source on GitHub

Back to Paper XII: Patching Support, Hecke Packets, and Conditional Automorphic Completion