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 L
to direct sum module of dimension 5 over L
julia> [(v, h(v)) for v in basis(V1)]
2-element Vector{Tuple{LieAlgebraModuleElem{QQFieldElem, LinearLieAlgebraElem{QQFieldElem}}, LieAlgebraModuleElem{QQFieldElem, LinearLieAlgebraElem{QQFieldElem}}}}:
(v_1, v_1^(1))
(v_2, v_2^(1))
This function is part of the experimental code in Oscar. Please read here for more details.
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 L
to abstract Lie algebra module of dimension 1 over L
julia> [(v, h(v)) for v in basis(V1)]
3-element Vector{Tuple{LieAlgebraModuleElem{QQFieldElem, LinearLieAlgebraElem{QQFieldElem}}, LieAlgebraModuleElem{QQFieldElem, LinearLieAlgebraElem{QQFieldElem}}}}:
(v_1, 0)
(v_2, 0)
(v_3, 0)
This function is part of the experimental code in Oscar. Please read here for more details.
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 L
to standard module of dimension 3 over L
This function is part of the experimental code in Oscar. Please read here for more details.
zero_map
— Methodzero_map(V1::LieAlgebraModule, V2::LieAlgebraModule) -> LieAlgebraModuleHom
zero_map(V::LieAlgebraModule) -> LieAlgebraModuleHom
Construct the zero map from V1
to V2
or from V
to 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> zero_map(V)
Lie algebra module morphism
from standard module of dimension 3 over L
to standard module of dimension 3 over L
This function is part of the experimental code in Oscar. Please read here for more details.
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.
This function is part of the experimental code in Oscar. Please read here for more details.
Image
image
— Methodimage(h::LieAlgebraModuleHom, v::LieAlgebraModuleElem) -> LieAlgebraModuleElem
Return the image of v
under h
.
This function is part of the experimental code in Oscar. Please read here for more details.
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
.
This function is part of the experimental code in Oscar. Please read here for more details.
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.
This function is part of the experimental code in Oscar. Please read here for more details.
inv
— Methodinv(h::LieAlgebraModuleHom) -> LieAlgebraModuleHom
Return the inverse of h
. Requires h
to be an isomorphism.
This function is part of the experimental code in Oscar. Please read here for more details.
Hom constructions
Lie algebra module homomorphisms support +
and -
if they have the same domain and codomain.
canonical_injections
— Methodcanonical_injections(V::LieAlgebraModule) -> Vector{LieAlgebraModuleHom}
Return the canonical injections from all components into $V$ where $V$ has been constructed as $V_1 \oplus \cdot \oplus V_n$.
This function is part of the experimental code in Oscar. Please read here for more details.
canonical_injection
— Methodcanonical_injection(V::LieAlgebraModule, i::Int) -> LieAlgebraModuleHom
Return the canonical injection $V_i \to V$ where $V$ has been constructed as $V_1 \oplus \cdot \oplus V_n$.
This function is part of the experimental code in Oscar. Please read here for more details.
canonical_projections
— Methodcanonical_projections(V::LieAlgebraModule) -> Vector{LieAlgebraModuleHom}
Return the canonical projections from $V$ to all components where $V$ has been constructed as $V_1 \oplus \cdot \oplus V_n$.
This function is part of the experimental code in Oscar. Please read here for more details.
canonical_projection
— Methodcanonical_projection(V::LieAlgebraModule, i::Int) -> LieAlgebraModuleHom
Return the canonical projection $V \to V_i$ where $V$ has been constructed as $V_1 \oplus \cdot \oplus V_n$.
This function is part of the experimental code in Oscar. Please read here for more details.
hom_direct_sum
— Methodhom_direct_sum(V::LieAlgebraModule{C}, W::LieAlgebraModule{C}, hs::Matrix{<:LieAlgebraModuleHom}) -> LieAlgebraModuleHom
hom_direct_sum(V::LieAlgebraModule{C}, W::LieAlgebraModule{C}, hs::Vector{<:LieAlgebraModuleHom}) -> LieAlgebraModuleHom
Given modules V
and W
which are direct sums with r
respective s
summands, say $M = M_1 \oplus \cdots \oplus M_r$, $N = N_1 \oplus \cdots \oplus N_s$, and given a $r \times s$ matrix hs
of homomorphisms $h_{ij} : V_i \to W_j$, return the homomorphism $V \to W$ with $ij$-components $h_{ij}$.
If hs
is a vector, then it is interpreted as a diagonal matrix.
This function is part of the experimental code in Oscar. Please read here for more details.
hom_tensor
— Methodhom_tensor(V::LieAlgebraModule{C}, W::LieAlgebraModule{C}, hs::Vector{<:LieAlgebraModuleHom}) -> LieAlgebraModuleHom
Given modules V
and W
which are tensor products with the same number of factors, say $V = V_1 \otimes \cdots \otimes V_r$, $W = W_1 \otimes \cdots \otimes W_r$, and given a vector hs
of homomorphisms $a_i : V_i \to W_i$, return $a_1 \otimes \cdots \otimes a_r$.
This works for $r$th tensor powers as well.
This function is part of the experimental code in Oscar. Please read here for more details.
hom
— Methodhom(V::LieAlgebraModule{C}, W::LieAlgebraModule{C}, h::LieAlgebraModuleHom) -> LieAlgebraModuleHom
Given modules V
and W
which are exterior/symmetric/tensor powers of the same kind with the same exponent, say, e.g., $V = S^k V'$, $W = S^k W'$, and given a homomorphism $h : V' \to W'$, return $S^k h: V \to W$ (analogous for other types of powers).
This function is part of the experimental code in Oscar. Please read here for more details.