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
@[implicit_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₂)
theorem
LieHom.range_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₂]
:
theorem
LieHom.ker_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.range_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.ker_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.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₄]
: