Paper XI · Lean source
MoritaActualCartan110.lean
Selected results recorded Coverage and evidence
Compiler/replay evidence is reported for a subset or bounded block. No whole-work coverage is implied.
This viewer reads the retained source; it does not run Lean or assign new claim mappings.
Local imports (4)
PaperXI/MoritaActualCartan110.lean266 lines
Original source path
formalization/PaperXI/MoritaActualCartan110.leanSkip declarations and read code
1 import PaperXI.MoritaIndex110
2 import PaperXI.ActualLocalCartan106
3 import PaperXI.MoritaCartanTransport110
4 import PaperXI.MoritaScalarUpgrade110
5
6 /-! Actual centralizer matrices act in the noncommutative endomorphism ring
7 through explicit ring homomorphisms. -/
8 set_option autoImplicit false
9 noncomputable section
10 namespace PaperXI.MoritaActualCartan110
11 open Matrix Module ValuativeRel
12 open PaperXI.MoritaLattice110 PaperXI.MoritaCornerRank110 PaperXI.MoritaIndex110
13 open PaperXI.MoritaCartanTransport110
14 variable (F E : Type*) [Field F] [Field E] [Algebra F E]
15 [Module.Finite F E] [ValuativeRel E] [TopologicalSpace E]
16 [IsNonarchimedeanLocalField E]
17 variable (m : Type*) [Fintype m] [DecidableEq m]
18
19 /-- The actual E-linear centralizer embedded in F-linear matrix endomorphisms.
20 Units.map is used because the target coefficient ring need not be commutative. -/
21 def centralizerEmbedding : GL m E →* (Matrix m m (Module.End F E))ˣ :=
22 Units.map (RingHom.mapMatrix (Algebra.lmul F E).toRingHom).toMonoidHom
23
24 def scalarEmbedding : Eˣ →* (Matrix m m (Module.End F E))ˣ :=
25 (centralizerEmbedding F E m).comp (GeneralLinearGroup.scalar m)
26
27 def uniformizerEndUnit : (Module.End F E)ˣ := coefficientUnit F E
28 (ActualLocalUnitDecomposition.uniformizer E)
29 (ActualLocalUnitDecomposition.uniformizer_ne_zero E)
30
31 omit [Module.Finite F E] [TopologicalSpace E] [IsNonarchimedeanLocalField E] in
32 theorem centralizerEmbedding_integral (k : GL m 𝒪[E]) :
33 centralizerEmbedding F E m (ActualIntegralGeneralLinear.embedding E m k) =
34 mappedMatrixUnit (coefficientMap F E) k := by
35 apply Units.ext
36 rfl
37
38 omit [Module.Finite F E] [TopologicalSpace E] [IsNonarchimedeanLocalField E] in
39 theorem scalarEmbedding_integralUnit (v : 𝒪[E]ˣ) :
40 scalarEmbedding F E m (ActualLocalUnitTopology.unitEmbedding E v) =
41 mappedMatrixUnit (coefficientMap F E) (GeneralLinearGroup.scalar m v) := by
42 apply Units.ext
43 ext i j
44 have hmap (x : 𝒪[E]) : algebraMap 𝒪[E] E x = (x : E) := rfl
45 by_cases hij : i = j
46 · subst j
47 simp [scalarEmbedding, centralizerEmbedding, GeneralLinearGroup.scalar,
48 Matrix.scalar_apply, Matrix.diagonal, mappedMatrixUnit, coefficientMap,
49 ActualLocalUnitTopology.unitEmbedding, hmap]
50 · simp [scalarEmbedding, centralizerEmbedding, GeneralLinearGroup.scalar,
51 Matrix.scalar_apply, Matrix.diagonal, mappedMatrixUnit, hij]
52
53 omit [Module.Finite F E] in
54 theorem scalarEmbedding_uniformizer :
55 scalarEmbedding F E m (ActualLocalUnitDecomposition.uniformizerUnit E) =
56 diagonalUnit (fun _ : m => coefficientUnit F E
57 (ActualLocalUnitDecomposition.uniformizer E)
58 (ActualLocalUnitDecomposition.uniformizer_ne_zero E)) := by
59 apply Units.ext
60 ext i j
61 by_cases hij : i = j
62 · subst j
63 simp [scalarEmbedding, centralizerEmbedding, GeneralLinearGroup.scalar,
64 Matrix.scalar_apply, diagonalUnit, Matrix.diagonal,
65 coefficientUnit, ActualLocalUnitDecomposition.uniformizerUnit]
66 · simp [scalarEmbedding, centralizerEmbedding, GeneralLinearGroup.scalar,
67 Matrix.scalar_apply, diagonalUnit, Matrix.diagonal, hij]
68
69 omit [Module.Finite F E] in
70 /-- Radical commutation and integral-unit stability imply that every actual
71 extension-field scalar normalizes the endomorphism lattice. -/
72 theorem scalarEmbedding_normalizes
73 (L : AddSubgroup (Matrix m m (Module.End F E)))
74 (hL : IsMatrixBimodule (coefficientMap F E) L)
75 (hcomm : L.map (AddMonoidHom.mulLeft
76 ((diagonalUnit (fun _ : m => uniformizerEndUnit F E) :
77 (Matrix m m (Module.End F E))ˣ) : Matrix m m (Module.End F E))) =
78 L.map (AddMonoidHom.mulRight
79 ((diagonalUnit (fun _ : m => uniformizerEndUnit F E) :
80 (Matrix m m (Module.End F E))ˣ) : Matrix m m (Module.End F E))))
81 (c : Eˣ) : scalarEmbedding F E m c ∈ normalizingUnits L := by
82 obtain ⟨⟨v, n⟩, rfl⟩ := ActualLocalUnitDecomposition.normalForm_surjective E c
83 rw [ActualLocalUnitDecomposition.normalFormHom_apply, map_mul, map_zpow,
84 scalarEmbedding_integralUnit F E m, scalarEmbedding_uniformizer F E m]
85 exact (normalizingUnits L).mul_mem
86 (mappedMatrixUnit_mem_normalizingUnits (coefficientMap F E) L hL
87 (GeneralLinearGroup.scalar m v))
88 ((normalizingUnits L).zpow_mem
89 (normalizes_of_left_right_map_eq L (diagonalUnit (fun _ : m => uniformizerEndUnit F E))
90 hcomm) n.toAdd)
91
92 omit [Module.Finite F E] in
93 theorem centralizerEmbedding_cartan (a : m → ℕ) :
94 centralizerEmbedding F E m
95 (PaperXI.SplitRadical105.cartan
96 (ActualLocalUnitDecomposition.uniformizer E : E)
97 (ActualLocalUnitDecomposition.uniformizer_ne_zero E) a) =
98 diagonalUnit (fun i => uniformizerEndUnit F E ^ (-(a i : ℤ))) := by
99 apply Units.ext
100 apply Matrix.ext
101 intro i j
102 have hp (n : ℕ) :
103 ((uniformizerEndUnit F E ^ (-(n : ℤ)) : (Module.End F E)ˣ) : Module.End F E) =
104 (Algebra.lmul F E).toRingHom (((ActualLocalUnitDecomposition.uniformizer E : E) ^ n)⁻¹) := by
105 change (((Units.map (Algebra.lmul F E).toRingHom)
106 (ActualLocalUnitDecomposition.uniformizerUnit E) ^ (-(n : ℤ)) :
107 (Module.End F E)ˣ) : Module.End F E) = _
108 rw [← map_zpow]
109 change (Algebra.lmul F E).toRingHom
110 (((ActualLocalUnitDecomposition.uniformizerUnit E ^ (-(n : ℤ)) : Eˣ) : E)) = _
111 congr 1
112 simp [ActualLocalUnitDecomposition.uniformizerUnit]
113 by_cases hij : i = j
114 · subst j
115 change (Algebra.lmul F E).toRingHom
116 ((Matrix.diagonal (fun k =>
117 ((ActualLocalUnitDecomposition.uniformizer E : E) ^ a k)⁻¹)) i i) =
118 (Matrix.diagonal (fun k =>
119 ((uniformizerEndUnit F E ^ (-(a k : ℤ)) : (Module.End F E)ˣ) : Module.End F E))) i i
120 simp only [Matrix.diagonal_apply_eq]
121 exact (hp (a i)).symm
122 · simp [centralizerEmbedding, PaperXI.SplitRadical105.cartan,
123 PaperXI.SplitRadical105.diagonalGL, diagonalUnit, Matrix.diagonal, hij]
124
125 /-- Literal equality of scalar-uniformizer images, the matrix form of radical
126 commutation used by this arithmetic calculation. -/
127 def RadicalCommutes (L : AddSubgroup (Matrix m m (Module.End F E))) : Prop :=
128 L.map (AddMonoidHom.mulLeft
129 ((diagonalUnit (fun _ : m => uniformizerEndUnit F E) :
130 (Matrix m m (Module.End F E))ˣ) : Matrix m m (Module.End F E))) =
131 L.map (AddMonoidHom.mulRight
132 ((diagonalUnit (fun _ : m => uniformizerEndUnit F E) :
133 (Matrix m m (Module.End F E))ˣ) : Matrix m m (Module.End F E)))
134
135 /-- Every actual Cartan factorization gives the same index for every finite full
136 integer-ring bimodule commuting with the scalar radical. -/
137 theorem relIndex_of_actual_cartan [Nonempty m]
138 (L : Submodule 𝒪[E] (Matrix m m (Module.End F E)))
139 (hL : IsMatrixBimodule (coefficientMap F E) L.toAddSubgroup)
140 (hfg : L.FG)
141 (hfull : Submodule.span F (L : Set (Matrix m m (Module.End F E))) = ⊤)
142 (hcomm : RadicalCommutes F E m L.toAddSubgroup)
143 (y : GL m E) (c : Eˣ) (l r : GL m 𝒪[E]) (a : m → ℕ)
144 (hy : y = GeneralLinearGroup.scalar m c *
145 (ActualIntegralGeneralLinear.embedding E m l *
146 PaperXI.SplitRadical105.cartan (ActualLocalUnitDecomposition.uniformizer E : E)
147 (ActualLocalUnitDecomposition.uniformizer_ne_zero E) a *
148 ActualIntegralGeneralLinear.embedding E m r)) :
149 (L.toAddSubgroup ⊓ L.toAddSubgroup.map
150 (unitConjugation (centralizerEmbedding F E m y)).toAddMonoidHom).relIndex
151 L.toAddSubgroup =
152 Nat.card 𝓀[E] ^ (Module.finrank F E * ∑ i, ∑ j, ((a i : ℤ) - (a j : ℤ)).toNat) := by
153 let k₁ := scalarEmbedding F E m c * mappedMatrixUnit (coefficientMap F E) l
154 let d := diagonalUnit (fun i => uniformizerEndUnit F E ^ (-(a i : ℤ)))
155 let k₂ := mappedMatrixUnit (coefficientMap F E) r
156 have he : centralizerEmbedding F E m y = k₁ * d * k₂ := by
157 rw [hy]
158 simp only [map_mul, centralizerEmbedding_integral, centralizerEmbedding_cartan]
159 change scalarEmbedding F E m c * (_ * _ * _) = _
160 simp only [k₁, d, k₂, mul_assoc]
161 have hk₁ : k₁ ∈ normalizingUnits L.toAddSubgroup :=
162 (normalizingUnits L.toAddSubgroup).mul_mem
163 (scalarEmbedding_normalizes F E m L.toAddSubgroup hL hcomm c)
164 (mappedMatrixUnit_mem_normalizingUnits (coefficientMap F E) L.toAddSubgroup hL l)
165 have hk₂ : k₂ ∈ normalizingUnits L.toAddSubgroup :=
166 mappedMatrixUnit_mem_normalizingUnits (coefficientMap F E) L.toAddSubgroup hL r
167 rw [he, intersection_relIndex_outer_factors L.toAddSubgroup k₁ d k₂ hk₁ hk₂]
168 have hd := diagonal_relIndex_of_radical_commutation F E L hL
169 (Classical.choice (inferInstance : Nonempty m)) hfg hfull
170 (ActualLocalUnitDecomposition.uniformizer E)
171 (ActualLocalUnitDecomposition.uniformizer_irreducible E)
172 (uniformizerEndUnit F E) (coefficientUnit_coe F E _ _) hcomm
173 (fun i => -(a i : ℤ))
174 have hs : (∑ i, ∑ j, (-(a i : ℤ) - -(a j : ℤ)).toNat) =
175 ∑ i, ∑ j, ((a i : ℤ) - (a j : ℤ)).toNat := by
176 simp only [neg_sub_neg]
177 exact Finset.sum_comm
178 simpa only [hs] using hd
179
180 /-- The Cartan factorization is obtained from the authenticated actual local
181 field theorem, rather than supplied as an arithmetic-index hypothesis. -/
182 theorem exists_actual_cartan_index [Nonempty m]
183 (L : Submodule 𝒪[E] (Matrix m m (Module.End F E)))
184 (hL : IsMatrixBimodule (coefficientMap F E) L.toAddSubgroup)
185 (hfg : L.FG)
186 (hfull : Submodule.span F (L : Set (Matrix m m (Module.End F E))) = ⊤)
187 (hcomm : RadicalCommutes F E m L.toAddSubgroup) (y : GL m E) :
188 ∃ c : Eˣ, ∃ l r : GL m 𝒪[E], ∃ a : m → ℕ,
189 (∃ i, a i = 0) ∧
190 y = GeneralLinearGroup.scalar m c *
191 (ActualIntegralGeneralLinear.embedding E m l *
192 PaperXI.SplitRadical105.cartan (ActualLocalUnitDecomposition.uniformizer E : E)
193 (ActualLocalUnitDecomposition.uniformizer_ne_zero E) a *
194 ActualIntegralGeneralLinear.embedding E m r) ∧
195 (L.toAddSubgroup ⊓ L.toAddSubgroup.map
196 (unitConjugation (centralizerEmbedding F E m y)).toAddMonoidHom).relIndex
197 L.toAddSubgroup =
198 Nat.card 𝓀[E] ^ (Module.finrank F E * ∑ i, ∑ j, ((a i : ℤ) - (a j : ℤ)).toNat) := by
199 obtain ⟨c, l, r, a, ha, hy⟩ := PaperXI.ActualLocalCartan106.hasCartan E m y
200 exact ⟨c, l, r, a, ha, hy,
201 relIndex_of_actual_cartan F E m L hL hfg hfull hcomm y c l r a hy⟩
202
203 /-- The finite-generation hypothesis may start with the genuine base-ring
204 lattice. Scalar stability is derived from its matrix bimodule, and the larger
205 scalar module keeps exactly the same additive carrier and full span. -/
206 theorem exists_actual_cartan_index_of_base_lattice [Nonempty m]
207 {R : Type*} [Ring R]
208 [Module R (Matrix m m (Module.End F E))] [SMul R 𝒪[E]]
209 [IsScalarTower R 𝒪[E] (Matrix m m (Module.End F E))]
210 (L : Submodule R (Matrix m m (Module.End F E)))
211 (hL : IsMatrixBimodule (coefficientMap F E) L.toAddSubgroup)
212 (hfg : L.FG)
213 (hfull : Submodule.span F (L : Set (Matrix m m (Module.End F E))) = ⊤)
214 (hcomm : RadicalCommutes F E m L.toAddSubgroup) (y : GL m E) :
215 ∃ a : m → ℕ,
216 (L.toAddSubgroup ⊓ L.toAddSubgroup.map
217 (unitConjugation (centralizerEmbedding F E m y)).toAddMonoidHom).relIndex
218 L.toAddSubgroup =
219 Nat.card 𝓀[E] ^ (Module.finrank F E * ∑ i, ∑ j, ((a i : ℤ) - (a j : ℤ)).toNat) := by
220 have hsmul : ∀ (s : 𝒪[E]) (x : Module.End F E),
221 s • x = coefficientMap F E s * x := by intro s x; ext v; rfl
222 let hstable := PaperXI.MoritaScalarUpgrade110.scalar_stable_of_matrix_bimodule
223 (coefficientMap F E) hsmul L.toAddSubgroup hL
224 let L' := PaperXI.MoritaScalarUpgrade110.upgrade L hstable
225 have hfg' : L'.FG := PaperXI.MoritaScalarUpgrade110.upgrade_fg L hstable hfg
226 obtain ⟨c, l, r, a, _, _, hindex⟩ :=
227 exists_actual_cartan_index F E m L' hL hfg' hfull hcomm y
228 exact ⟨a, hindex⟩
229
230 omit [Module.Finite F E] [ValuativeRel E] [TopologicalSpace E] [IsNonarchimedeanLocalField E] in
231 /-- Matrix rank zero has trivial lattice index. -/
232 theorem relIndex_isEmpty [IsEmpty m]
233 (L : AddSubgroup (Matrix m m (Module.End F E))) (y : GL m E) :
234 (L ⊓ L.map (unitConjugation (centralizerEmbedding F E m y)).toAddMonoidHom).relIndex L = 1 := by
235 let K := (L ⊓ L.map (unitConjugation (centralizerEmbedding F E m y)).toAddMonoidHom).addSubgroupOf L
236 have hz (z : L) : z = 0 := Subsingleton.elim _ _
237 have hx (x : L ⧸ K) : x = 0 := by
238 refine Quotient.inductionOn x ?_
239 intro z
240 rw [hz z]
241 rfl
242 let : Subsingleton (L ⧸ K) := ⟨fun x z => (hx x).trans (hx z).symm⟩
243 exact Nat.card_unique
244
245 /-- Matrix rank one has no nonzero Cartan difference. -/
246 theorem relIndex_subsingleton [Nonempty m] [Subsingleton m]
247 (L : Submodule 𝒪[E] (Matrix m m (Module.End F E)))
248 (hL : IsMatrixBimodule (coefficientMap F E) L.toAddSubgroup)
249 (hfg : L.FG)
250 (hfull : Submodule.span F (L : Set (Matrix m m (Module.End F E))) = ⊤)
251 (hcomm : RadicalCommutes F E m L.toAddSubgroup) (y : GL m E) :
252 (L.toAddSubgroup ⊓ L.toAddSubgroup.map
253 (unitConjugation (centralizerEmbedding F E m y)).toAddMonoidHom).relIndex
254 L.toAddSubgroup = 1 := by
255 obtain ⟨c, l, r, a, _, _, hindex⟩ :=
256 exists_actual_cartan_index F E m L hL hfg hfull hcomm y
257 have hs : (∑ i, ∑ j, ((a i : ℤ) - (a j : ℤ)).toNat) = 0 := by
258 apply Finset.sum_eq_zero
259 intro i _
260 apply Finset.sum_eq_zero
261 intro j _
262 rw [Subsingleton.elim i j]
263 simp
264 simpa only [hs, Nat.mul_zero, pow_zero] using hindex
265
266 end PaperXI.MoritaActualCartan110
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: dd18d3a60333f0e737ef4ff22c34db295f49460de701a9fddf9fcd3dc22d293a
Back to Paper XI: Packets, Arithmetic Realization, and Conditional Comparison