@@ -19,8 +19,8 @@ modules, morphisms and equivalences, as well as various lemmas to make these def
19
19
* `lie_algebra`
20
20
* `lie_ring_module`
21
21
* `lie_module`
22
- * `lie_algebra.morphism `
23
- * `lie_algebra.equiv `
22
+ * `lie_hom `
23
+ * `lie_equiv `
24
24
* `lie_module_hom`
25
25
* `lie_module_equiv`
26
26
@@ -133,107 +133,105 @@ by { rw [← neg_neg ⁅x, y⁆, lie_neg z, lie_skew y x, ← lie_skew, lie_lie]
133
133
134
134
end basic_properties
135
135
136
- namespace lie_algebra
137
-
138
136
set_option old_structure_cmd true
139
137
/-- A morphism of Lie algebras is a linear map respecting the bracket operations. -/
140
- structure morphism (R : Type u) (L : Type v) (L' : Type w)
138
+ structure lie_hom (R : Type u) (L : Type v) (L' : Type w)
141
139
[comm_ring R] [lie_ring L] [lie_algebra R L] [lie_ring L'] [lie_algebra R L']
142
- extends linear_map R L L' :=
143
- (map_lie : ∀ {x y : L}, to_fun ⁅x, y⁆ = ⁅to_fun x, to_fun y⁆)
140
+ extends L →ₗ[R] L' :=
141
+ (map_lie' : ∀ {x y : L}, to_fun ⁅x, y⁆ = ⁅to_fun x, to_fun y⁆)
144
142
145
- attribute [nolint doc_blame] lie_algebra.morphism .to_linear_map
143
+ attribute [nolint doc_blame] lie_hom .to_linear_map
146
144
147
- notation L ` →ₗ⁅`:25 R:25 `⁆ `:0 L':0 := morphism R L L'
145
+ notation L ` →ₗ⁅`:25 R:25 `⁆ `:0 L':0 := lie_hom R L L'
148
146
149
- section morphism_properties
147
+ namespace lie_hom
150
148
151
149
variables {R : Type u} {L₁ : Type v} {L₂ : Type w} {L₃ : Type w₁}
152
150
variables [comm_ring R] [lie_ring L₁] [lie_ring L₂] [lie_ring L₃]
153
151
variables [lie_algebra R L₁] [lie_algebra R L₂] [lie_algebra R L₃]
154
152
155
- instance : has_coe (L₁ →ₗ⁅R⁆ L₂) (L₁ →ₗ[R] L₂) := ⟨morphism .to_linear_map⟩
153
+ instance : has_coe (L₁ →ₗ⁅R⁆ L₂) (L₁ →ₗ[R] L₂) := ⟨lie_hom .to_linear_map⟩
156
154
157
155
/-- see Note [function coercion] -/
158
- instance : has_coe_to_fun (L₁ →ₗ⁅R⁆ L₂) := ⟨_, morphism .to_fun⟩
156
+ instance : has_coe_to_fun (L₁ →ₗ⁅R⁆ L₂) := ⟨_, lie_hom .to_fun⟩
159
157
160
- initialize_simps_projections lie_algebra.morphism (to_fun → apply)
158
+ initialize_simps_projections lie_hom (to_fun → apply)
161
159
162
160
@[simp] lemma coe_mk (f : L₁ → L₂) (h₁ h₂ h₃) :
163
161
((⟨f, h₁, h₂, h₃⟩ : L₁ →ₗ⁅R⁆ L₂) : L₁ → L₂) = f := rfl
164
162
165
163
@[simp, norm_cast] lemma coe_to_linear_map (f : L₁ →ₗ⁅R⁆ L₂) : ((f : L₁ →ₗ[R] L₂) : L₁ → L₂) = f :=
166
164
rfl
167
165
168
- @[simp] lemma morphism. map_smul (f : L₁ →ₗ⁅R⁆ L₂) (c : R) (x : L₁) : f (c • x) = c • f x :=
166
+ @[simp] lemma map_smul (f : L₁ →ₗ⁅R⁆ L₂) (c : R) (x : L₁) : f (c • x) = c • f x :=
169
167
linear_map.map_smul (f : L₁ →ₗ[R] L₂) c x
170
168
171
- @[simp] lemma morphism. map_add (f : L₁ →ₗ⁅R⁆ L₂) (x y : L₁) : f (x + y) = (f x) + (f y) :=
169
+ @[simp] lemma map_add (f : L₁ →ₗ⁅R⁆ L₂) (x y : L₁) : f (x + y) = (f x) + (f y) :=
172
170
linear_map.map_add (f : L₁ →ₗ[R] L₂) x y
173
171
174
- @[simp] lemma map_lie (f : L₁ →ₗ⁅R⁆ L₂) (x y : L₁) : f ⁅x, y⁆ = ⁅f x, f y⁆ := morphism .map_lie f
172
+ @[simp] lemma map_lie (f : L₁ →ₗ⁅R⁆ L₂) (x y : L₁) : f ⁅x, y⁆ = ⁅f x, f y⁆ := lie_hom .map_lie' f
175
173
176
174
@[simp] lemma map_zero (f : L₁ →ₗ⁅R⁆ L₂) : f 0 = 0 := (f : L₁ →ₗ[R] L₂).map_zero
177
175
178
176
/-- The constant 0 map is a Lie algebra morphism. -/
179
- instance : has_zero (L₁ →ₗ⁅R⁆ L₂) := ⟨{ map_lie := by simp, ..(0 : L₁ →ₗ[R] L₂)}⟩
177
+ instance : has_zero (L₁ →ₗ⁅R⁆ L₂) := ⟨{ map_lie' := by simp, ..(0 : L₁ →ₗ[R] L₂)}⟩
180
178
181
179
/-- The identity map is a Lie algebra morphism. -/
182
- instance : has_one (L₁ →ₗ⁅R⁆ L₁) := ⟨{ map_lie := by simp, ..(1 : L₁ →ₗ[R] L₁)}⟩
180
+ instance : has_one (L₁ →ₗ⁅R⁆ L₁) := ⟨{ map_lie' := by simp, ..(1 : L₁ →ₗ[R] L₁)}⟩
183
181
184
182
instance : inhabited (L₁ →ₗ⁅R⁆ L₂) := ⟨0 ⟩
185
183
186
- lemma morphism. coe_injective : function.injective (λ f : L₁ →ₗ⁅R⁆ L₂, show L₁ → L₂, from f) :=
184
+ lemma coe_injective : function.injective (λ f : L₁ →ₗ⁅R⁆ L₂, show L₁ → L₂, from f) :=
187
185
by rintro ⟨f, _⟩ ⟨g, _⟩ ⟨h⟩; congr
188
186
189
- @[ext] lemma morphism. ext {f g : L₁ →ₗ⁅R⁆ L₂} (h : ∀ x, f x = g x) : f = g :=
190
- morphism. coe_injective $ funext h
187
+ @[ext] lemma ext {f g : L₁ →ₗ⁅R⁆ L₂} (h : ∀ x, f x = g x) : f = g :=
188
+ coe_injective $ funext h
191
189
192
- lemma morphism. ext_iff {f g : L₁ →ₗ⁅R⁆ L₂} : f = g ↔ ∀ x, f x = g x :=
193
- ⟨by { rintro rfl x, refl }, morphism. ext⟩
190
+ lemma ext_iff {f g : L₁ →ₗ⁅R⁆ L₂} : f = g ↔ ∀ x, f x = g x :=
191
+ ⟨by { rintro rfl x, refl }, ext⟩
194
192
195
193
/-- The composition of morphisms is a morphism. -/
196
- def morphism. comp (f : L₂ →ₗ⁅R⁆ L₃) (g : L₁ →ₗ⁅R⁆ L₂) : L₁ →ₗ⁅R⁆ L₃ :=
197
- { map_lie := λ x y, by { change f (g ⁅x, y⁆) = ⁅f (g x), f (g y)⁆, rw [map_lie, map_lie], },
194
+ def comp (f : L₂ →ₗ⁅R⁆ L₃) (g : L₁ →ₗ⁅R⁆ L₂) : L₁ →ₗ⁅R⁆ L₃ :=
195
+ { map_lie' := λ x y, by { change f (g ⁅x, y⁆) = ⁅f (g x), f (g y)⁆, rw [map_lie, map_lie], },
198
196
..linear_map.comp f.to_linear_map g.to_linear_map }
199
197
200
- @[simp] lemma morphism. comp_apply (f : L₂ →ₗ⁅R⁆ L₃) (g : L₁ →ₗ⁅R⁆ L₂) (x : L₁) :
198
+ @[simp] lemma comp_apply (f : L₂ →ₗ⁅R⁆ L₃) (g : L₁ →ₗ⁅R⁆ L₂) (x : L₁) :
201
199
f.comp g x = f (g x) := rfl
202
200
203
201
@[norm_cast]
204
- lemma morphism. comp_coe (f : L₂ →ₗ⁅R⁆ L₃) (g : L₁ →ₗ⁅R⁆ L₂) :
202
+ lemma comp_coe (f : L₂ →ₗ⁅R⁆ L₃) (g : L₁ →ₗ⁅R⁆ L₂) :
205
203
(f : L₂ → L₃) ∘ (g : L₁ → L₂) = f.comp g := rfl
206
204
207
205
/-- The inverse of a bijective morphism is a morphism. -/
208
- def morphism. inverse (f : L₁ →ₗ⁅R⁆ L₂) (g : L₂ → L₁)
206
+ def inverse (f : L₁ →ₗ⁅R⁆ L₂) (g : L₂ → L₁)
209
207
(h₁ : function.left_inverse g f) (h₂ : function.right_inverse g f) : L₂ →ₗ⁅R⁆ L₁ :=
210
- { map_lie := λ x y,
208
+ { map_lie' := λ x y,
211
209
calc g ⁅x, y⁆ = g ⁅f (g x), f (g y)⁆ : by { conv_lhs { rw [←h₂ x, ←h₂ y], }, }
212
210
... = g (f ⁅g x, g y⁆) : by rw map_lie
213
211
... = ⁅g x, g y⁆ : (h₁ _),
214
212
..linear_map.inverse f.to_linear_map g h₁ h₂ }
215
213
216
- end morphism_properties
214
+ end lie_hom
217
215
218
216
/-- An equivalence of Lie algebras is a morphism which is also a linear equivalence. We could
219
217
instead define an equivalence to be a morphism which is also a (plain) equivalence. However it is
220
218
more convenient to define via linear equivalence to get `.to_linear_equiv` for free. -/
221
- structure equiv (R : Type u) (L : Type v) (L' : Type w)
219
+ structure lie_equiv (R : Type u) (L : Type v) (L' : Type w)
222
220
[comm_ring R] [lie_ring L] [lie_algebra R L] [lie_ring L'] [lie_algebra R L']
223
221
extends L →ₗ⁅R⁆ L', L ≃ₗ[R] L'
224
222
225
- attribute [nolint doc_blame] lie_algebra.equiv.to_morphism
226
- attribute [nolint doc_blame] lie_algebra.equiv .to_linear_equiv
223
+ attribute [nolint doc_blame] lie_equiv.to_lie_hom
224
+ attribute [nolint doc_blame] lie_equiv .to_linear_equiv
227
225
228
- notation L ` ≃ₗ⁅`:50 R `⁆ ` L' := equiv R L L'
226
+ notation L ` ≃ₗ⁅`:50 R `⁆ ` L' := lie_equiv R L L'
229
227
230
- namespace equiv
228
+ namespace lie_equiv
231
229
232
230
variables {R : Type u} {L₁ : Type v} {L₂ : Type w} {L₃ : Type w₁}
233
231
variables [comm_ring R] [lie_ring L₁] [lie_ring L₂] [lie_ring L₃]
234
232
variables [lie_algebra R L₁] [lie_algebra R L₂] [lie_algebra R L₃]
235
233
236
- instance has_coe_to_lie_hom : has_coe (L₁ ≃ₗ⁅R⁆ L₂) (L₁ →ₗ⁅R⁆ L₂) := ⟨to_morphism ⟩
234
+ instance has_coe_to_lie_hom : has_coe (L₁ ≃ₗ⁅R⁆ L₂) (L₁ →ₗ⁅R⁆ L₂) := ⟨to_lie_hom ⟩
237
235
instance has_coe_to_linear_equiv : has_coe (L₁ ≃ₗ⁅R⁆ L₂) (L₁ ≃ₗ[R] L₂) := ⟨to_linear_equiv⟩
238
236
239
237
/-- see Note [function coercion] -/
@@ -246,7 +244,7 @@ instance : has_coe_to_fun (L₁ ≃ₗ⁅R⁆ L₂) := ⟨_, to_fun⟩
246
244
((e : L₁ ≃ₗ[R] L₂) : L₁ → L₂) = e := rfl
247
245
248
246
instance : has_one (L₁ ≃ₗ⁅R⁆ L₁) :=
249
- ⟨{ map_lie := λ x y,
247
+ ⟨{ map_lie' := λ x y,
250
248
by { change ((1 : L₁→ₗ[R] L₁) ⁅x, y⁆) = ⁅(1 : L₁→ₗ[R] L₁) x, (1 : L₁→ₗ[R] L₁) y⁆, simp, },
251
249
..(1 : L₁ ≃ₗ[R] L₁)}⟩
252
250
@@ -263,7 +261,7 @@ def refl : L₁ ≃ₗ⁅R⁆ L₁ := 1
263
261
/-- Lie algebra equivalences are symmetric. -/
264
262
@[symm]
265
263
def symm (e : L₁ ≃ₗ⁅R⁆ L₂) : L₂ ≃ₗ⁅R⁆ L₁ :=
266
- { ..morphism .inverse e.to_morphism e.inv_fun e.left_inv e.right_inv,
264
+ { ..lie_hom .inverse e.to_lie_hom e.inv_fun e.left_inv e.right_inv,
267
265
..e.to_linear_equiv.symm }
268
266
269
267
@[simp] lemma symm_symm (e : L₁ ≃ₗ⁅R⁆ L₂) : e.symm.symm = e :=
@@ -278,7 +276,7 @@ by { cases e, refl, }
278
276
/-- Lie algebra equivalences are transitive. -/
279
277
@[trans]
280
278
def trans (e₁ : L₁ ≃ₗ⁅R⁆ L₂) (e₂ : L₂ ≃ₗ⁅R⁆ L₃) : L₁ ≃ₗ⁅R⁆ L₃ :=
281
- { ..morphism .comp e₂.to_morphism e₁.to_morphism ,
279
+ { ..lie_hom .comp e₂.to_lie_hom e₁.to_lie_hom ,
282
280
..linear_equiv.trans e₁.to_linear_equiv e₂.to_linear_equiv }
283
281
284
282
@[simp] lemma trans_apply (e₁ : L₁ ≃ₗ⁅R⁆ L₂) (e₂ : L₂ ≃ₗ⁅R⁆ L₃) (x : L₁) :
@@ -296,9 +294,7 @@ e.to_linear_equiv.injective
296
294
lemma surjective (e : L₁ ≃ₗ⁅R⁆ L₂) : function.surjective ((e : L₁ →ₗ⁅R⁆ L₂) : L₁ → L₂) :=
297
295
e.to_linear_equiv.surjective
298
296
299
- end equiv
300
-
301
- end lie_algebra
297
+ end lie_equiv
302
298
303
299
section lie_module_morphisms
304
300
@@ -314,7 +310,7 @@ set_option old_structure_cmd true
314
310
/-- A morphism of Lie algebra modules is a linear map which commutes with the action of the Lie
315
311
algebra. -/
316
312
structure lie_module_hom extends M →ₗ[R] N :=
317
- (map_lie : ∀ {x : L} {m : M}, to_fun ⁅x, m⁆ = ⁅x, to_fun m⁆)
313
+ (map_lie' : ∀ {x : L} {m : M}, to_fun ⁅x, m⁆ = ⁅x, to_fun m⁆)
318
314
319
315
attribute [nolint doc_blame] lie_module_hom.to_linear_map
320
316
@@ -335,14 +331,14 @@ instance : has_coe_to_fun (M →ₗ⁅R,L⁆ N) := ⟨_, lie_module_hom.to_fun
335
331
@[simp, norm_cast] lemma coe_to_linear_map (f : M →ₗ⁅R,L⁆ N) : ((f : M →ₗ[R] N) : M → N) = f :=
336
332
rfl
337
333
338
- @[simp] lemma map_lie' (f : M →ₗ⁅R,L⁆ N) (x : L) (m : M) : f ⁅x, m⁆ = ⁅x, f m⁆ :=
339
- lie_module_hom.map_lie f
334
+ @[simp] lemma map_lie (f : M →ₗ⁅R,L⁆ N) (x : L) (m : M) : f ⁅x, m⁆ = ⁅x, f m⁆ :=
335
+ lie_module_hom.map_lie' f
340
336
341
337
/-- The constant 0 map is a Lie module morphism. -/
342
- instance : has_zero (M →ₗ⁅R,L⁆ N) := ⟨{ map_lie := by simp, ..(0 : M →ₗ[R] N) }⟩
338
+ instance : has_zero (M →ₗ⁅R,L⁆ N) := ⟨{ map_lie' := by simp, ..(0 : M →ₗ[R] N) }⟩
343
339
344
340
/-- The identity map is a Lie module morphism. -/
345
- instance : has_one (M →ₗ⁅R,L⁆ M) := ⟨{ map_lie := by simp, ..(1 : M →ₗ[R] M) }⟩
341
+ instance : has_one (M →ₗ⁅R,L⁆ M) := ⟨{ map_lie' := by simp, ..(1 : M →ₗ[R] M) }⟩
346
342
347
343
instance : inhabited (M →ₗ⁅R,L⁆ N) := ⟨0 ⟩
348
344
@@ -357,7 +353,7 @@ lemma ext_iff {f g : M →ₗ⁅R,L⁆ N} : f = g ↔ ∀ m, f m = g m :=
357
353
358
354
/-- The composition of Lie module morphisms is a morphism. -/
359
355
def comp (f : N →ₗ⁅R,L⁆ P) (g : M →ₗ⁅R,L⁆ N) : M →ₗ⁅R,L⁆ P :=
360
- { map_lie := λ x m, by { change f (g ⁅x, m⁆) = ⁅x, f (g m)⁆, rw [map_lie' , map_lie' ], },
356
+ { map_lie' := λ x m, by { change f (g ⁅x, m⁆) = ⁅x, f (g m)⁆, rw [map_lie, map_lie], },
361
357
..linear_map.comp f.to_linear_map g.to_linear_map }
362
358
363
359
@[simp] lemma comp_apply (f : N →ₗ⁅R,L⁆ P) (g : M →ₗ⁅R,L⁆ N) (m : M) :
@@ -369,9 +365,9 @@ def comp (f : N →ₗ⁅R,L⁆ P) (g : M →ₗ⁅R,L⁆ N) : M →ₗ⁅R,L⁆
369
365
/-- The inverse of a bijective morphism of Lie modules is a morphism of Lie modules. -/
370
366
def inverse (f : M →ₗ⁅R,L⁆ N) (g : N → M)
371
367
(h₁ : function.left_inverse g f) (h₂ : function.right_inverse g f) : N →ₗ⁅R,L⁆ M :=
372
- { map_lie := λ x n,
368
+ { map_lie' := λ x n,
373
369
calc g ⁅x, n⁆ = g ⁅x, f (g n)⁆ : by rw h₂
374
- ... = g (f ⁅x, g n⁆) : by rw map_lie'
370
+ ... = g (f ⁅x, g n⁆) : by rw map_lie
375
371
... = ⁅x, g n⁆ : (h₁ _),
376
372
..linear_map.inverse f.to_linear_map g h₁ h₂ }
377
373
@@ -402,7 +398,7 @@ instance : has_coe_to_fun (M ≃ₗ⁅R,L⁆ N) := ⟨_, to_fun⟩
402
398
@[simp, norm_cast] lemma coe_to_linear_equiv (e : M ≃ₗ⁅R,L⁆ N) : ((e : M ≃ₗ[R] N) : M → N) = e :=
403
399
rfl
404
400
405
- instance : has_one (M ≃ₗ⁅R,L⁆ M) := ⟨{ map_lie := λ x m, rfl, ..(1 : M ≃ₗ[R] M) }⟩
401
+ instance : has_one (M ≃ₗ⁅R,L⁆ M) := ⟨{ map_lie' := λ x m, rfl, ..(1 : M ≃ₗ[R] M) }⟩
406
402
407
403
@[simp] lemma one_apply (m : M) : (1 : (M ≃ₗ⁅R,L⁆ M)) m = m := rfl
408
404
0 commit comments