Free Lie algebras #
Given a commutative ring R
and a type X
we construct the free Lie algebra on X
with
coefficients in R
together with its universal property.
Main definitions #
FreeLieAlgebra
FreeLieAlgebra.lift
FreeLieAlgebra.of
FreeLieAlgebra.universalEnvelopingEquivFreeAlgebra
Implementation details #
Quotient of free non-unital, non-associative algebra #
We follow N. Bourbaki, Lie Groups and Lie Algebras, Chapters 1--3 and construct
the free Lie algebra as a quotient of the free non-unital, non-associative algebra. Since we do not
currently have definitions of ideals, lattices of ideals, and quotients for
NonUnitalNonAssocSemiring
, we construct our quotient using the low-level Quot
function on
an inductively-defined relation.
Alternative construction (needs PBW) #
An alternative construction of the free Lie algebra on X
is to start with the free unital
associative algebra on X
, regard it as a Lie algebra via the ring commutator, and take its
smallest Lie subalgebra containing X
. I.e.:
LieSubalgebra.lieSpan R (FreeAlgebra R X) (Set.range (FreeAlgebra.ι R))
.
However with this definition there does not seem to be an easy proof that the required universal property holds, and I don't know of a proof that avoids invoking the Poincaré–Birkhoff–Witt theorem. A related MathOverflow question is this one.
Tags #
lie algebra, free algebra, non-unital, non-associative, universal property, forgetful functor, adjoint functor
The quotient of lib R X
by the equivalence relation generated by this relation will give us
the free Lie algebra.
- lie_self {R : Type u} {X : Type v} [CommRing R] (a : FreeNonUnitalNonAssocAlgebra R X) : FreeLieAlgebra.Rel R X (a * a) 0
- leibniz_lie {R : Type u} {X : Type v} [CommRing R] (a b c : FreeNonUnitalNonAssocAlgebra R X) : FreeLieAlgebra.Rel R X (a * (b * c)) (a * b * c + b * (a * c))
- smul {R : Type u} {X : Type v} [CommRing R] (t : R) {a b : FreeNonUnitalNonAssocAlgebra R X} : FreeLieAlgebra.Rel R X a b → FreeLieAlgebra.Rel R X (t • a) (t • b)
- add_right {R : Type u} {X : Type v} [CommRing R] {a b : FreeNonUnitalNonAssocAlgebra R X} (c : FreeNonUnitalNonAssocAlgebra R X) : FreeLieAlgebra.Rel R X a b → FreeLieAlgebra.Rel R X (a + c) (b + c)
- mul_left {R : Type u} {X : Type v} [CommRing R] (a : FreeNonUnitalNonAssocAlgebra R X) {b c : FreeNonUnitalNonAssocAlgebra R X} : FreeLieAlgebra.Rel R X b c → FreeLieAlgebra.Rel R X (a * b) (a * c)
- mul_right {R : Type u} {X : Type v} [CommRing R] {a b : FreeNonUnitalNonAssocAlgebra R X} (c : FreeNonUnitalNonAssocAlgebra R X) : FreeLieAlgebra.Rel R X a b → FreeLieAlgebra.Rel R X (a * c) (b * c)
Instances For
The free Lie algebra on the type X
with coefficients in the commutative ring R
.
Equations
- FreeLieAlgebra R X = Quot (FreeLieAlgebra.Rel R X)
Instances For
Equations
- instInhabitedFreeLieAlgebra R X = ⋯.mpr inferInstance
Equations
- FreeLieAlgebra.instSMulOfIsScalarTower R X = { smul := fun (t : S) => Quot.map (fun (x : FreeNonUnitalNonAssocAlgebra R X) => t • x) ⋯ }
Equations
- FreeLieAlgebra.instZero R X = { zero := Quot.mk (FreeLieAlgebra.Rel R X) 0 }
Equations
- FreeLieAlgebra.instAdd R X = { add := Quot.map₂ (fun (x1 x2 : FreeNonUnitalNonAssocAlgebra R X) => x1 + x2) ⋯ ⋯ }
Equations
- FreeLieAlgebra.instNeg R X = { neg := Quot.map Neg.neg ⋯ }
Equations
- FreeLieAlgebra.instSub R X = { sub := Quot.map₂ Sub.sub ⋯ ⋯ }
Equations
- FreeLieAlgebra.instAddGroup R X = Function.Surjective.addGroup (Quot.mk (FreeLieAlgebra.Rel R X)) ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
Equations
Equations
Equations
- FreeLieAlgebra.instModuleOfIsScalarTower R X = Function.Surjective.module S { toFun := Quot.mk (FreeLieAlgebra.Rel R X), map_zero' := ⋯, map_add' := ⋯ } ⋯ ⋯
Note that here we turn the Mul
coming from the NonUnitalNonAssocSemiring
structure
on lib R X
into a Bracket
on FreeLieAlgebra
.
Equations
- FreeLieAlgebra.instLieRing R X = LieRing.mk ⋯ ⋯ ⋯ ⋯
Equations
The embedding of X
into the free Lie algebra of X
with coefficients in the commutative ring
R
.
Equations
- FreeLieAlgebra.of R x = Quot.mk (FreeLieAlgebra.Rel R X) (FreeNonUnitalNonAssocAlgebra.of R x)
Instances For
An auxiliary definition used to construct the equivalence lift
below.
Equations
Instances For
The quotient map as a NonUnitalAlgHom
.
Equations
- FreeLieAlgebra.mk R = { toFun := Quot.mk (FreeLieAlgebra.Rel R X), map_smul' := ⋯, map_zero' := ⋯, map_add' := ⋯, map_mul' := ⋯ }
Instances For
The functor X ↦ FreeLieAlgebra R X
from the category of types to the category of Lie
algebras over R
is adjoint to the forgetful functor in the other direction.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The universal enveloping algebra of the free Lie algebra is just the free unital associative algebra.
Equations
- One or more equations did not get rendered due to their size.