Construction and basic functionality

DrinfeldHeckeAlgebraType
DrinfeldHeckeAlgebra{T <: FieldElem, S <: RingElem} <: NCRing

Type for representing a Drinfeld-Hecke algebra for a group $G$. The parameter T is the element type over which $G$ is defined, S is the ring element type over which the associated Drinfeld-Hecke form is defined.

source
DrinfeldHeckeAlgebraElemType
DrinfeldHeckeAlgebraElem{T <: FieldElem, S <: RingElem} <: NCRingElem

Type for representing a Drinfeld-Hecke algebra element.

source
drinfeld_hecke_algebraFunction
drinfeld_hecke_algebra(G::MatGroup{T}, R::Ring=base_ring(G)) where {T <: FieldElem}

Create the trivial Drinfeld-Hecke algebra over the ring R for the matrix group G, i.e. the skew group ring $R[V]\#G$ where $V$ is the vector space on which G acts.

Examples

julia> G = matrix_group(matrix(QQ, [-1 0;0 -1]))
Matrix group of degree 2
  over rational field

julia> R, _ = polynomial_ring(QQ, ["x","y"])
(Multivariate polynomial ring in 2 variables over QQ, QQMPolyRingElem[x, y])

julia> drinfeld_hecke_algebra(G, R)
Drinfeld-Hecke algebra
  for Matrix group of degree 2 over QQ
with generators
  x1, x2, g1

defined by Drinfeld-Hecke form over base ring
  Multivariate polynomial ring in 2 variables over QQ
with parameters
  x, y

given by 0
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
drinfeld_hecke_algebra(forms::Dict)

Create the Drinfeld-Hecke algebra given by the dictionary forms which is expected to have keys of type MatGroupElem{T} and values of type MatElem{S} where T <: FieldElem, S <: RingElem. If the types are not correct, an exception is thrown.

Examples

julia> G = matrix_group(matrix(QQ, [-1 0;0 -1]))
Matrix group of degree 2
  over rational field

julia> R, (x,y) = polynomial_ring(QQ, ["x","y"])
(Multivariate polynomial ring in 2 variables over QQ, QQMPolyRingElem[x, y])

julia> kappa_1 = matrix(R, [0 x; -x 0])
[ 0   x]
[-x   0]

julia> kappa_g = matrix(R, [0 y; -y 0])
[ 0   y]
[-y   0]

julia> forms = Dict(one(G) => kappa_1, G[1] => kappa_g)
Dict{MatGroupElem{QQFieldElem, QQMatrix}, AbstractAlgebra.Generic.MatSpaceElem{QQMPolyRingElem}} with 2 entries:
  [1 0; 0 1]   => [0 x; -x 0]
  [-1 0; 0 -1] => [0 y; -y 0]

julia> drinfeld_hecke_algebra(forms)
Drinfeld-Hecke algebra
  for Matrix group of degree 2 over QQ
with generators
  x1, x2, g1

defined by Drinfeld-Hecke form over base ring
  Multivariate polynomial ring in 2 variables over QQ
with parameters
  x, y

given by alternating bilinear forms
  [1   0] => [ 0   x]
  [0   1]    [-x   0]

  [-1    0] => [ 0   y]
  [ 0   -1]    [-y   0]
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
generic_drinfeld_hecke_algebraFunction
generic_drinfeld_hecke_algebra(G::MatGroup{T}, R::Ring=base_ring(G)) where {T <: FieldElem}

Create a generic (parametrized) Drinfeld-Hecke algebra over the ring R for the group G.

Examples

julia> G = matrix_group(matrix(QQ, [-1 0;0 -1]))
Matrix group of degree 2
  over rational field

julia> generic_drinfeld_hecke_algebra(G)
Drinfeld-Hecke algebra
  for Matrix group of degree 2 over QQ
with generators
  x1, x2, g1

defined by Drinfeld-Hecke form over base ring
  Multivariate polynomial ring in 2 variables over QQ
with parameters
  t1, t2

given by alternating bilinear forms
  [1   0] => [  0   t1]
  [0   1]    [-t1    0]

  [-1    0] => [  0   t2]
  [ 0   -1]    [-t2    0]
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
evaluate_parametersFunction
evaluate_parameters(A::DrinfeldHeckeAlgebra, values::Vector)

Evaluate the parameters of the Drinfeld-Hecke algebra A by the values given in values.

Examples

julia> G = matrix_group(matrix(QQ, [-1 0;0 -1]))
Matrix group of degree 2
  over rational field

julia> A = generic_drinfeld_hecke_algebra(G)
Drinfeld-Hecke algebra
  for Matrix group of degree 2 over QQ
with generators
  x1, x2, g1

