Lie algebra homomorphisms
Homomorphisms of Lie algebras in Oscar are represented by the type LieAlgebraHom
.
Constructors
Lie algebra homomorphisms $h: L_1 \to L_2$ are constructed by providing either the images of the basis elements of $L_1$ or a $\dim L_1 \times \dim L_2$ matrix.
hom
— Methodhom(L1::LieAlgebra, L2::LieAlgebra, imgs::Vector{<:LieAlgebraElem}; check::Bool=true) -> LieAlgebraHom
Construct the homomorphism from L1
to L2
by sending the i
-th basis element of L1
to imgs[i]
and extending linearly. All elements of imgs
must lie in L2
.
By setting check=false
, the linear map is not checked to be compatible with the Lie bracket.
Examples
julia> L1 = special_linear_lie_algebra(QQ, 2);
julia> L2 = special_linear_lie_algebra(QQ, 3);
julia> h = hom(L1, L2, [basis(L2, 1), basis(L2, 4), basis(L2, 7)]) # embed sl_2 into sl_3
Lie algebra morphism
from special linear Lie algebra of degree 2 over QQ
to special linear Lie algebra of degree 3 over QQ
julia> [(x, h(x)) for x in basis(L1)]
3-element Vector{Tuple{LinearLieAlgebraElem{QQFieldElem}, LinearLieAlgebraElem{QQFieldElem}}}:
(e_1_2, e_1_2)
(f_1_2, f_1_2)
(h_1, h_1)
This function is part of the experimental code in Oscar. Please read here for more details.
hom
— Methodhom(L1::LieAlgebra, L2::LieAlgebra, mat::MatElem; check::Bool=true) -> LieAlgebraHom
Construct the homomorphism from L1
to L2
by acting with the matrix mat
from the right on the coefficient vector w.r.t. the basis of L1
. mat
must be a matrix of size dim(L1) \times dim(L2)
over coefficient_ring(L2)
.
By setting check=false
, the linear map is not checked to be compatible with the Lie bracket.
Examples
julia> L1 = special_linear_lie_algebra(QQ, 2);
julia> L2 = general_linear_lie_algebra(QQ, 2);
julia> h = hom(L1, L2, matrix(QQ, [0 1 0 0; 0 0 1 0; 1 0 0 -1]))
Lie algebra morphism
from special linear Lie algebra of degree 2 over QQ
to general linear Lie algebra of degree 2 over QQ
julia> [(x, h(x)) for x in basis(L1)]
3-element Vector{Tuple{LinearLieAlgebraElem{QQFieldElem}, LinearLieAlgebraElem{QQFieldElem}}}:
(e_1_2, x_1_2)
(f_1_2, x_2_1)
(h_1, x_1_1 - x_2_2)
This function is part of the experimental code in Oscar. Please read here for more details.
identity_map
— Methodidentity_map(L::LieAlgebra) -> LieAlgebraHom
Construct the identity map on L
.
Examples
julia> L = special_linear_lie_algebra(QQ, 3)
Special linear Lie algebra of degree 3
of dimension 8
over rational field
julia> identity_map(L)
Lie algebra morphism
from special linear Lie algebra of degree 3 over QQ
to special linear Lie algebra of degree 3 over QQ
This function is part of the experimental code in Oscar. Please read here for more details.
zero_map
— Methodzero_map(L1::LieAlgebra, L2::LieAlgebra) -> LieAlgebraHom
zero_map(L::LieAlgebra) -> LieAlgebraHom
Construct the zero map from L1
to L2
or from L
to L
.
Examples
julia> L = special_linear_lie_algebra(QQ, 3)
Special linear Lie algebra of degree 3
of dimension 8
over rational field
julia> zero_map(L)
Lie algebra morphism
from special linear Lie algebra of degree 3 over QQ
to special linear Lie algebra of degree 3 over QQ
This function is part of the experimental code in Oscar. Please read here for more details.
Functions
The following functions are available for LieAlgebraHom
s:
Basic properties
For a homomorphism $h: L_1 \to L_2$, domain(h)
and codomain(h)
return $L_1$ and $L_2$ respectively.
matrix
— Methodmatrix(R::Ring, arr::AbstractMatrix{T}) where {T}
Constructs the matrix over $R$ with entries as in arr
.
Examples
julia> matrix(GF(3), [1 2 ; 3 4])
[1 2]
[0 1]
julia> using LinearAlgebra ; matrix(GF(5), I(2))
[1 0]
[0 1]
matrix(R::Ring, r::Int, c::Int, arr::AbstractVector{T}) where {T}
Constructs the $r \times c$ matrix over $R$, where the entries are taken row-wise from arr
.
Image
image
— Methodimage(h::LieAlgebraHom, x::LieAlgebraElem) -> LieAlgebraElem
Return the image of x
under h
.
This function is part of the experimental code in Oscar. Please read here for more details.
image
— Methodimage(h::LieAlgebraHom) -> LieSubalgebra
Return the image of h
as a Lie subalgebra of the codomain.
This function is part of the experimental code in Oscar. Please read here for more details.
image
— Methodimage(h::LieAlgebraHom, I::LieAlgebraIdeal) -> LieSubalgebra
Return the image of I
under h
as a Lie subalgebra of the codomain.
This function is part of the experimental code in Oscar. Please read here for more details.
image
— Methodimage(h::LieAlgebraHom, S::LieSubalgebra) -> LieSubalgebra
Return the image of S
under h
as a Lie subalgebra of the codomain.
This function is part of the experimental code in Oscar. Please read here for more details.
Kernel
kernel
— Methodkernel(h::LieAlgebraHom) -> LieAlgebraIdeal
Return the kernel of h
as an ideal of the domain.
This function is part of the experimental code in Oscar. Please read here for more details.
Composition
compose
— Methodcompose(f::LieAlgebraHom, g::LieAlgebraHom) -> LieAlgebraHom
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::LieAlgebraHom) -> 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::LieAlgebraHom) -> LieAlgebraHom
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.