Lie submodules of a Lie algebra #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
In this file we define Lie submodules and Lie ideals, we construct the lattice structure on Lie submodules and we use it to define various important operations, notably the Lie span of a subset of a Lie module.
Main definitions #
lie_submodule
lie_submodule.well_founded_of_noetherian
lie_submodule.lie_span
lie_submodule.map
lie_submodule.comap
lie_ideal
lie_ideal.map
lie_ideal.comap
Tags #
lie algebra, lie submodule, lie ideal, lattice structure
- carrier : set M
- add_mem' : ∀ {a b : M}, a ∈ self.carrier → b ∈ self.carrier → a + b ∈ self.carrier
- zero_mem' : 0 ∈ self.carrier
- smul_mem' : ∀ (c : R) {x : M}, x ∈ self.carrier → c • x ∈ self.carrier
- lie_mem : ∀ {x : L} {m : M}, m ∈ self.carrier → ⁅x, m⁆ ∈ self.carrier
A Lie submodule of a Lie module is a submodule that is closed under the Lie bracket. This is a sufficient condition for the subset itself to form a Lie module.
Instances for lie_submodule
- lie_submodule.has_sizeof_inst
- lie_submodule.set_like
- lie_submodule.add_subgroup_class
- lie_submodule.has_zero
- lie_submodule.inhabited
- lie_submodule.coe_submodule
- lie_subalgebra.has_coe
- lie_submodule.has_bot
- lie_submodule.has_top
- lie_submodule.has_inf
- lie_submodule.has_Inf
- lie_submodule.complete_lattice
- lie_submodule.add_comm_monoid
- lie_submodule.subsingleton_of_bot
- lie_submodule.is_modular_lattice
- lie_submodule.nontrivial
- lie_ideal.subsingleton_of_bot
- lie_submodule.has_bracket
- lie_submodule.has_quotient
Equations
- lie_submodule.set_like = {coe := lie_submodule.carrier _inst_7, coe_injective' := _}
The zero module is a Lie submodule of any Lie module.
Equations
- lie_submodule.inhabited = {default := 0}
Equations
- lie_submodule.coe_submodule = {coe := lie_submodule.to_submodule _inst_7}
Copy of a lie_submodule with a new carrier
equal to the old one. Useful to fix definitional
equalities.
Equations
- N.lie_ring_module = {to_has_bracket := {bracket := λ (x : L) (m : ↥N), ⟨⁅x, m.val⁆, _⟩}, add_lie := _, lie_add := _, leibniz_lie := _}
Equations
- N.module' = N.to_submodule.module'
Equations
- N.module = N.to_submodule.module
Equations
- N.lie_module = {smul_lie := _, lie_smul := _}
An ideal of a Lie algebra is a Lie subalgebra.
Equations
- lie_ideal_subalgebra R L I = {to_submodule := {carrier := (lie_submodule.to_submodule I).carrier, add_mem' := _, zero_mem' := _, smul_mem' := _}, lie_mem' := _}
Equations
- lie_subalgebra.has_coe R L = {coe := λ (I : lie_ideal R L), lie_ideal_subalgebra R L I}
An ideal of L
is a Lie subalgebra of L
, so it is a Lie ring.
Equations
- lie_ideal.lie_ring R L I = lie_subalgebra.lie_ring R L ↑I
Transfer the lie_algebra
instance from the coercion lie_ideal → lie_subalgebra
.
Equations
- lie_ideal.lie_algebra R L I = lie_subalgebra.lie_algebra R L ↑I
Transfer the lie_module
instance from the coercion lie_ideal → lie_subalgebra
.
Equations
Transfer the lie_module
instance from the coercion lie_ideal → lie_subalgebra
.
Equations
- lie_ideal.lie_module R L M I = ↑I.lie_module
Given a Lie subalgebra K ⊆ L
, if we view L
as a K
-module by restriction, it contains
a distinguished Lie submodule for the action of K
, namely K
itself.
Equations
- lie_submodule.has_bot = {bot := 0}
The set of Lie submodules of a Lie module form a complete lattice.
We provide explicit values for the fields bot
, top
, inf
to get more convenient definitions
than we would otherwise obtain from complete_lattice_of_Inf
.
Equations
- lie_submodule.complete_lattice = {sup := complete_lattice.sup (complete_lattice_of_Inf (lie_submodule R L M) lie_submodule.Inf_glb), le := has_le.le (preorder.to_has_le (lie_submodule R L M)), lt := has_lt.lt (preorder.to_has_lt (lie_submodule R L M)), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _, inf := has_inf.inf lie_submodule.has_inf, inf_le_left := _, inf_le_right := _, le_inf := _, Sup := complete_lattice.Sup (complete_lattice_of_Inf (lie_submodule R L M) lie_submodule.Inf_glb), le_Sup := _, Sup_le := _, Inf := complete_lattice.Inf (complete_lattice_of_Inf (lie_submodule R L M) lie_submodule.Inf_glb), Inf_le := _, le_Inf := _, top := ⊤, bot := ⊥, le_top := _, bot_le := _}
Equations
- lie_submodule.add_comm_monoid = {add := has_sup.sup (semilattice_sup.to_has_sup (lie_submodule R L M)), add_assoc := _, zero := ⊥, zero_add := _, add_zero := _, nsmul := add_monoid.nsmul._default ⊥ has_sup.sup lie_submodule.add_comm_monoid._proof_4 lie_submodule.add_comm_monoid._proof_5, nsmul_zero' := _, nsmul_succ' := _, add_comm := _}
The inclusion of a Lie submodule into its ambient space is a morphism of Lie modules.
Given two nested Lie submodules N ⊆ N'
, the inclusion N ↪ N'
is a morphism of Lie modules.
Equations
- lie_submodule.hom_of_le h = {to_linear_map := {to_fun := (submodule.of_le _).to_fun, map_add' := _, map_smul' := _}, map_lie' := _}
The lie_span
of a set s ⊆ M
is the smallest Lie submodule of M
that contains s
.
Equations
- lie_submodule.lie_span R L s = has_Inf.Inf {N : lie_submodule R L M | s ⊆ ↑N}
lie_span
forms a Galois insertion with the coercion from lie_submodule
to set
.
Equations
- lie_submodule.gi R L M = {choice := λ (s : set M) (_x : ↑(lie_submodule.lie_span R L s) ≤ s), lie_submodule.lie_span R L s, gc := _, le_l_u := _, choice_eq := _}
A morphism of Lie modules f : M → M'
pushes forward Lie submodules of M
to Lie submodules
of M'
.
A morphism of Lie modules f : M → M'
pulls back Lie submodules of M'
to Lie submodules of
M
.
A morphism of Lie algebras f : L → L'
pushes forward Lie ideals of L
to Lie ideals of L'
.
Note that unlike lie_submodule.map
, we must take the lie_span
of the image. Mathematically
this is because although f
makes L'
into a Lie module over L
, in general the L
submodules of
L'
are not the same as the ideals of L'
.
Equations
- lie_ideal.map f I = lie_submodule.lie_span R L' ↑(submodule.map ↑f ↑I)
A morphism of Lie algebras f : L → L'
pulls back Lie ideals of L'
to Lie ideals of L
.
Note that f
makes L'
into a Lie module over L
(turning f
into a morphism of Lie modules)
and so this is a special case of lie_submodule.comap
but we do not exploit this fact.
See also lie_ideal.map_comap_eq
.
Note that this is not a special case of lie_submodule.subsingleton_of_bot
. Indeed, given
I : lie_ideal R L
, in general the two lattices lie_ideal R I
and lie_submodule R L I
are
different (though the latter does naturally inject into the former).
In other words, in general, ideals of I
, regarded as a Lie algebra in its own right, are not the
same as ideals of L
contained in I
.
The kernel of a morphism of Lie algebras, as an ideal in the domain.
Equations
- f.ker = lie_ideal.comap f ⊥
The range of a morphism of Lie algebras as an ideal in the codomain.
Equations
- f.ideal_range = lie_submodule.lie_span R L' ↑(f.range)
The condition that the image of a morphism of Lie algebras is an ideal.
Equations
- f.is_ideal_morphism = (↑(f.ideal_range) = f.range)
Given two nested Lie ideals I₁ ⊆ I₂
, the inclusion I₁ ↪ I₂
is a morphism of Lie algebras.
Equations
- lie_ideal.hom_of_le h = {to_linear_map := {to_fun := (submodule.of_le _).to_fun, map_add' := _, map_smul' := _}, map_lie' := _}
The kernel of a morphism of Lie algebras, as an ideal in the domain.
Equations
- f.ker = lie_submodule.comap f ⊥
The range of a morphism of Lie modules f : M → N
is a Lie submodule of N
.
See Note [range copy pattern].
The natural equivalence between the 'top' Lie subalgebra and the enclosing Lie algebra.
This is the Lie subalgebra version of submodule.top_equiv
.
Equations
- lie_subalgebra.top_equiv = {to_lie_hom := {to_linear_map := ⊤.incl.to_linear_map, map_lie' := _}, inv_fun := λ (x : L), ⟨x, _⟩, left_inv := _, right_inv := _}
The natural equivalence between the 'top' Lie ideal and the enclosing Lie algebra.
This is the Lie ideal version of submodule.top_equiv
.