@@ -15,23 +15,24 @@ Tensor products of Lie modules carry natural Lie module structures.
15
15
lie module, tensor product, universal property
16
16
-/
17
17
18
- universes u v w w₁ w₂
18
+ universes u v w w₁ w₂ w₃
19
+
20
+ variables {R : Type u} [comm_ring R]
19
21
20
22
namespace tensor_product
21
23
22
24
open_locale tensor_product
23
25
24
- variables {R : Type u} [comm_ring R]
25
-
26
26
namespace lie_module
27
27
28
28
open lie_module
29
29
30
- variables {L : Type v} {M : Type w} {N : Type w₁} {P : Type w₂}
30
+ variables {L : Type v} {M : Type w} {N : Type w₁} {P : Type w₂} {Q : Type w₃}
31
31
variables [lie_ring L] [lie_algebra R L]
32
32
variables [add_comm_group M] [module R M] [lie_ring_module L M] [lie_module R L M]
33
33
variables [add_comm_group N] [module R N] [lie_ring_module L N] [lie_module R L N]
34
34
variables [add_comm_group P] [module R P] [lie_ring_module L P] [lie_module R L P]
35
+ variables [add_comm_group Q] [module R Q] [lie_ring_module L Q] [lie_module R L Q]
35
36
36
37
/-- It is useful to define the bracket via this auxiliary function so that we have a type-theoretic
37
38
expression of the fact that `L` acts by linear endomorphisms. It simplifies the proofs in
@@ -66,19 +67,19 @@ instance lie_module : lie_module R L (M ⊗[R] N) :=
66
67
linear_map.ltensor_smul, lie_hom.map_smul, linear_map.add_apply], },
67
68
lie_smul := λ c x, linear_map.map_smul _ c, }
68
69
69
- @[simp] lemma lie_tensor_right (x : L) (m : M) (n : N) :
70
+ @[simp] lemma lie_tmul_right (x : L) (m : M) (n : N) :
70
71
⁅x, m ⊗ₜ[R] n⁆ = ⁅x, m⁆ ⊗ₜ n + m ⊗ₜ ⁅x, n⁆ :=
71
72
show has_bracket_aux x (m ⊗ₜ[R] n) = _,
72
73
by simp only [has_bracket_aux, linear_map.rtensor_tmul, to_endomorphism_apply_apply,
73
74
linear_map.add_apply, linear_map.ltensor_tmul]
74
75
75
- variables (R L M N P)
76
+ variables (R L M N P Q )
76
77
77
78
/-- The universal property for tensor product of modules of a Lie algebra: the `R`-linear
78
79
tensor-hom adjunction is equivariant with respect to the `L` action. -/
79
80
def lift : (M →ₗ[R] N →ₗ[R] P) ≃ₗ⁅R,L⁆ (M ⊗[R] N →ₗ[R] P) :=
80
81
{ map_lie' := λ x f, by
81
- { ext m n, simp only [mk_apply, linear_map.compr₂_apply, lie_tensor_right , linear_map.sub_apply,
82
+ { ext m n, simp only [mk_apply, linear_map.compr₂_apply, lie_tmul_right , linear_map.sub_apply,
82
83
lift.equiv_apply, linear_equiv.to_fun_eq_coe, lie_hom.lie_apply, linear_map.map_add],
83
84
abel, },
84
85
..tensor_product.lift.equiv R M N P }
@@ -96,14 +97,106 @@ def lift_lie : (M →ₗ⁅R,L⁆ N →ₗ[R] P) ≃ₗ[R] (M ⊗[R] N →ₗ⁅
96
97
↑(maximal_trivial_equiv (lift R L M N P))).trans
97
98
maximal_trivial_linear_map_equiv_lie_module_hom
98
99
99
- @[simp] lemma lift_lie_apply (f : M →ₗ⁅R,L⁆ N →ₗ[R] P) (m : M) (n : N) :
100
+ @[simp] lemma coe_lift_lie_eq_lift_coe (f : M →ₗ⁅R,L⁆ N →ₗ[R] P) :
101
+ ⇑(lift_lie R L M N P f) = lift R L M N P f :=
102
+ begin
103
+ suffices : (lift_lie R L M N P f : M ⊗[R] N →ₗ[R] P) = lift R L M N P f,
104
+ { rw [← this , lie_module_hom.coe_to_linear_map], },
105
+ ext m n,
106
+ simp only [lift_lie, linear_equiv.trans_apply, lie_module_equiv.coe_to_linear_equiv,
107
+ coe_linear_map_maximal_trivial_linear_map_equiv_lie_module_hom, coe_maximal_trivial_equiv_apply,
108
+ coe_linear_map_maximal_trivial_linear_map_equiv_lie_module_hom_symm],
109
+ end
110
+
111
+ lemma lift_lie_apply (f : M →ₗ⁅R,L⁆ N →ₗ[R] P) (m : M) (n : N) :
100
112
lift_lie R L M N P f (m ⊗ₜ n) = f m n :=
101
- by simp only [lift_lie, linear_equiv.trans_apply, lie_module_hom.coe_to_linear_map,
102
- coe_maximal_trivial_linear_map_equiv_lie_module_hom,
103
- lie_module_equiv.coe_to_linear_equiv, coe_fn_coe_base,
104
- coe_maximal_trivial_linear_map_equiv_lie_module_hom_symm_apply,
105
- coe_maximal_trivial_equiv_apply, lift_apply]
113
+ by simp only [coe_lift_lie_eq_lift_coe, lie_module_hom.coe_to_linear_map, lift_apply]
114
+
115
+ variables {R L M N P Q}
116
+
117
+ /-- A pair of Lie module morphisms `f : M → P` and `g : N → Q`, induce a Lie module morphism:
118
+ `M ⊗ N → P ⊗ Q`. -/
119
+ def map (f : M →ₗ⁅R,L⁆ P) (g : N →ₗ⁅R,L⁆ Q) : M ⊗[R] N →ₗ⁅R,L⁆ P ⊗[R] Q :=
120
+ { map_lie' := λ x t, by
121
+ { simp only [linear_map.to_fun_eq_coe],
122
+ apply t.induction_on,
123
+ { simp only [linear_map.map_zero, lie_zero], },
124
+ { intros m n, simp only [lie_module_hom.coe_to_linear_map, lie_tmul_right,
125
+ lie_module_hom.map_lie, map_tmul, linear_map.map_add], },
126
+ { intros t₁ t₂ ht₁ ht₂, simp only [ht₁, ht₂, lie_add, linear_map.map_add], }, },
127
+ .. map (f : M →ₗ[R] P) (g : N →ₗ[R] Q), }
128
+
129
+ @[simp] lemma coe_linear_map_map (f : M →ₗ⁅R,L⁆ P) (g : N →ₗ⁅R,L⁆ Q) :
130
+ (map f g : M ⊗[R] N →ₗ[R] P ⊗[R] Q) = tensor_product.map (f : M →ₗ[R] P) (g : N →ₗ[R] Q) :=
131
+ rfl
132
+
133
+ @[simp] lemma map_tmul (f : M →ₗ⁅R,L⁆ P) (g : N →ₗ⁅R,L⁆ Q) (m : M) (n : N) :
134
+ map f g (m ⊗ₜ n) = (f m) ⊗ₜ (g n) :=
135
+ map_tmul f g m n
136
+
137
+ /-- Given Lie submodules `M' ⊆ M` and `N' ⊆ N`, this is the natural map: `M' ⊗ N' → M ⊗ N`. -/
138
+ def map_incl (M' : lie_submodule R L M) (N' : lie_submodule R L N) :
139
+ M' ⊗[R] N' →ₗ⁅R,L⁆ M ⊗[R] N :=
140
+ map M'.incl N'.incl
141
+
142
+ @[simp] lemma map_incl_def (M' : lie_submodule R L M) (N' : lie_submodule R L N) :
143
+ map_incl M' N' = map M'.incl N'.incl :=
144
+ rfl
106
145
107
146
end lie_module
108
147
109
148
end tensor_product
149
+
150
+ namespace lie_module
151
+
152
+ open_locale tensor_product
153
+
154
+ variables (R) (L : Type v) (M : Type w)
155
+ variables [lie_ring L] [lie_algebra R L]
156
+ variables [add_comm_group M] [module R M] [lie_ring_module L M] [lie_module R L M]
157
+
158
+ /-- The action of the Lie algebra on one of its modules, regarded as a morphism of Lie modules. -/
159
+ def to_module_hom : L ⊗[R] M →ₗ⁅R,L⁆ M :=
160
+ tensor_product.lie_module.lift_lie R L L M M
161
+ { map_lie' := λ x m, by { ext n, simp [lie_ring.of_associative_ring_bracket], },
162
+ ..(to_endomorphism R L M : L →ₗ[R] M →ₗ[R] M), }
163
+
164
+ @[simp] lemma to_module_hom_apply (x : L) (m : M) :
165
+ to_module_hom R L M (x ⊗ₜ m) = ⁅x, m⁆ :=
166
+ by simp only [to_module_hom, tensor_product.lie_module.lift_lie_apply, to_endomorphism_apply_apply,
167
+ lie_hom.coe_to_linear_map, lie_module_hom.coe_mk, linear_map.to_fun_eq_coe]
168
+
169
+ end lie_module
170
+
171
+ namespace lie_submodule
172
+
173
+ open_locale tensor_product
174
+
175
+ open tensor_product.lie_module
176
+ open lie_module
177
+
178
+ variables {L : Type v} {M : Type w}
179
+ variables [lie_ring L] [lie_algebra R L]
180
+ variables [add_comm_group M] [module R M] [lie_ring_module L M] [lie_module R L M]
181
+ variables (I : lie_ideal R L) (N : lie_submodule R L M)
182
+
183
+ /-- A useful alternative characterisation of Lie ideal operations on Lie submodules.
184
+
185
+ Given a Lie ideal `I ⊆ L` and a Lie submodule `N ⊆ M`, by tensoring the inclusion maps and then
186
+ applying the action of `L` on `M`, we obtain morphism of Lie modules `f : I ⊗ N → L ⊗ M → M`.
187
+
188
+ This lemma states that `⁅I, N⁆ = range f`. -/
189
+ lemma lie_ideal_oper_eq_tensor_map_range :
190
+ ⁅I, N⁆ = ((to_module_hom R L M).comp (map_incl I N : ↥I ⊗ ↥N →ₗ⁅R,L⁆ L ⊗ M)).range :=
191
+ begin
192
+ rw [← coe_to_submodule_eq_iff, lie_ideal_oper_eq_linear_span, lie_module_hom.coe_submodule_range,
193
+ lie_module_hom.coe_linear_map_comp, linear_map.range_comp, map_incl_def, coe_linear_map_map,
194
+ tensor_product.map_range_eq_span_tmul, submodule.map_span],
195
+ congr, ext m, split,
196
+ { rintros ⟨⟨x, hx⟩, ⟨n, hn⟩, rfl⟩, use x ⊗ₜ n, split,
197
+ { use [⟨x, hx⟩, ⟨n, hn⟩], simp, },
198
+ { simp, }, },
199
+ { rintros ⟨t, ⟨⟨x, hx⟩, ⟨n, hn⟩, rfl⟩, h⟩, rw ← h, use [⟨x, hx⟩, ⟨n, hn⟩], simp, },
200
+ end
201
+
202
+ end lie_submodule
0 commit comments