Lie algebra module homomorphisms
Homomorphisms of Lie algebra modules in Oscar are represented by the type LieAlgebraModuleHom
.
Constructors
Homomorphisms of modules over the same Lie algebra $h: V_1 \to V_2$ are constructed by providing either the images of the basis elements of $V_1$ or a $\dim V_1 \times \dim V_2$ matrix.
hom
— Methodhom(V1::LieAlgebraModule, V2::LieAlgebraModule, imgs::Vector{<:LieAlgebraModuleElem}; check::Bool=true) -> LieAlgebraModuleHom
Construct the homomorphism from V1
to V2
by sending the i
-th basis element of V1
to imgs[i]
and extending linearly. All elements of imgs
must lie in V2
. Currently, V1
and V2
must be modules over the same Lie algebra.
By setting check=false
, the linear map is not checked to be compatible with the module action.
Examples
julia> L = special_linear_lie_algebra(QQ, 2);
julia> V1 = standard_module(L);
julia> V3 = trivial_module(L, 3);
julia> V2 = direct_sum(V1, V3);
julia> h = hom(V1, V2, [V2([v, zero(V3)]) for v in basis(V1)])
Lie algebra module morphism
from standard module of dimension 2 over sl_2
to direct sum module of dimension 5 over sl_2
julia> [(v, h(v)) for v in basis(V1)]
2-element Vector{Tuple{LieAlgebraModuleElem{QQFieldElem}, LieAlgebraModuleElem{QQFieldElem}}}:
(v_1, v_1^(1))
(v_2, v_2^(1))
hom
— Methodhom(V1::LieAlgebraModule, V2::LieAlgebraModule, mat::MatElem; check::Bool=true) -> LieAlgebraModuleHom
Construct the homomorphism from V1
to V2
by acting with the matrix mat
from the right on the coefficient vector w.r.t. the basis of V1
. mat
must be a matrix of size dim(V1) \times dim(V2)
over coefficient_ring(V2)
. Currently, V1
and V2
must be modules over the same Lie algebra.
By setting check=false
, the linear map is not checked to be compatible with the module action.
Examples
julia> L = general_linear_lie_algebra(QQ, 3);
julia> V1 = standard_module(L);
julia> V2 = trivial_module(L);
julia> h = hom(V1, V2, matrix(QQ, 3, 1, [0, 0, 0]))
Lie algebra module morphism
from standard module of dimension 3 over gl_3
to abstract Lie algebra module of dimension 1 over gl_3
julia> [(v, h(v)) for v in basis(V1)]
3-element Vector{Tuple{LieAlgebraModuleElem{QQFieldElem}, LieAlgebraModuleElem{QQFieldElem}}}:
(v_1, 0)
(v_2, 0)
(v_3, 0)
identity_map
— Methodidentity_map(V::LieAlgebraModule) -> LieAlgebraModuleHom
Construct the identity map on V
.
Examples
julia> L = special_linear_lie_algebra(QQ, 3);
julia> V = standard_module(L)
Standard module
of dimension 3
over special linear Lie algebra of degree 3 over QQ
julia> identity_map(V)
Lie algebra module morphism
from standard module of dimension 3 over sl_3
to standard module of dimension 3 over sl_3
Functions
The following functions are available for LieAlgebraModuleHom
s:
Basic properties
For a homomorphism $h: V_1 \to V_2$, domain(h)
and codomain(h)
return $V_1$ and $V_2$ respectively.
matrix
— Methodmatrix(h::LieAlgebraModuleHom) -> MatElem
Return the transformation matrix of h
w.r.t. the bases of the domain and codomain.
Note: The matrix operates on the coefficient vectors from the right.
Image
image
— Methodimage(h::LieAlgebraModuleHom, v::LieAlgebraModuleElem) -> LieAlgebraModuleElem
Return the image of v
under h
.
Composition
compose
— Methodcompose(f::LieAlgebraModuleHom, g::LieAlgebraModuleHom) -> LieAlgebraModuleHom
Return the composition of f
and g
, i.e. the homomorphism h
such that h(x) = g(f(x))
for all x
in the domain of f
. The codomain of f
must be identical to the domain of g
.
Inverses
is_isomorphism
— Methodis_isomorphism(h::LieAlgebraModuleHom) -> Bool
Return true
if h
is an isomorphism. This function tries to invert the transformation matrix of h
and caches the result. The inverse isomorphism can be cheaply accessed via inv(h)
after calling this function.
inv
— Methodinv(h::LieAlgebraModuleHom) -> LieAlgebraModuleHom
Return the inverse of h
. Requires h
to be an isomorphism.