@@ -80,9 +80,10 @@ algebra on this module, such that the Lie bracket acts as the commutator of endo
80
80
81
81
section basic_properties
82
82
83
- variables {R : Type u} {L : Type v} {M : Type w}
84
- variables [comm_ring R] [lie_ring L] [lie_algebra R L] [add_comm_group M] [module R M]
85
- variables [lie_ring_module L M] [lie_module R L M]
83
+ variables {R : Type u} {L : Type v} {M : Type w} {N : Type w₁}
84
+ variables [comm_ring R] [lie_ring L] [lie_algebra R L]
85
+ variables [add_comm_group M] [module R M] [lie_ring_module L M] [lie_module R L M]
86
+ variables [add_comm_group N] [module R N] [lie_ring_module L N] [lie_module R L N]
86
87
variables (t : R) (x y z : L) (m n : M)
87
88
88
89
@[simp] lemma add_lie : ⁅x + y, m⁆ = ⁅x, m⁆ + ⁅y, m⁆ := lie_ring_module.add_lie x y m
@@ -119,6 +120,18 @@ by { rw [←sub_eq_zero, sub_neg_eq_add, ←add_lie], simp, }
119
120
@[simp] lemma lie_neg : ⁅x, -m⁆ = -⁅x, m⁆ :=
120
121
by { rw [←sub_eq_zero, sub_neg_eq_add, ←lie_add], simp, }
121
122
123
+ @[simp] lemma sub_lie : ⁅x - y, m⁆ = ⁅x, m⁆ - ⁅y, m⁆ :=
124
+ by simp [sub_eq_add_neg]
125
+
126
+ @[simp] lemma lie_sub : ⁅x, m - n⁆ = ⁅x, m⁆ - ⁅x, n⁆ :=
127
+ by simp [sub_eq_add_neg]
128
+
129
+ @[simp] lemma nsmul_lie (n : ℕ) : ⁅n • x, m⁆ = n • ⁅x, m⁆ :=
130
+ add_monoid_hom.map_nsmul ⟨λ (x : L), ⁅x, m⁆, zero_lie m, λ _ _, add_lie _ _ _⟩ _ _
131
+
132
+ @[simp] lemma lie_nsmul (n : ℕ) : ⁅x, n • m⁆ = n • ⁅x, m⁆ :=
133
+ add_monoid_hom.map_nsmul ⟨λ (m : M), ⁅x, m⁆, lie_zero x, λ _ _, lie_add _ _ _⟩ _ _
134
+
122
135
@[simp] lemma gsmul_lie (a : ℤ) : ⁅a • x, m⁆ = a • ⁅x, m⁆ :=
123
136
add_monoid_hom.map_gsmul ⟨λ (x : L), ⁅x, m⁆, zero_lie m, λ _ _, add_lie _ _ _⟩ _ _
124
137
@@ -131,6 +144,30 @@ by rw [leibniz_lie, add_sub_cancel]
131
144
lemma lie_jacobi : ⁅x, ⁅y, z⁆⁆ + ⁅y, ⁅z, x⁆⁆ + ⁅z, ⁅x, y⁆⁆ = 0 :=
132
145
by { rw [← neg_neg ⁅x, y⁆, lie_neg z, lie_skew y x, ← lie_skew, lie_lie], abel, }
133
146
147
+ instance : lie_ring_module L (M →ₗ[R] N) :=
148
+ { bracket := λ x f,
149
+ { to_fun := λ m, ⁅x, f m⁆ - f ⁅x, m⁆,
150
+ map_add' := λ m n, by { simp only [lie_add, linear_map.map_add], abel, },
151
+ map_smul' := λ t m, by simp only [smul_sub, linear_map.map_smul, lie_smul], },
152
+ add_lie := λ x y f, by
153
+ { ext n, simp only [add_lie, linear_map.coe_mk, linear_map.add_apply, linear_map.map_add],
154
+ abel, },
155
+ lie_add := λ x f g, by
156
+ { ext n, simp only [linear_map.coe_mk, lie_add, linear_map.add_apply], abel, },
157
+ leibniz_lie := λ x y f, by
158
+ { ext n,
159
+ simp only [lie_lie, linear_map.coe_mk, linear_map.map_sub, linear_map.add_apply, lie_sub],
160
+ abel, }, }
161
+
162
+ @[simp] lemma bracket_apply (f : M →ₗ[R] N) (x : L) (m : M) : ⁅x, f⁆ m = ⁅x, f m⁆ - f ⁅x, m⁆ := rfl
163
+
164
+ instance : lie_module R L (M →ₗ[R] N) :=
165
+ { smul_lie := λ t x f, by
166
+ { ext n,
167
+ simp only [smul_sub, smul_lie, linear_map.smul_apply, bracket_apply, linear_map.map_smul], },
168
+ lie_smul := λ t x f, by
169
+ { ext n, simp only [smul_sub, linear_map.smul_apply, bracket_apply, lie_smul], }, }
170
+
134
171
end basic_properties
135
172
136
173
set_option old_structure_cmd true
@@ -157,9 +194,6 @@ instance : has_coe_to_fun (L₁ →ₗ⁅R⁆ L₂) := ⟨_, lie_hom.to_fun⟩
157
194
158
195
initialize_simps_projections lie_hom (to_fun → apply)
159
196
160
- @[simp] lemma coe_mk (f : L₁ → L₂) (h₁ h₂ h₃) :
161
- ((⟨f, h₁, h₂, h₃⟩ : L₁ →ₗ⁅R⁆ L₂) : L₁ → L₂) = f := rfl
162
-
163
197
@[simp, norm_cast] lemma coe_to_linear_map (f : L₁ →ₗ⁅R⁆ L₂) : ((f : L₁ →ₗ[R] L₂) : L₁ → L₂) = f :=
164
198
rfl
165
199
@@ -169,13 +203,23 @@ linear_map.map_smul (f : L₁ →ₗ[R] L₂) c x
169
203
@[simp] lemma map_add (f : L₁ →ₗ⁅R⁆ L₂) (x y : L₁) : f (x + y) = (f x) + (f y) :=
170
204
linear_map.map_add (f : L₁ →ₗ[R] L₂) x y
171
205
206
+ @[simp] lemma map_sub (f : L₁ →ₗ⁅R⁆ L₂) (x y : L₁) : f (x - y) = (f x) - (f y) :=
207
+ linear_map.map_sub (f : L₁ →ₗ[R] L₂) x y
208
+
209
+ @[simp] lemma map_neg (f : L₁ →ₗ⁅R⁆ L₂) (x : L₁) : f (-x) = -(f x) :=
210
+ linear_map.map_neg (f : L₁ →ₗ[R] L₂) x
211
+
172
212
@[simp] lemma map_lie (f : L₁ →ₗ⁅R⁆ L₂) (x y : L₁) : f ⁅x, y⁆ = ⁅f x, f y⁆ := lie_hom.map_lie' f
173
213
174
214
@[simp] lemma map_zero (f : L₁ →ₗ⁅R⁆ L₂) : f 0 = 0 := (f : L₁ →ₗ[R] L₂).map_zero
175
215
176
216
/-- The constant 0 map is a Lie algebra morphism. -/
177
217
instance : has_zero (L₁ →ₗ⁅R⁆ L₂) := ⟨{ map_lie' := by simp, ..(0 : L₁ →ₗ[R] L₂)}⟩
178
218
219
+ @[norm_cast, simp] lemma coe_zero : ((0 : L₁ →ₗ⁅R⁆ L₂) : L₁ → L₂) = 0 := rfl
220
+
221
+ lemma zero_apply (x : L₁) : (0 : L₁ →ₗ⁅R⁆ L₂) x = 0 := rfl
222
+
179
223
/-- The identity map is a Lie algebra morphism. -/
180
224
instance : has_one (L₁ →ₗ⁅R⁆ L₁) := ⟨{ map_lie' := by simp, ..(1 : L₁ →ₗ[R] L₁)}⟩
181
225
@@ -190,6 +234,17 @@ coe_injective $ funext h
190
234
lemma ext_iff {f g : L₁ →ₗ⁅R⁆ L₂} : f = g ↔ ∀ x, f x = g x :=
191
235
⟨by { rintro rfl x, refl }, ext⟩
192
236
237
+ @[simp] lemma mk_coe (f : L₁ →ₗ⁅R⁆ L₂) (h₁ h₂ h₃) :
238
+ (⟨f, h₁, h₂, h₃⟩ : L₁ →ₗ⁅R⁆ L₂) = f :=
239
+ by { ext, refl, }
240
+
241
+ @[simp] lemma coe_mk (f : L₁ → L₂) (h₁ h₂ h₃) :
242
+ ((⟨f, h₁, h₂, h₃⟩ : L₁ →ₗ⁅R⁆ L₂) : L₁ → L₂) = f := rfl
243
+
244
+ @[norm_cast, simp] lemma coe_linear_mk (f : L₁ →ₗ[R] L₂) (h₁ h₂ h₃) :
245
+ ((⟨f, h₁, h₂, h₃⟩ : L₁ →ₗ⁅R⁆ L₂) : L₁ →ₗ[R] L₂) = ⟨f, h₁, h₂⟩ :=
246
+ by { ext, refl, }
247
+
193
248
/-- The composition of morphisms is a morphism. -/
194
249
def comp (f : L₂ →ₗ⁅R⁆ L₃) (g : L₁ →ₗ⁅R⁆ L₂) : L₁ →ₗ⁅R⁆ L₃ :=
195
250
{ map_lie' := λ x y, by { change f (g ⁅x, y⁆) = ⁅f (g x), f (g y)⁆, rw [map_lie, map_lie], },
@@ -325,18 +380,34 @@ instance : has_coe (M →ₗ⁅R,L⁆ N) (M →ₗ[R] N) := ⟨lie_module_hom.to
325
380
/-- see Note [function coercion] -/
326
381
instance : has_coe_to_fun (M →ₗ⁅R,L⁆ N) := ⟨_, lie_module_hom.to_fun⟩
327
382
328
- @[simp] lemma coe_mk (f : M → N) (h₁ h₂ h₃) :
329
- ((⟨f, h₁, h₂, h₃⟩ : M →ₗ⁅R,L⁆ N) : M → N) = f := rfl
330
-
331
383
@[simp, norm_cast] lemma coe_to_linear_map (f : M →ₗ⁅R,L⁆ N) : ((f : M →ₗ[R] N) : M → N) = f :=
332
384
rfl
333
385
386
+ @[simp] lemma map_smul (f : M →ₗ⁅R,L⁆ N) (c : R) (x : M) : f (c • x) = c • f x :=
387
+ linear_map.map_smul (f : M →ₗ[R] N) c x
388
+
389
+ @[simp] lemma map_add (f : M →ₗ⁅R,L⁆ N) (x y : M) : f (x + y) = (f x) + (f y) :=
390
+ linear_map.map_add (f : M →ₗ[R] N) x y
391
+
392
+ @[simp] lemma map_sub (f : M →ₗ⁅R,L⁆ N) (x y : M) : f (x - y) = (f x) - (f y) :=
393
+ linear_map.map_sub (f : M →ₗ[R] N) x y
394
+
395
+ @[simp] lemma map_neg (f : M →ₗ⁅R,L⁆ N) (x : M) : f (-x) = -(f x) :=
396
+ linear_map.map_neg (f : M →ₗ[R] N) x
397
+
334
398
@[simp] lemma map_lie (f : M →ₗ⁅R,L⁆ N) (x : L) (m : M) : f ⁅x, m⁆ = ⁅x, f m⁆ :=
335
399
lie_module_hom.map_lie' f
336
400
401
+ @[simp] lemma map_zero (f : M →ₗ⁅R,L⁆ N) : f 0 = 0 :=
402
+ linear_map.map_zero (f : M →ₗ[R] N)
403
+
337
404
/-- The constant 0 map is a Lie module morphism. -/
338
405
instance : has_zero (M →ₗ⁅R,L⁆ N) := ⟨{ map_lie' := by simp, ..(0 : M →ₗ[R] N) }⟩
339
406
407
+ @[norm_cast, simp] lemma coe_zero : ((0 : M →ₗ⁅R,L⁆ N) : M → N) = 0 := rfl
408
+
409
+ lemma zero_apply (m : M) : (0 : M →ₗ⁅R,L⁆ N) m = 0 := rfl
410
+
340
411
/-- The identity map is a Lie module morphism. -/
341
412
instance : has_one (M →ₗ⁅R,L⁆ M) := ⟨{ map_lie' := by simp, ..(1 : M →ₗ[R] M) }⟩
342
413
@@ -351,6 +422,17 @@ coe_injective $ funext h
351
422
lemma ext_iff {f g : M →ₗ⁅R,L⁆ N} : f = g ↔ ∀ m, f m = g m :=
352
423
⟨by { rintro rfl m, refl, }, ext⟩
353
424
425
+ @[simp] lemma mk_coe (f : M →ₗ⁅R,L⁆ N) (h₁ h₂ h₃) :
426
+ (⟨f, h₁, h₂, h₃⟩ : M →ₗ⁅R,L⁆ N) = f :=
427
+ by { ext, refl, }
428
+
429
+ @[simp] lemma coe_mk (f : M → N) (h₁ h₂ h₃) :
430
+ ((⟨f, h₁, h₂, h₃⟩ : M →ₗ⁅R,L⁆ N) : M → N) = f := rfl
431
+
432
+ @[norm_cast, simp] lemma coe_linear_mk (f : M →ₗ[R] N) (h₁ h₂ h₃) :
433
+ ((⟨f, h₁, h₂, h₃⟩ : M →ₗ⁅R,L⁆ N) : M →ₗ[R] N) = ⟨f, h₁, h₂⟩ :=
434
+ by { ext, refl, }
435
+
354
436
/-- The composition of Lie module morphisms is a morphism. -/
355
437
def comp (f : N →ₗ⁅R,L⁆ P) (g : M →ₗ⁅R,L⁆ N) : M →ₗ⁅R,L⁆ P :=
356
438
{ map_lie' := λ x m, by { change f (g ⁅x, m⁆) = ⁅x, f (g m)⁆, rw [map_lie, map_lie], },
@@ -371,6 +453,48 @@ def inverse (f : M →ₗ⁅R,L⁆ N) (g : N → M)
371
453
... = ⁅x, g n⁆ : (h₁ _),
372
454
..linear_map.inverse f.to_linear_map g h₁ h₂ }
373
455
456
+ instance : has_add (M →ₗ⁅R,L⁆ N) :=
457
+ { add := λ f g, { map_lie' := by simp, ..((f : M →ₗ[R] N) + (g : M →ₗ[R] N)) }, }
458
+
459
+ instance : has_sub (M →ₗ⁅R,L⁆ N) :=
460
+ { sub := λ f g, { map_lie' := by simp, ..((f : M →ₗ[R] N) - (g : M →ₗ[R] N)) }, }
461
+
462
+ instance : has_neg (M →ₗ⁅R,L⁆ N) :=
463
+ { neg := λ f, { map_lie' := by simp, ..(-(f : (M →ₗ[R] N))) }, }
464
+
465
+ @[norm_cast, simp] lemma coe_add (f g : M →ₗ⁅R,L⁆ N) : ⇑(f + g) = f + g := rfl
466
+
467
+ lemma add_apply (f g : M →ₗ⁅R,L⁆ N) (m : M) : (f + g) m = f m + g m := rfl
468
+
469
+ @[norm_cast, simp] lemma coe_sub (f g : M →ₗ⁅R,L⁆ N) : ⇑(f - g) = f - g := rfl
470
+
471
+ lemma sub_apply (f g : M →ₗ⁅R,L⁆ N) (m : M) : (f - g) m = f m - g m := rfl
472
+
473
+ @[norm_cast, simp] lemma coe_neg (f : M →ₗ⁅R,L⁆ N) : ⇑(-f) = -f := rfl
474
+
475
+ lemma neg_apply (f : M →ₗ⁅R,L⁆ N) (m : M) : (-f) m = -(f m) := rfl
476
+
477
+ instance : add_comm_group (M →ₗ⁅R,L⁆ N) :=
478
+ { zero := 0 ,
479
+ add := (+),
480
+ neg := has_neg.neg,
481
+ sub := has_sub.sub,
482
+ nsmul := λ n f, { map_lie' := λ x m, by simp, ..(n • (f : M →ₗ[R] N)) },
483
+ nsmul_zero' := λ f, by { ext, simp, },
484
+ nsmul_succ' := λ n f, by { ext, simp [nat.succ_eq_one_add, add_nsmul], },
485
+ ..(coe_injective.add_comm_group _ coe_zero coe_add coe_neg coe_sub :
486
+ add_comm_group (M →ₗ⁅R,L⁆ N)) }
487
+
488
+ instance : has_scalar R (M →ₗ⁅R,L⁆ N) :=
489
+ { smul := λ t f, { map_lie' := by simp, ..(t • (f : M →ₗ[R] N)) }, }
490
+
491
+ @[norm_cast, simp] lemma coe_smul (t : R) (f : M →ₗ⁅R,L⁆ N) : ⇑(t • f) = t • f := rfl
492
+
493
+ lemma smul_apply (t : R) (f : M →ₗ⁅R,L⁆ N) (m : M) : (t • f) m = t • (f m) := rfl
494
+
495
+ instance : module R (M →ₗ⁅R,L⁆ N) :=
496
+ function.injective.semimodule R ⟨to_fun, rfl, coe_add⟩ coe_injective coe_smul
497
+
374
498
end lie_module_hom
375
499
376
500
/-- An equivalence of Lie algebra modules is a linear equivalence which is also a morphism of
0 commit comments