Lie algebras #
This file defines Lie rings and Lie algebras over a commutative ring together with their modules, morphisms and equivalences, as well as various lemmas to make these definitions usable.
Main definitions #
Notation #
Working over a fixed commutative ring R
, we introduce the notations:
L →ₗ⁅R⁆ L'
for a morphism of Lie algebras,L ≃ₗ⁅R⁆ L'
for an equivalence of Lie algebras,M →ₗ⁅R,L⁆ N
for a morphism of Lie algebra modulesM
,N
over a Lie algebraL
,M ≃ₗ⁅R,L⁆ N
for an equivalence of Lie algebra modulesM
,N
over a Lie algebraL
.
Implementation notes #
Lie algebras are defined as modules with a compatible Lie ring structure and thus, like modules, are partially unbundled.
References #
Tags #
lie bracket, jacobi identity, lie ring, lie algebra, lie module
A Lie ring is an additive group with compatible product, known as the bracket, satisfying the Jacobi identity.
- add : L → L → L
- zero : L
- neg : L → L
- sub : L → L → L
- bracket : L → L → L
A Lie ring bracket is additive in its first component.
A Lie ring bracket is additive in its second component.
A Lie ring bracket vanishes on the diagonal in L × L.
A Lie ring bracket satisfies a Leibniz / Jacobi identity.
Instances
A Lie algebra is a module with compatible product, known as the bracket, satisfying the Jacobi identity. Forgetting the scalar multiplication, every Lie algebra is a Lie ring.
- smul : R → L → L
A Lie algebra bracket is compatible with scalar multiplication in its second argument.
The compatibility in the first argument is not a class property, but follows since every Lie algebra has a natural Lie module action on itself, see
LieModule
.
Instances
A Lie ring module is an additive group, together with an additive action of a
Lie ring on this group, such that the Lie bracket acts as the commutator of endomorphisms.
(For representations of Lie algebras see LieModule
.)
- bracket : L → M → M
A Lie ring module bracket is additive in its first component.
A Lie ring module bracket is additive in its second component.
A Lie ring module bracket satisfies a Leibniz / Jacobi identity.
Instances
A Lie module is a module over a commutative ring, together with a linear action of a Lie algebra on this module, such that the Lie bracket acts as the commutator of endomorphisms.
A Lie module bracket is compatible with scalar multiplication in its first argument.
A Lie module bracket is compatible with scalar multiplication in its second argument.
Instances
A tower of Lie bracket actions encapsulates the Leibniz rule for Lie bracket actions.
More precisely, it does so in a relative setting:
Let L₁
and L₂
be two types with Lie bracket actions on a type M
endowed with an addition,
and additionally assume a Lie bracket action of L₁
on L₂
.
Then the Leibniz rule asserts for all x : L₁
, y : L₂
, and m : M
that
⁅x, ⁅y, m⁆⁆ = ⁅⁅x, y⁆, m⁆ + ⁅y, ⁅x, m⁆⁆
holds.
Common examples include the case where L₁
is a Lie subalgebra of L₂
and the case where L₂
is a Lie ideal of L₁
.
Instances
Equations
Every Lie algebra is a module over itself.
Equations
Equations
We could avoid defining this by instead defining a LieRingModule L R
instance with a zero
bracket and relying on LinearMap.instLieRingModule
. We do not do this because in the case that
L = R
we would have a non-defeq diamond via Ring.instBracket
.
Equations
A morphism of Lie algebras is a linear map respecting the bracket operations.
- toFun : L → L'
A morphism of Lie algebras is compatible with brackets.
Instances For
A morphism of Lie algebras is a linear map respecting the bracket operations.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- LieHom.instCoeLinearMapId = { coe := LieHom.toLinearMap }
Equations
- LieHom.instFunLike = { coe := fun (f : L₁ →ₗ⁅R⁆ L₂) => (↑f).toFun, coe_injective' := ⋯ }
The constant 0 map is a Lie algebra morphism.
Equations
- LieHom.instZero = { zero := let __src := 0; { toLinearMap := __src, map_lie' := ⋯ } }
The identity map is a Lie algebra morphism.
Equations
- LieHom.instOne = { one := LieHom.id }
Equations
- LieHom.instInhabited = { default := 0 }
The composition of morphisms is a morphism.
Equations
- f.comp g = { toLinearMap := ↑f ∘ₗ ↑g, map_lie' := ⋯ }
Instances For
Alias of LieHom.toLinearMap_comp
.
The inverse of a bijective morphism is a morphism.
Equations
- f.inverse g h₁ h₂ = { toLinearMap := (↑f).inverse g h₁ h₂, map_lie' := ⋯ }
Instances For
A Lie ring module may be pulled back along a morphism of Lie algebras.
See note [reducible non-instances].
Equations
- LieRingModule.compLieHom M f = LieRingModule.mk ⋯ ⋯ ⋯
Instances For
A Lie module may be pulled back along a morphism of Lie algebras.
An equivalence of Lie algebras is a morphism which is also a linear equivalence. We could
instead define an equivalence to be a morphism which is also a (plain) equivalence. However it is
more convenient to define via linear equivalence to get .toLinearEquiv
for free.
- toFun : L → L'
- map_smul' (m : R) (x : L) : (↑self.toLieHom).toFun (m • x) = (RingHom.id R) m • (↑self.toLieHom).toFun x
- invFun : L' → L
The inverse function of an equivalence of Lie algebras
- left_inv : Function.LeftInverse self.invFun (↑self.toLieHom).toFun
The inverse function of an equivalence of Lie algebras is a left inverse of the underlying function.
- right_inv : Function.RightInverse self.invFun (↑self.toLieHom).toFun
The inverse function of an equivalence of Lie algebras is a right inverse of the underlying function.
Instances For
An equivalence of Lie algebras is a morphism which is also a linear equivalence. We could
instead define an equivalence to be a morphism which is also a (plain) equivalence. However it is
more convenient to define via linear equivalence to get .toLinearEquiv
for free.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Consider an equivalence of Lie algebras as a linear equivalence.
Equations
- f.toLinearEquiv = { toLinearMap := ↑f.toLieHom, invFun := f.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
Equations
- LieEquiv.hasCoeToLieHom = { coe := LieEquiv.toLieHom }
Equations
- LieEquiv.hasCoeToLinearEquiv = { coe := LieEquiv.toLinearEquiv }
Alias of LieEquiv.coe_toLieHom
.
Alias of LieEquiv.coe_toLinearEquiv
.
Alias of LieEquiv.toLinearEquiv_mk
.
Alias of LieEquiv.toLinearEquiv_injective
.
Equations
- LieEquiv.instOne = { one := let __src := 1; { toLinearMap := ↑__src, map_lie' := ⋯, invFun := __src.invFun, left_inv := ⋯, right_inv := ⋯ } }
Equations
- LieEquiv.instInhabited = { default := 1 }
Lie algebra equivalences are reflexive.
Equations
Instances For
Lie algebra equivalences are symmetric.
Equations
- e.symm = { toLieHom := e.inverse e.invFun ⋯ ⋯, invFun := e.toLinearEquiv.symm.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
Lie algebra equivalences are transitive.
Equations
- e₁.trans e₂ = { toLieHom := e₂.comp e₁.toLieHom, invFun := (e₁.toLinearEquiv.trans e₂.toLinearEquiv).invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
A bijective morphism of Lie algebras yields an equivalence of Lie algebras.
Equations
- LieEquiv.ofBijective f h = { toFun := ⇑f, map_add' := ⋯, map_smul' := ⋯, map_lie' := ⋯, invFun := (LinearEquiv.ofBijective (↑f) h).invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
A morphism of Lie algebra modules is a linear map which commutes with the action of the Lie algebra.
- toFun : M → N
A module of Lie algebra modules is compatible with the action of the Lie algebra on the modules.
Instances For
A morphism of Lie algebra modules is a linear map which commutes with the action of the Lie algebra.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
- LieModuleHom.instFunLike = { coe := fun (f : M →ₗ⁅R,L⁆ N) => (↑f).toFun, coe_injective' := ⋯ }
The identity map is a morphism of Lie modules.
Equations
- LieModuleHom.id = { toLinearMap := LinearMap.id, map_lie' := ⋯ }
Instances For
The constant 0 map is a Lie module morphism.
Equations
- LieModuleHom.instZero = { zero := let __src := 0; { toLinearMap := __src, map_lie' := ⋯ } }
The identity map is a Lie module morphism.
Equations
- LieModuleHom.instOne = { one := LieModuleHom.id }
Equations
- LieModuleHom.instInhabited = { default := 0 }
The composition of Lie module morphisms is a morphism.
Equations
- f.comp g = { toLinearMap := ↑f ∘ₗ ↑g, map_lie' := ⋯ }
Instances For
Alias of LieModuleHom.toLinearMap_comp
.
The inverse of a bijective morphism of Lie modules is a morphism of Lie modules.
Equations
- f.inverse g h₁ h₂ = { toLinearMap := (↑f).inverse g h₁ h₂, map_lie' := ⋯ }
Instances For
Equations
Equations
- LieModuleHom.instModule = Function.Injective.module R { toFun := fun (f : M →ₗ⁅R,L⁆ N) => (↑f).toFun, map_zero' := ⋯, map_add' := ⋯ } ⋯ ⋯
An equivalence of Lie algebra modules is a linear equivalence which is also a morphism of Lie algebra modules.
- toFun : M → N
- map_smul' (m : R) (x : M) : (↑self.toLieModuleHom).toFun (m • x) = (RingHom.id R) m • (↑self.toLieModuleHom).toFun x
- invFun : N → M
The inverse function of an equivalence of Lie modules
- left_inv : Function.LeftInverse self.invFun (↑self.toLieModuleHom).toFun
The inverse function of an equivalence of Lie modules is a left inverse of the underlying function.
- right_inv : Function.RightInverse self.invFun (↑self.toLieModuleHom).toFun
The inverse function of an equivalence of Lie modules is a right inverse of the underlying function.
Instances For
An equivalence of Lie algebra modules is a linear equivalence which is also a morphism of Lie algebra modules.
Equations
- One or more equations did not get rendered due to their size.
Instances For
View an equivalence of Lie modules as a linear equivalence.
Equations
- e.toLinearEquiv = { toLinearMap := ↑e.toLieModuleHom, invFun := e.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
View an equivalence of Lie modules as a type level equivalence.
Equations
- e.toEquiv = { toFun := (↑e.toLieModuleHom).toFun, invFun := e.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
Equations
- LieModuleEquiv.hasCoeToEquiv = { coe := LieModuleEquiv.toEquiv }
Equations
Equations
Alias of LieModuleEquiv.coe_toLieModuleHom
.
Alias of LieModuleEquiv.coe_toLinearEquiv
.
Equations
- LieModuleEquiv.instOne = { one := let __src := 1; { toLinearMap := ↑__src, map_lie' := ⋯, invFun := __src.invFun, left_inv := ⋯, right_inv := ⋯ } }
Equations
- LieModuleEquiv.instInhabited = { default := 1 }
Lie module equivalences are reflexive.
Equations
Instances For
Lie module equivalences are symmetric.
Equations
- e.symm = { toLieModuleHom := e.inverse e.invFun ⋯ ⋯, invFun := e.toLinearEquiv.symm.invFun, left_inv := ⋯, right_inv := ⋯ }
Instances For
Lie module equivalences are transitive.
Equations
- e₁.trans e₂ = { toLieModuleHom := e₂.comp e₁.toLieModuleHom, invFun := (e₁.toLinearEquiv.trans e₂.toLinearEquiv).invFun, left_inv := ⋯, right_inv := ⋯ }