Lie derivations #
This file defines Lie derivations and establishes some basic properties.
Main definitions #
LieDerivation
: A Lie derivationD
from the LieR
-algebraL
to theL
-moduleM
is anR
-linear map that satisfies the Leibniz ruleD [a, b] = [a, D b] - [b, D a]
.LieDerivation.inner
: The natural map from a Lie module to the derivations taking values in it.
Main statements #
LieDerivation.eqOn_lieSpan
: two Lie derivations equal on a set are equal on its Lie span.LieDerivation.instLieAlgebra
: the set of Lie derivations from a Lie algebra to itself is a Lie algebra.
Implementation notes #
- Mathematically, a Lie derivation is just a derivation on a Lie algebra. However, the current
implementation of
RingTheory.Derivation
requires a commutative associative algebra, so is incompatible with the setting of Lie algebras. Initially, this file is a copy-pasted adaptation of theRingTheory.Derivation.Basic.lean
file. - Since we don't have right actions of Lie algebras, the second term in the Leibniz rule is written
as
- [b, D a]
. Within Lie algebras, skew symmetry restores the expected definition[D a, b]
.
A Lie derivation D
from the Lie R
-algebra L
to the L
-module M
is an R
-linear map
that satisfies the Leibniz rule D [a, b] = [a, D b] - [b, D a]
.
- toFun : L → M
Instances For
Equations
- LieDerivation.instFunLike = { coe := fun (D : LieDerivation R L M) => (↑D).toFun, coe_injective' := ⋯ }
See Note [custom simps projection]
Equations
Instances For
Equations
- LieDerivation.instCoeToLinearMap = { coe := fun (D : LieDerivation R L M) => ↑D }
Two Lie derivations equal on a set are equal on its Lie span.
If the Lie span of a set is the whole Lie algebra, then two Lie derivations equal on this set are equal on the whole Lie algebra.
The general Leibniz rule for Lie derivatives.
Alternate version of the general Leibniz rule for Lie derivatives.
Equations
- LieDerivation.instZero = { zero := { toLinearMap := 0, leibniz' := ⋯ } }
Equations
- LieDerivation.instInhabited = { default := 0 }
Equations
- LieDerivation.instAdd = { add := fun (D1 D2 : LieDerivation R L M) => { toLinearMap := ↑D1 + ↑D2, leibniz' := ⋯ } }
Equations
- LieDerivation.instNeg = { neg := fun (D : LieDerivation R L M) => { toLinearMap := -↑D, leibniz' := ⋯ } }
Equations
- LieDerivation.instSub = { sub := fun (D1 D2 : LieDerivation R L M) => { toLinearMap := ↑D1 - ↑D2, leibniz' := ⋯ } }
A typeclass mixin saying that scalar multiplication and Lie bracket are left commutative.
•
and⁅⬝, ⬝⁆
are left commutative
Instances
Equations
- LieDerivation.instSMul = { smul := fun (r : S) (D : LieDerivation R L M) => { toLinearMap := r • ↑D, leibniz' := ⋯ } }
Equations
- LieDerivation.instAddCommGroup = Function.Injective.addCommGroup DFunLike.coe ⋯ ⋯ ⋯ ⋯ ⋯ ⋯ ⋯
coe_fn
as an AddMonoidHom
.
Equations
- LieDerivation.coeFnAddMonoidHom = { toFun := DFunLike.coe, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Equations
- LieDerivation.instDistribMulAction = Function.Injective.distribMulAction LieDerivation.coeFnAddMonoidHom ⋯ ⋯
Equations
- LieDerivation.instModule = Function.Injective.module S LieDerivation.coeFnAddMonoidHom ⋯ ⋯
The commutator of two Lie derivations on a Lie algebra is a Lie derivation.
Equations
- LieDerivation.instBracket = { bracket := fun (D1 D2 : LieDerivation R L L) => { toLinearMap := ⁅↑D1, ↑D2⁆, leibniz' := ⋯ } }
Equations
- LieDerivation.instLieRing = LieRing.mk ⋯ ⋯ ⋯ ⋯
The set of Lie derivations from a Lie algebra L
to itself is a Lie algebra.
Equations
- LieDerivation.instLieAlgebra = LieAlgebra.mk ⋯
The Lie algebra morphism from Lie derivations into linear endormophisms.
Equations
- LieDerivation.toLinearMapLieHom R L = { toFun := LieDerivation.toLinearMap, map_add' := ⋯, map_smul' := ⋯, map_lie' := ⋯ }
Instances For
The map from Lie derivations to linear endormophisms is injective.
Lie derivations over a Noetherian Lie algebra form a Noetherian module.
The natural map from a Lie module to the derivations taking values in it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- LieDerivation.instLieRingModule R L M = LieRingModule.mk ⋯ ⋯ ⋯