defined by Drinfeld-Hecke form over base ring
  Multivariate polynomial ring in 2 variables over QQ
with parameters
  t1, t2

given by alternating bilinear forms
  [1   0] => [  0   t1]
  [0   1]    [-t1    0]

  [-1    0] => [  0   t2]
  [ 0   -1]    [-t2    0]

julia> evaluate_parameters(A, [1,2])
Drinfeld-Hecke algebra
  for Matrix group of degree 2 over QQ
with generators
  x1, x2, g1

defined by Drinfeld-Hecke form over base ring
  Multivariate polynomial ring in 2 variables over QQ
with parameters
  t1, t2

given by alternating bilinear forms
  [1   0] => [ 0   1]
  [0   1]    [-1   0]

  [-1    0] => [ 0   2]
  [ 0   -1]    [-2   0]
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
groupMethod
group(A::DrinfeldHeckeAlgebra)

Return the group for which A is defined.

Examples

julia> G = matrix_group(matrix(QQ, [-1 0;0 -1]))
Matrix group of degree 2
  over rational field

julia> A = drinfeld_hecke_algebra(G)
Drinfeld-Hecke algebra
  for Matrix group of degree 2 over QQ
with generators
  x1, x2, g1

defined by Drinfeld-Hecke form over base ring
  Rational field
given by 0

julia> group(A)
Matrix group of degree 2
  over rational field
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
base_ringMethod
base_ring(A::DrinfeldHeckeAlgebra)

Return the base ring over which A is defined.

Examples

julia> G = matrix_group(matrix(QQ, [-1 0;0 -1]))
Matrix group of degree 2
  over rational field

julia> R, (x,y) = polynomial_ring(QQ, ["x","y"])
(Multivariate polynomial ring in 2 variables over QQ, QQMPolyRingElem[x, y])

julia> A = drinfeld_hecke_algebra(G, R)
Drinfeld-Hecke algebra
  for Matrix group of degree 2 over QQ
with generators
  x1, x2, g1

defined by Drinfeld-Hecke form over base ring
  Multivariate polynomial ring in 2 variables over QQ
with parameters
  x, y

given by 0

julia> base_ring(A)
Multivariate polynomial ring in 2 variables x, y
  over rational field
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
base_algebraMethod
base_algebra(A::DrinfeldHeckeAlgebra)

Return the polynomial ring over $V$ which serves in the implementation as a base for A.

Examples

julia> G = matrix_group(matrix(QQ, [-1 0;0 -1]))
Matrix group of degree 2
  over rational field

julia> A = drinfeld_hecke_algebra(G)
Drinfeld-Hecke algebra
  for Matrix group of degree 2 over QQ
with generators
  x1, x2, g1

defined by Drinfeld-Hecke form over base ring
  Rational field
given by 0

julia> base_algebra(A)
Multivariate polynomial ring in 2 variables x1, x2
  over rational field
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
parametersMethod
parameters(A::DrinfeldHeckeAlgebra)

Return the parameters of A.

Examples

julia> G = matrix_group(matrix(QQ, [-1 0;0 -1]))
Matrix group of degree 2
  over rational field

julia> A = generic_drinfeld_hecke_algebra(G)
Drinfeld-Hecke algebra
  for Matrix group of degree 2 over QQ
with generators
  x1, x2, g1

defined by Drinfeld-Hecke form over base ring
  Multivariate polynomial ring in 2 variables over QQ
with parameters
  t1, t2

given by alternating bilinear forms
  [1   0] => [  0   t1]
  [0   1]    [-t1    0]

  [-1    0] => [  0   t2]
  [ 0   -1]    [-t2    0]

julia> parameters(A)
2-element Vector{QQMPolyRingElem}:
 t1
 t2
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source
is_trivialMethod
is_trivial(A::DrinfeldHeckeAlgebra)

Return true if A is the trivial Drinfeld-Hecke algebra, false otherwise.

Examples

julia> G = matrix_group(matrix(QQ, [-1 0;0 -1]))
Matrix group of degree 2
  over rational field

julia> A = generic_drinfeld_hecke_algebra(G)
Drinfeld-Hecke algebra
  for Matrix group of degree 2 over QQ
with generators
  x1, x2, g1

defined by Drinfeld-Hecke form over base ring
  Multivariate polynomial ring in 2 variables over QQ
with parameters
  t1, t2

given by alternating bilinear forms
  [1   0] => [  0   t1]
  [0   1]    [-t1    0]

  [-1    0] => [  0   t2]
  [ 0   -1]    [-t2    0]

julia> is_trivial(A)
false
Experimental

This function is part of the experimental code in Oscar. Please read here for more details.

source