Skip to content

Basics

Creation of algebras

See the corresponding sections on structure constant algebras, group algebras and quaternion algebras.

zero_algebra Method
julia
zero_algebra([T, ] K::Field) -> AbstractAssociativeAlgebra

Return the zero ring as an algebra over the field K.

The optional first argument determines the type of the algebra, and can be StructureConstantAlgebra (default) or MatrixAlgebra.

Examples

julia
julia> A = zero_algebra(QQ)
Structure constant algebra of dimension 0 over QQ
source

Basic properties

base_ring Method
julia
base_ring(A::AbstractAssociativeAlgebra) -> Field

Given a K-algebra A, return K.

source
basis Method
julia
basis(A::AbstractAssociativeAlgebra) -> Vector

Given a K-algebra A return the K-basis of A. See also coordinates to get the the coordinates of an element with respect to the bases.

source

Predicates

is_zero Method
julia
is_zero(A::AbstractAssociativeAlgebra) -> Bool

Return whether A is the zero algebra.

source
is_commutative Method
julia
is_commutative(A::AbstractAssociativeAlgebra) -> Bool

Return whether A is commutative.

Examples

julia
julia> A = matrix_algebra(QQ, 2);

julia> is_commutative(A)
false
source
is_central Method
julia
is_central(A::AbstractAssociativeAlgebra)

Return whether the K-algebra A is central, that is, whether K is the center of A.

source

Creation of elements

Elements of algebras can be constructed by arithmetic with basis elements, generators or by providing coordinates.

julia
julia> Q = quaternion_algebra(QQ, -1, -1)
Quaternion algebra
  over rational field
  defined by i^2 = -1, j^2 = -1

julia> B = basis(Q);

julia> x = B[1] + B[2] + 1//3 * B[4]
1 + i + 1//3*k

julia> Q([1, 1, 0, 1//3])
1 + i + 1//3*k

Generators

gens Method
julia
gens(A::AbstractAssociativeAlgebra; thorough_search::Bool = false) -> Vector

Given a K-algebra A, return a subset of basis(A), which generates A as an algebra over K.

If thorough_search is true, the number of returned generators is possibly smaller. This will in general increase the runtime. It is not guaranteed that the number of generators is minimal in any case.

The gens_with_data function computes additional data for expressing a basis as words in the generators.

Examples

julia
julia> A = matrix_algebra(QQ, 3);

julia> gens(A; thorough_search = true)
5-element Vector{MatAlgebraElem{QQFieldElem, QQMatrix}}:
 [1 0 0; 0 0 0; 0 0 0]
 [0 0 0; 1 0 0; 0 0 0]
 [0 0 0; 0 0 0; 1 0 0]
 [0 1 0; 0 0 0; 0 0 0]
 [0 0 1; 0 0 0; 0 0 0]
source
gens_with_data Method
julia
gens_with_data(A::AbstractAssociativeAlgebra; thorough_search::Bool = false)
                                                   -> Vector, Vector, Vector

Given a K-algebra A, return a triple (G,B,w) consisting of

  • a subset G of basis(A), which generates A as an algebra over K,

  • a (new) basis B and a vector w::Vector{Tuple{Int, Int}}, such that B[i] = prod(G[j]^k for (j, k) in w[i].

If thorough_search is true, the number of returned generators is possibly smaller. This will in general increase the runtime. It is not guaranteed that the number of generators is minimal in any case.

Examples

julia
julia> A = matrix_algebra(QQ, 3);

julia> G, B, w = gens_with_data(A; thorough_search = true);

julia> B[1] == prod(G[i]^j for (i, j) in w[1])
true
source

Center

center Method
julia
center(A::AbstractAssociativeAlgebra)
                                   -> StructureConstantAlgebra, Map

Returns the center C of A and the inclusion CA. Note that C itself is an algebra.

Examples

julia
julia> A = matrix_algebra(QQ, 2);

julia> C, CtoA = center(A);

julia> C
Structure constant algebra of dimension 1 over QQ
source
dimension_of_center Method
julia
dimension_of_center(A::AbstractAssociativeAlgebra) -> Int

Given a K-algebra, return the K-dimension of the center of A.

Examples

julia
julia> A = matrix_algebra(QQ, 2);

julia> dimension_of_center(A)
1
source
dimension_over_center Method
julia
dimension_over_center(A::AbstractAssociativeAlgebra) -> Int

Given a simple K-algebra with center C, return the C-dimension A.

Examples

julia
julia> A = matrix_algebra(QQ, 2);

julia> dimension_of_center(A)
1
source

Layout Switch

Adjust the layout style of VitePress to adapt to different reading needs and screens.

Expand all
The sidebar and content area occupy the entire width of the screen.
Expand sidebar with adjustable values
Expand sidebar width and add a new slider for user to choose and customize their desired width of the maximum width of sidebar can go, but the content area width will remain the same.
Expand all with adjustable values
Expand sidebar width and add a new slider for user to choose and customize their desired width of the maximum width of sidebar can go, but the content area width will remain the same.
Original width
The original layout width of VitePress

Page Layout Max Width

Adjust the exact value of the page width of VitePress layout to adapt to different reading needs and screens.

Adjust the maximum width of the page layout
A ranged slider for user to choose and customize their desired width of the maximum width of the page layout can go.

Content Layout Max Width

Adjust the exact value of the document content width of VitePress layout to adapt to different reading needs and screens.

Adjust the maximum width of the content layout
A ranged slider for user to choose and customize their desired width of the maximum width of the content layout can go.

Spotlight

Highlight the line where the mouse is currently hovering in the content to optimize for users who may have reading and focusing difficulties.

ONOn
Turn on Spotlight.
OFFOff
Turn off Spotlight.