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.

homMethod
hom(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))
source
homMethod
hom(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)
source
identity_mapMethod
identity_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
source

Functions

The following functions are available for LieAlgebraModuleHoms:

Basic properties

For a homomorphism $h: V_1 \to V_2$, domain(h) and codomain(h) return $V_1$ and $V_2$ respectively.

matrixMethod
matrix(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.

source

Image

imageMethod
image(h::LieAlgebraModuleHom, v::LieAlgebraModuleElem) -> LieAlgebraModuleElem

Return the image of v under h.

source

Composition

composeMethod
compose(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.

source

Inverses

is_isomorphismMethod
is_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.

source
invMethod
inv(h::LieAlgebraModuleHom) -> LieAlgebraModuleHom

Return the inverse of h. Requires h to be an isomorphism.

source