Paper XI · Lean source
MoritaEndomorphismCoordinates111.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 (2)
PaperXI/MoritaEndomorphismCoordinates111.lean176 lines
Original source path
formalization/PaperXI/MoritaEndomorphismCoordinates111.leanSkip declarations and read code
1 import PaperXI.MoritaActualCartan110
2 import PaperXI.ActualCuspidalCandidate105
3 import Mathlib.LinearAlgebra.Pi
4 import Mathlib.LinearAlgebra.Matrix.ToLin
5
6 /-! Natural block-endomorphism coordinates for the literal Morita carrier.
7 No basis of E over F is chosen: the block decomposition uses the finite
8 product's coordinate inclusions and projections. -/
9 set_option autoImplicit false
10 noncomputable section
11 namespace PaperXI.MoritaEndomorphismCoordinates111
12 open Matrix Module
13
14 section BlockEndomorphisms
15 variable (F E m : Type*) [Field F] [Field E] [Algebra F E]
16 [Fintype m] [DecidableEq m]
17
18 /-- Assemble each row by the finite-product universal property, then assemble
19 the output coordinates. This is the natural block decomposition. -/
20 def blockLinearEquiv : Matrix m m (Module.End F E) ≃ₗ[F] Module.End F (m → E) :=
21 (LinearEquiv.piCongrRight fun _ : m =>
22 LinearMap.lsum F (fun _ : m => E) F).trans (LinearEquiv.linearMapPi F)
23
24 @[simp] theorem blockLinearEquiv_apply (A : Matrix m m (Module.End F E))
25 (v : m → E) (i : m) :
26 blockLinearEquiv F E m A v i = ∑ j, A i j (v j) := by
27 change (∑ j, (A i j).comp (LinearMap.proj j)) v = _
28 simp only [LinearMap.sum_apply, LinearMap.comp_apply, LinearMap.proj_apply]
29
30 /-- Matrix multiplication is composition of the actual block actions. -/
31 theorem blockLinearEquiv_mul (A B : Matrix m m (Module.End F E)) :
32 blockLinearEquiv F E m (A * B) = blockLinearEquiv F E m A * blockLinearEquiv F E m B := by
33 apply LinearMap.ext
34 intro v
35 funext i
36 simp only [blockLinearEquiv_apply, Module.End.mul_apply, Matrix.mul_apply,
37 LinearMap.sum_apply, map_sum]
38 exact Finset.sum_comm
39
40 /-- The exact ring equivalence between Morita matrices and endomorphisms of E^m. -/
41 def blockRingEquiv : Matrix m m (Module.End F E) ≃+* Module.End F (m → E) where
42 __ := (blockLinearEquiv F E m).toAddEquiv
43 map_mul' := blockLinearEquiv_mul F E m
44
45 @[simp] theorem blockRingEquiv_apply (A : Matrix m m (Module.End F E))
46 (v : m → E) (i : m) :
47 blockRingEquiv F E m A v i = ∑ j, A i j (v j) :=
48 blockLinearEquiv_apply F E m A v i
49
50 end BlockEndomorphisms
51
52 section ActualCoordinates
53 variable (F E m n : Type*) [Field F] [Field E] [Algebra F E]
54 [TopologicalSpace F] [TopologicalSpace E]
55 [Fintype m] [DecidableEq m] [Fintype n] [DecidableEq n]
56
57 /-- Transport the actual block carrier through the supplied F-coordinates. -/
58 def coordinateRingEquiv (e : (m → E) ≃L[F] (n → F)) :
59 Matrix m m (Module.End F E) ≃+* Matrix n n F :=
60 (blockRingEquiv F E m).trans
61 ((e.toLinearEquiv.conjAlgEquiv F).toRingEquiv.trans
62 LinearMap.toMatrixAlgEquiv'.toRingEquiv)
63
64 /-- The induced map on genuine units of the Morita carrier. -/
65 def coordinateUnitMap (e : (m → E) ≃L[F] (n → F)) :
66 (Matrix m m (Module.End F E))ˣ →* GL n F :=
67 Units.map (coordinateRingEquiv F E m n e).toMonoidHom
68
69 omit [TopologicalSpace F] [TopologicalSpace E] in
70 /-- The block embedding acts exactly as the existing restricted-scalar E-matrix action. -/
71 theorem blockRingEquiv_centralizerEmbedding (y : GL m E) :
72 blockRingEquiv F E m (PaperXI.MoritaActualCartan110.centralizerEmbedding F E m y :
73 Matrix m m (Module.End F E)) =
74 (PaperXI.ActualELatticeResidue59.restrictScalarMatrix F E m y).toLinearMap := by
75 apply LinearMap.ext
76 intro v
77 funext i
78 rw [blockRingEquiv_apply]
79 rfl
80
81 /-- The supplied-coordinate unit action agrees with the block endomorphism action. -/
82 theorem coordinateAut_coordinateUnitMap (e : (m → E) ≃L[F] (n → F))
83 (u : (Matrix m m (Module.End F E))ˣ) (v : m → E) :
84 PaperXI.LatticeCongruenceTopology60.coordinateAut e (coordinateUnitMap F E m n e u) v =
85 blockRingEquiv F E m (u : Matrix m m (Module.End F E)) v := by
86 rw [PaperXI.LatticeCongruenceTopology60.coordinateAut_apply]
87 change e.symm ((LinearMap.toMatrix'
88 ((e.toLinearEquiv.conjAlgEquiv F) (blockRingEquiv F E m (u : Matrix m m (Module.End F E)))))
89 *ᵥ e v) = _
90 rw [LinearMap.toMatrix'_mulVec]
91 change e.symm (e (blockRingEquiv F E m (u : Matrix m m (Module.End F E))
92 (e.symm (e v)))) = _
93 simp only [e.symm_apply_apply]
94
95 /-- The Morita centralizer maps to the literal existing centralizer on the original F-carrier. -/
96 theorem coordinateUnitMap_centralizer (e : (m → E) ≃L[F] (n → F)) (y : GL m E) :
97 coordinateUnitMap F E m n e
98 (PaperXI.MoritaActualCartan110.centralizerEmbedding F E m y) =
99 PaperXI.ActualCuspidalCandidate105.centralizerMap F E m n e y := by
100 apply (PaperXI.LatticeCongruenceTopology60.coordinateAut e).injective
101 change PaperXI.LatticeCongruenceTopology60.coordinateAut e
102 (coordinateUnitMap F E m n e
103 (PaperXI.MoritaActualCartan110.centralizerEmbedding F E m y)) =
104 PaperXI.LatticeCongruenceTopology60.coordinateAut e
105 ((PaperXI.LatticeCongruenceTopology60.coordinateAut e).symm
106 (PaperXI.ActualELatticeResidue59.restrictScalarMatrix F E m y))
107 rw [MulEquiv.apply_symm_apply]
108 apply LinearEquiv.ext
109 intro v
110 rw [coordinateAut_coordinateUnitMap]
111 exact congrArg (fun f : Module.End F (m → E) => f v)
112 (blockRingEquiv_centralizerEmbedding F E m y)
113
114 /-- Ring transport intertwines the actual unit-conjugation actions. -/
115 theorem coordinateRingEquiv_unitConjugation (e : (m → E) ≃L[F] (n → F))
116 (u : (Matrix m m (Module.End F E))ˣ) (x : Matrix m m (Module.End F E)) :
117 coordinateRingEquiv F E m n e (PaperXI.MoritaLattice110.unitConjugation u x) =
118 PaperXI.MoritaLattice110.unitConjugation (coordinateUnitMap F E m n e u)
119 (coordinateRingEquiv F E m n e x) := by
120 change coordinateRingEquiv F E m n e ((u : Matrix m m (Module.End F E)) * x *
121 ((u⁻¹ : (Matrix m m (Module.End F E))ˣ) : Matrix m m (Module.End F E))) = _
122 change _ = coordinateRingEquiv F E m n e (u : Matrix m m (Module.End F E)) *
123 coordinateRingEquiv F E m n e x * coordinateRingEquiv F E m n e
124 ((u⁻¹ : (Matrix m m (Module.End F E))ˣ) : Matrix m m (Module.End F E))
125 simp only [map_mul]
126
127 /-- The literal image of a conjugated lattice is the conjugate of its image. -/
128 theorem coordinate_map_conjugate (e : (m → E) ≃L[F] (n → F))
129 (L : AddSubgroup (Matrix m m (Module.End F E)))
130 (u : (Matrix m m (Module.End F E))ˣ) :
131 (L.map (PaperXI.MoritaLattice110.unitConjugation u).toAddMonoidHom).map
132 (coordinateRingEquiv F E m n e).toAddMonoidHom =
133 (L.map (coordinateRingEquiv F E m n e).toAddMonoidHom).map
134 (PaperXI.MoritaLattice110.unitConjugation (coordinateUnitMap F E m n e u)).toAddMonoidHom := by
135 rw [AddSubgroup.map_map, AddSubgroup.map_map]
136 congr 1
137 apply AddMonoidHom.ext
138 intro x
139 exact coordinateRingEquiv_unitConjugation F E m n e u x
140
141 /-- The relative index of the actual conjugate intersection is preserved in F-matrix coordinates. -/
142 theorem coordinate_intersection_relIndex (e : (m → E) ≃L[F] (n → F))
143 (L : AddSubgroup (Matrix m m (Module.End F E)))
144 (u : (Matrix m m (Module.End F E))ˣ) :
145 ((L.map (coordinateRingEquiv F E m n e).toAddMonoidHom) ⊓
146 (L.map (coordinateRingEquiv F E m n e).toAddMonoidHom).map
147 (PaperXI.MoritaLattice110.unitConjugation (coordinateUnitMap F E m n e u)).toAddMonoidHom).relIndex
148 (L.map (coordinateRingEquiv F E m n e).toAddMonoidHom) =
149 (L ⊓ L.map (PaperXI.MoritaLattice110.unitConjugation u).toAddMonoidHom).relIndex L := by
150 have h := AddSubgroup.map_inf L
151 (L.map (PaperXI.MoritaLattice110.unitConjugation u).toAddMonoidHom)
152 (coordinateRingEquiv F E m n e).toAddMonoidHom (coordinateRingEquiv F E m n e).injective
153 rw [coordinate_map_conjugate F E m n e L u] at h
154 rw [← h]
155 exact AddSubgroup.relIndex_map_map_of_injective
156 (L ⊓ L.map (PaperXI.MoritaLattice110.unitConjugation u).toAddMonoidHom) L
157 (coordinateRingEquiv F E m n e).injective
158
159 section IntegralCoordinates
160 open ValuativeRel
161 variable [ValuativeRel E]
162
163 /-- Integral centralizer units agree with the existing integral-matrix coordinate map. -/
164 theorem coordinateUnitMap_integral (e : (m → E) ≃L[F] (n → F)) (k : GL m 𝒪[E]) :
165 coordinateUnitMap F E m n e
166 (PaperXI.MoritaCartanTransport110.mappedMatrixUnit
167 (PaperXI.MoritaCornerRank110.coefficientMap F E) k) =
168 (PaperXI.LatticeCongruenceTopology60.coordinateAut e).symm
169 (PaperXI.ActualELatticeResidue59.integralMatrix F E m k) := by
170 rw [← PaperXI.MoritaActualCartan110.centralizerEmbedding_integral F E m k,
171 coordinateUnitMap_centralizer F E m n e]
172 rfl
173
174 end IntegralCoordinates
175 end ActualCoordinates
176 end PaperXI.MoritaEndomorphismCoordinates111
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: d0023761aee69e81f53222a6e334e6ac57122a15fd64ce9017ee0bc0e27663c0
Back to Paper XI: Packets, Arithmetic Realization, and Conditional Comparison