Products of Lie algebras #
This file defines the Lie algebra structure the Product of two Lie algebras
Main definitions #
- products in the domain:
LieHom.fstThe first projection of a product is a Lie algebra map.LieHom.sndThe second projection of a product is a Lie algebra map.LieHom.prod_extSplit equality of Lie algebra homomorphisms from a product into Lie algebra homomorphism over each component,
- products in the codomain:
LieHom.inlThe left injection into a product is a Lie algebra map.LieHom.inrThe right injection into a product is a Lie algebra map.LieHom.prodThe prod of two Lie algebra homomorphisms is a Lie algebra homomorphism.
- products in both domain and codomain:
LieHom.prodMaptheProd.mapof two Lie algebra homomorphisms is a Lie algebra homomorphism.
TODO #
Extend to further functionality from LinearMap.prod, e.g.
- Lie Equivalences related to products
- Lie Submodule statements
@[instance_reducible]
instance LieAlgebra.Prod.instLieAlgebra {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
LieAlgebra R (L₁ × L₂)
Equations
- LieAlgebra.Prod.instLieAlgebra = { toModule := Prod.instModule, lie_smul := ⋯ }
def LieHom.fst (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
The first projection of a product is a Lie algebra map.
Equations
- LieHom.fst R L₁ L₂ = { toLinearMap := LinearMap.fst R L₁ L₂, map_lie' := ⋯ }
Instances For
def LieHom.snd (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
The second projection of a product is a Lie algebra map.
Equations
- LieHom.snd R L₁ L₂ = { toLinearMap := LinearMap.snd R L₁ L₂, map_lie' := ⋯ }
Instances For
def LieHom.inl (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
The left injection into a product is a Lie algebra map.
Equations
- LieHom.inl R L₁ L₂ = { toLinearMap := LinearMap.inl R L₁ L₂, map_lie' := ⋯ }
Instances For
def LieHom.inr (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
The right injection into a product is a Lie algebra map.
Equations
- LieHom.inr R L₁ L₂ = { toLinearMap := LinearMap.inr R L₁ L₂, map_lie' := ⋯ }
Instances For
@[simp]
theorem LieHom.fst_apply {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] (x : L₁ × L₂) :
@[simp]
theorem LieHom.snd_apply {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] (x : L₁ × L₂) :
@[simp]
theorem LieHom.coe_fst {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
@[simp]
theorem LieHom.coe_snd {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
theorem LieHom.fst_surjective {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
Function.Surjective ⇑(fst R L₁ L₂)
theorem LieHom.snd_surjective {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
Function.Surjective ⇑(snd R L₁ L₂)
def LieHom.prod {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} {L : Type u_4} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] [LieRing L] [LieAlgebra R L] (f : L →ₗ⁅R⁆ L₁) (g : L →ₗ⁅R⁆ L₂) :
The prod of two Lie algebra homomorphisms is a Lie algebra homomorphism.
Instances For
theorem LieHom.coe_prod {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} {L : Type u_4} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] [LieRing L] [LieAlgebra R L] (f : L →ₗ⁅R⁆ L₁) (g : L →ₗ⁅R⁆ L₂) :
@[simp]
theorem LieHom.pair_fst_snd {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
theorem LieHom.inl_apply {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] (x : L₁) :
theorem LieHom.inr_apply {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] (x : L₂) :
@[simp]
theorem LieHom.coe_inl {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
@[simp]
theorem LieHom.coe_inr {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
theorem LieHom.inl_injective {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
Function.Injective ⇑(inl R L₁ L₂)
theorem LieHom.inr_injective {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
Function.Injective ⇑(inr R L₁ L₂)
@[simp]
theorem LieHom.fst_comp_inl (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
@[simp]
theorem LieHom.snd_comp_inl (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
@[simp]
theorem LieHom.fst_comp_inr (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
@[simp]
theorem LieHom.snd_comp_inr (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
theorem LieHom.inl_eq_prod (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
theorem LieHom.inr_eq_prod (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
theorem LieHom.prod_ext_iff (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) {L : Type u_4} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] [LieRing L] [LieAlgebra R L] {f g : L₁ × L₂ →ₗ⁅R⁆ L} :
theorem LieHom.prod_ext (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) {L : Type u_4} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] [LieRing L] [LieAlgebra R L] {f g : L₁ × L₂ →ₗ⁅R⁆ L} (hl : f.comp (inl R L₁ L₂) = g.comp (inl R L₁ L₂)) (hr : f.comp (inr R L₁ L₂) = g.comp (inr R L₁ L₂)) :
Split equality of Lie algebra homomorphisms from a product into Lie algebra homomorphism over
each component, to allow ext to apply lemmas specific to L₁ →ₗ L and L₂ →ₗ L.
See note [partially-applied ext lemmas].
def LieHom.prodMap {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} {L₃ : Type u_5} {L₄ : Type u_6} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] [LieRing L₃] [LieAlgebra R L₃] [LieRing L₄] [LieAlgebra R L₄] (f : L₁ →ₗ⁅R⁆ L₃) (g : L₂ →ₗ⁅R⁆ L₄) :
Prod.map of two Lie algebra homomorphisms.
Equations
- f.prodMap g = (f.comp (LieHom.fst R L₁ L₂)).prod (g.comp (LieHom.snd R L₁ L₂))
Instances For
theorem LieHom.coe_prodMap {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} {L₃ : Type u_5} {L₄ : Type u_6} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] [LieRing L₃] [LieAlgebra R L₃] [LieRing L₄] [LieAlgebra R L₄] (f : L₁ →ₗ⁅R⁆ L₃) (g : L₂ →ₗ⁅R⁆ L₄) :
@[simp]
theorem LieHom.prodMap_apply {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} {L₃ : Type u_5} {L₄ : Type u_6} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] [LieRing L₃] [LieAlgebra R L₃] [LieRing L₄] [LieAlgebra R L₄] (f : L₁ →ₗ⁅R⁆ L₃) (g : L₂ →ₗ⁅R⁆ L₄) (x : L₁ × L₂) :
@[simp]
theorem LieHom.prodMap_id {R : Type u_1} {L₁ : Type u_2} {L : Type u_4} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L] [LieAlgebra R L] :
@[simp]
theorem LieHom.prodMap_one {R : Type u_1} {L₁ : Type u_2} {L : Type u_4} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L] [LieAlgebra R L] :
theorem LieHom.prodMap_comp {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} {L₃ : Type u_5} {L₄ : Type u_6} {L₅ : Type u_7} {L₆ : Type u_8} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] [LieRing L₃] [LieAlgebra R L₃] [LieRing L₄] [LieAlgebra R L₄] [LieRing L₅] [LieAlgebra R L₅] [LieRing L₆] [LieAlgebra R L₆] (f₁₂ : L₁ →ₗ⁅R⁆ L₂) (f₂₃ : L₂ →ₗ⁅R⁆ L₃) (g₁₂ : L₄ →ₗ⁅R⁆ L₅) (g₂₃ : L₅ →ₗ⁅R⁆ L₆) :
@[simp]
theorem LieHom.prodMap_zero {R : Type u_1} {L₁ : Type u_2} {L₂ : Type u_3} {L₃ : Type u_5} {L₄ : Type u_6} [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] [LieRing L₃] [LieAlgebra R L₃] [LieRing L₄] [LieAlgebra R L₄] :
def LieEquiv.prodComm (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] :
The map (x, y) ↦ (y, x) as a Lie equivalence.
Equations
- LieEquiv.prodComm R L₁ L₂ = { toLinearMap := ↑(LinearEquiv.prodComm R L₁ L₂), map_lie' := ⋯, invFun := (LinearEquiv.prodComm R L₁ L₂).invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
@[simp]
theorem LieEquiv.prodComm_invFun (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] (a✝ : L₂ × L₁) :
@[simp]
theorem LieEquiv.prodComm_toFun (R : Type u_1) (L₁ : Type u_2) (L₂ : Type u_3) [CommRing R] [LieRing L₁] [LieAlgebra R L₁] [LieRing L₂] [LieAlgebra R L₂] (a✝ : L₁ × L₂) :