@@ -6,6 +6,7 @@ Authors: Oliver Nash
6
6
import Mathlib.Algebra.Algebra.RestrictScalars
7
7
import Mathlib.Algebra.Lie.TensorProduct
8
8
import Mathlib.LinearAlgebra.TensorProduct.Tower
9
+ import Mathlib.RingTheory.TensorProduct
9
10
10
11
#align_import algebra.lie.base_change from "leanprover-community/mathlib" @"9264b15ee696b7ca83f13c8ad67c83d6eb70b730"
11
12
@@ -152,8 +153,8 @@ variable [CommRing R] [LieRing L] [LieAlgebra R L]
152
153
[CommRing A] [Algebra R A]
153
154
154
155
@[simp]
155
- lemma LieModule.toEndomorphism_extendScalars (x : L) :
156
- toEndomorphism A (A ⊗[R] L) (A ⊗[R] M) (1 ⊗ₜ x) = (toEndomorphism R L M x).extendScalars A := by
156
+ lemma LieModule.toEndomorphism_baseChange (x : L) :
157
+ toEndomorphism A (A ⊗[R] L) (A ⊗[R] M) (1 ⊗ₜ x) = (toEndomorphism R L M x).baseChange A := by
157
158
ext; simp
158
159
159
160
namespace LieSubmodule
@@ -164,9 +165,11 @@ open LieModule
164
165
165
166
variable {R L M} in
166
167
/-- If `A` is an `R`-algebra, any Lie submodule of a Lie module `M` with coefficients in `R` may be
167
- pushed forward to a Lie submodule of `A ⊗ M` with coefficients in `A`. -/
168
- def extendScalars : LieSubmodule A (A ⊗[R] L) (A ⊗[R] M) :=
169
- { (N : Submodule R M).extendScalars A with
168
+ pushed forward to a Lie submodule of `A ⊗ M` with coefficients in `A`.
169
+
170
+ This "base change" operation is also known as "extension of scalars". -/
171
+ def baseChange : LieSubmodule A (A ⊗[R] L) (A ⊗[R] M) :=
172
+ { (N : Submodule R M).baseChange A with
170
173
lie_mem := by
171
174
intro x m hm
172
175
simp only [AddSubsemigroup.mem_carrier, AddSubmonoid.mem_toSubsemigroup,
@@ -176,56 +179,56 @@ def extendScalars : LieSubmodule A (A ⊗[R] L) (A ⊗[R] M) :=
176
179
· change toEndomorphism A (A ⊗[R] L) (A ⊗[R] M) _ _ ∈ _
177
180
simp_rw [Finsupp.total_apply, Finsupp.sum, map_sum, map_smul, toEndomorphism_apply_apply]
178
181
suffices ∀ n : (N : Submodule R M).map (TensorProduct.mk R A M 1 ),
179
- ⁅a ⊗ₜ[R] y, (n : A ⊗[R] M)⁆ ∈ (N : Submodule R M).extendScalars A by
182
+ ⁅a ⊗ₜ[R] y, (n : A ⊗[R] M)⁆ ∈ (N : Submodule R M).baseChange A by
180
183
exact Submodule.sum_mem _ fun n _ ↦ Submodule.smul_mem _ _ (this n)
181
184
rintro ⟨-, ⟨n : M, hn : n ∈ N, rfl⟩⟩
182
- exact Submodule.tmul_mem_extendScalars_of_mem _ (N.lie_mem hn)
185
+ exact Submodule.tmul_mem_baseChange_of_mem _ (N.lie_mem hn)
183
186
· rw [add_lie]
184
- exact ((N : Submodule R M).extendScalars A).add_mem hy hz }
187
+ exact ((N : Submodule R M).baseChange A).add_mem hy hz }
185
188
186
189
@[simp]
187
- lemma coe_extendScalars :
188
- (N.extendScalars A : Submodule A (A ⊗[R] M)) = (N : Submodule R M).extendScalars A :=
190
+ lemma coe_baseChange :
191
+ (N.baseChange A : Submodule A (A ⊗[R] M)) = (N : Submodule R M).baseChange A :=
189
192
rfl
190
193
191
194
variable {N}
192
195
193
196
variable {R A L M} in
194
- lemma tmul_mem_extendScalars_of_mem (a : A) {m : M} (hm : m ∈ N) :
195
- a ⊗ₜ[R] m ∈ N.extendScalars A :=
196
- (N : Submodule R M).tmul_mem_extendScalars_of_mem a hm
197
+ lemma tmul_mem_baseChange_of_mem (a : A) {m : M} (hm : m ∈ N) :
198
+ a ⊗ₜ[R] m ∈ N.baseChange A :=
199
+ (N : Submodule R M).tmul_mem_baseChange_of_mem a hm
197
200
198
- lemma mem_extendScalars_iff {m : A ⊗[R] M} :
199
- m ∈ N.extendScalars A ↔
201
+ lemma mem_baseChange_iff {m : A ⊗[R] M} :
202
+ m ∈ N.baseChange A ↔
200
203
m ∈ Submodule.span A ((N : Submodule R M).map (TensorProduct.mk R A M 1 )) :=
201
204
Iff.rfl
202
205
203
206
@[simp]
204
- lemma extendScalars_bot : (⊥ : LieSubmodule R L M).extendScalars A = ⊥ := by
205
- simp only [extendScalars , bot_coeSubmodule, Submodule.extendScalars_bot ,
207
+ lemma baseChange_bot : (⊥ : LieSubmodule R L M).baseChange A = ⊥ := by
208
+ simp only [baseChange , bot_coeSubmodule, Submodule.baseChange_bot ,
206
209
Submodule.bot_toAddSubmonoid]
207
210
rfl
208
211
209
212
@[simp]
210
- lemma extendScalars_top : (⊤ : LieSubmodule R L M).extendScalars A = ⊤ := by
211
- simp only [extendScalars , top_coeSubmodule, Submodule.extendScalars_top ,
213
+ lemma baseChange_top : (⊤ : LieSubmodule R L M).baseChange A = ⊤ := by
214
+ simp only [baseChange , top_coeSubmodule, Submodule.baseChange_top ,
212
215
Submodule.bot_toAddSubmonoid]
213
216
rfl
214
217
215
- lemma lie_extendScalars {I : LieIdeal R L} {N : LieSubmodule R L M} :
216
- ⁅I, N⁆.extendScalars A = ⁅I.extendScalars A, N.extendScalars A⁆ := by
218
+ lemma lie_baseChange {I : LieIdeal R L} {N : LieSubmodule R L M} :
219
+ ⁅I, N⁆.baseChange A = ⁅I.baseChange A, N.baseChange A⁆ := by
217
220
set s : Set (A ⊗[R] M) := { m | ∃ x ∈ I, ∃ n ∈ N, 1 ⊗ₜ ⁅x, n⁆ = m}
218
221
have : (TensorProduct.mk R A M 1 ) '' {m | ∃ x ∈ I, ∃ n ∈ N, ⁅x, n⁆ = m} = s := by ext; simp
219
- rw [← coe_toSubmodule_eq_iff, coe_extendScalars , lieIdeal_oper_eq_linear_span',
220
- Submodule.extendScalars_span , this, lieIdeal_oper_eq_linear_span']
222
+ rw [← coe_toSubmodule_eq_iff, coe_baseChange , lieIdeal_oper_eq_linear_span',
223
+ Submodule.baseChange_span , this, lieIdeal_oper_eq_linear_span']
221
224
refine le_antisymm (Submodule.span_mono ?_) (Submodule.span_le.mpr ?_)
222
225
· rintro - ⟨x, hx, m, hm, rfl⟩
223
- exact ⟨1 ⊗ₜ x, tmul_mem_extendScalars_of_mem 1 hx,
224
- 1 ⊗ₜ m, tmul_mem_extendScalars_of_mem 1 hm, by simp⟩
226
+ exact ⟨1 ⊗ₜ x, tmul_mem_baseChange_of_mem 1 hx,
227
+ 1 ⊗ₜ m, tmul_mem_baseChange_of_mem 1 hm, by simp⟩
225
228
· rintro - ⟨x, hx, m, hm, rfl⟩
226
229
revert m
227
230
apply Submodule.span_induction
228
- (p := fun x' ↦ ∀ m' ∈ N.extendScalars A, ⁅x', m'⁆ ∈ Submodule.span A s) hx
231
+ (p := fun x' ↦ ∀ m' ∈ N.baseChange A, ⁅x', m'⁆ ∈ Submodule.span A s) hx
229
232
· rintro _ ⟨y : L, hy : y ∈ I, rfl⟩ m hm
230
233
apply Submodule.span_induction (p := fun m' ↦ ⁅(1 : A) ⊗ₜ[R] y, m'⁆ ∈ Submodule.span A s) hm
231
234
· rintro - ⟨m', hm' : m' ∈ N, rfl⟩
0 commit comments