Paper XII · Lean source
LocalQuotients.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/LocalQuotients.lean126 lines
Original source path
core/publication/source/lean_guide/formal_release/lean/PaperXII/LocalQuotients.leanSkip declarations and read code
1 import Mathlib.Topology.Algebra.Ring.Ideal
2 import Mathlib.RingTheory.LocalRing.RingHom.Basic
3 import Mathlib.RingTheory.Ideal.Maps
4
5 /-! Actual quotient factorization, including continuity and the closed ideal
6 generated by local conditions. This proves the factorization assertion of
7 Paper XII 3.2 for the supplied topological rings and inclusions. -/
8 set_option autoImplicit false
9 namespace PaperXII.LocalQuotients
10
11 variable {R A : Type*} [CommRing R] [CommRing A]
12
13 /-- Factorization of the original point through the actual ideal quotient. -/
14 def Factors (J : Ideal R) (f : R →+* A) : Prop :=
15 ∃ g : R ⧸ J →+* A, g.comp (Ideal.Quotient.mk J) = f
16
17 /-- Algebraic factorization is exactly kernel containment. -/
18 theorem factors_iff (J : Ideal R) (f : R →+* A) :
19 Factors J f ↔ J ≤ RingHom.ker f := by
20 constructor
21 · rintro ⟨g, hg⟩ a ha
22 change f a = 0
23 rw [← hg]
24 change g (Ideal.Quotient.mk J a) = 0
25 rw [Ideal.Quotient.eq_zero_iff_mem.mpr ha, map_zero]
26 · intro h
27 exact ⟨Ideal.Quotient.lift J f h, by ext a; rfl⟩
28
29 /-- The quotient map is surjective, so its factor is unique. -/
30 theorem factor_unique (J : Ideal R) (f : R →+* A) (g h : R ⧸ J →+* A)
31 (hg : g.comp (Ideal.Quotient.mk J) = f)
32 (hh : h.comp (Ideal.Quotient.mk J) = f) : g = h :=
33 Ideal.Quotient.ringHom_ext (hg.trans hh.symm)
34
35 /-- A factor of a local point is itself a local map. -/
36 theorem factor_isLocal (J : Ideal R) (f : R →+* A) [IsLocalHom f]
37 (g : R ⧸ J →+* A) (hg : g.comp (Ideal.Quotient.mk J) = f) : IsLocalHom g := by
38 constructor
39 intro x hx
40 obtain ⟨a, rfl⟩ := Ideal.Quotient.mk_surjective x
41 have ha : IsUnit (f a) := by
42 rw [← hg]
43 exact hx
44 exact (isUnit_of_map_unit f a ha).map (Ideal.Quotient.mk J)
45
46 variable [TopologicalSpace R] [IsTopologicalRing R] [TopologicalSpace A]
47
48 /-- Continuous factorization uses the actual quotient topology. -/
49 def ContinuousFactors (J : Ideal R) (f : R →+* A) : Prop :=
50 ∃ g : R ⧸ J →+* A, Continuous g ∧ g.comp (Ideal.Quotient.mk J) = f
51
52 /-- The actual quotient factor of a continuous point is continuous. -/
53 theorem continuous_lift (J : Ideal R) (f : R →+* A) (hf : Continuous f)
54 (hJ : J ≤ RingHom.ker f) : Continuous (Ideal.Quotient.lift J f hJ) := by
55 apply (QuotientRing.isOpenQuotientMap_mk J).isQuotientMap.continuous_iff.mpr
56 exact hf
57
58 /-- There is no additional continuity obstruction after kernel containment. -/
59 theorem continuous_factors_iff (J : Ideal R) (f : R →+* A) (hf : Continuous f) :
60 ContinuousFactors J f ↔ J ≤ RingHom.ker f := by
61 constructor
62 · rintro ⟨g, _, hg⟩
63 exact (factors_iff J f).mp ⟨g, hg⟩
64 · intro hJ
65 exact ⟨Ideal.Quotient.lift J f hJ, continuous_lift J f hf hJ, by ext a; rfl⟩
66
67 /-- Existence and uniqueness hold for the continuous quotient factor of the same point. -/
68 theorem exists_unique_continuous_factor (J : Ideal R) (f : R →+* A)
69 (hf : Continuous f) (hJ : J ≤ RingHom.ker f) :
70 ∃! g : R ⧸ J →+* A, Continuous g ∧ g.comp (Ideal.Quotient.mk J) = f := by
71 obtain ⟨g, hc, hg⟩ := (continuous_factors_iff J f hf).mpr hJ
72 exact ⟨g, ⟨hc, hg⟩, fun h hh ↦ factor_unique J f h g hh.2 hg⟩
73
74 variable [T2Space A]
75
76 omit [IsTopologicalRing R] in
77 /-- The Hausdorff target makes the kernel of a continuous point closed. -/
78 theorem kernel_closed (f : R →+* A) (hf : Continuous f) :
79 IsClosed (RingHom.ker f : Set R) := isClosed_eq hf continuous_const
80
81 /-- Killing an ideal and killing its topological closure are equivalent. -/
82 theorem closure_le_kernel_iff (J : Ideal R) (f : R →+* A) (hf : Continuous f) :
83 J.closure ≤ RingHom.ker f ↔ J ≤ RingHom.ker f := by
84 constructor
85 · intro h a ha
86 exact h (subset_closure ha)
87 · intro h
88 exact closure_minimal h (kernel_closed f hf)
89
90 variable {V : Type*} (S : V → Type*) [∀ v, CommRing (S v)]
91 (inc : ∀ v, S v →+* R) (J : ∀ v, Ideal (S v))
92
93 /-- The literal closed ideal generated by all local condition ideals. -/
94 def closedConditions : Ideal R := (⨆ v, (J v).map (inc v)).closure
95
96 /-- The closure step and restriction to every local ideal are both proved. -/
97 theorem closed_conditions_iff (f : R →+* A) (hf : Continuous f) :
98 closedConditions S inc J ≤ RingHom.ker f ↔
99 ∀ v, J v ≤ RingHom.ker (f.comp (inc v)) := by
100 rw [closedConditions, closure_le_kernel_iff _ f hf, iSup_le_iff]
101 apply forall_congr'
102 intro v
103 rw [Ideal.map_le_iff_le_comap]
104 rfl
105
106 /-- Corollary 3.2: the global point factors exactly when all local restrictions do. -/
107 theorem factors_iff_local_factors [∀ v, TopologicalSpace (S v)]
108 [∀ v, IsTopologicalRing (S v)] (hinc : ∀ v, Continuous (inc v))
109 (f : R →+* A) (hf : Continuous f) :
110 ContinuousFactors (closedConditions S inc J) f ↔
111 ∀ v, ContinuousFactors (J v) (f.comp (inc v)) := by
112 rw [continuous_factors_iff _ f hf, closed_conditions_iff S inc J f hf]
113 exact forall_congr' (fun v ↦ (continuous_factors_iff (J v)
114 (f.comp (inc v)) (hf.comp (hinc v))).symm)
115
116 /-- When the point is local, its unique continuous global quotient factor is local. -/
117 theorem exists_unique_local_factor (f : R →+* A) [IsLocalHom f]
118 (hf : Continuous f) (h : ∀ v, J v ≤ RingHom.ker (f.comp (inc v))) :
119 ∃! g : R ⧸ closedConditions S inc J →+* A,
120 Continuous g ∧ IsLocalHom g ∧ g.comp (Ideal.Quotient.mk _) = f := by
121 obtain ⟨g, hg, _⟩ := exists_unique_continuous_factor (closedConditions S inc J) f hf
122 ((closed_conditions_iff S inc J f hf).mpr h)
123 exact ⟨g, ⟨hg.1, factor_isLocal _ f g hg.2, hg.2⟩,
124 fun k hk ↦ factor_unique _ f k g hk.2.2 hg.2⟩
125
126 end PaperXII.LocalQuotients
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: 738ec11826cea7e7aabccb35790b5977ede8e50860baf24cf1644fc625ff2767
Back to Paper XII: Patching Support, Hecke Packets, and Conditional Automorphic Completion