GR-Algebras: Quotients of PBW-Algebras
In analogy to the affine algebras section in the commutative algebra chapter, we describe OSCAR functionality for dealing with quotients of PBW-algebras modulo two-sided ideals.
Quotients of PBW-algebras modulo two-sided ideals are also known as GR-algebras (here, GR stands for Gröbner-Ready; see Viktor Levandovskyy (2005)).
Types
GR-algebras are modelled by objects of type PBWAlgQuo{T, S} <: NCRing, their elements are objects of type PBWAlgQuoElem{T, S} <: NCRingElem. Here, T is the element type of the field over which the GR-algebra is defined (the type S is added for internal use).
Constructors
quo — Methodquo(A::PBWAlgRing, I::PBWAlgIdeal)Given a two-sided ideal I of A, create the quotient algebra $A/I$ and return the new algebra together with the quotient map $A\to A/I$.
Examples
julia> R, (x, y, z) = QQ["x", "y", "z"];
julia> L = [-x*y, -x*z, -y*z];
julia> REL = strictly_upper_triangular_matrix(L);
julia> A, (x, y, z) = pbw_algebra(R, REL, deglex(gens(R)))
(PBW-algebra over Rational field in x, y, z with relations y*x = -x*y, z*x = -x*z, z*y = -y*z, PBWAlgElem{QQFieldElem, Singular.n_Q}[x, y, z])
julia> I = two_sided_ideal(A, [x^2, y^2, z^2])
two_sided_ideal(x^2, y^2, z^2)
julia> Q, q = quo(A, I);
julia> Q
(PBW-algebra over Rational field in x, y, z with relations y*x = -x*y, z*x = -x*z, z*y = -y*z)/two_sided_ideal(x^2, y^2, z^2)
julia> q
Map from
PBW-algebra over Rational field in x, y, z with relations y*x = -x*y, z*x = -x*z, z*y = -y*z to (PBW-algebra over Rational field in x, y, z with relations y*x = -x*y, z*x = -x*z, z*y = -y*z)/two_sided_ideal(x^2, y^2, z^2) defined by a julia-function with inverseThe example above, shows one way of constructing the exterior algebra on the variables x, y, z over $\mathbb Q$. For reasons of efficiency, it is recommended to use the built-in constructor exterior_algebra when working with exterior algebras in OSCAR.
Exterior Algebras
The $n$-th exterior algebra over a field $K$ is the quotient of the PBW-algebra
\[A=K \langle e_1,\dots, e_n \mid e_i e_j = - e_j e_i \ \text { for }\ i\neq j\rangle\]
modulo the two-sided ideal
\[\langle e_1^2,\dots, e_n^2\rangle.\]
exterior_algebra — Functionexterior_algebra(K::Field, numVars::Int)
exterior_algebra(K::Field, listOfVarNames::AbstractVector{<:VarName})The first form returns an exterior algebra with coefficient field K and numVars variables: numVars must be positive, and the variables are called e1, e2, ....
The second form returns an exterior algebra with coefficient field K, and variables named as specified in listOfVarNames (which must be non-empty).
NOTE: Creating an exterior_algebra with many variables will create an object occupying a lot of memory (probably cubic in numVars).
Examples
julia> ExtAlg, (e1,e2) = exterior_algebra(QQ, 2);
julia> e2*e1
-e1*e2
julia> (e1+e2)^2 # result is automatically reduced!
0
julia> ExtAlg, (x,y) = exterior_algebra(QQ, ["x","y"]);
julia> y*x
-x*yData Associated to Affine GR-Algebras
Basic Data
If Q=A/I is the quotient ring of a PBW-algebra A modulo a two-sided ideal I of A, then
base_ring(Q)refers toA,modulus(Q)toI,gens(Q)to the generators ofQ,ngens(Q)to the number of these generators, andgen(Q, i)as well asQ[i]to thei-th such generator.
Examples
julia> R, (x, y, z) = QQ["x", "y", "z"];
julia> L = [-x*y, -x*z, -y*z];
julia> REL = strictly_upper_triangular_matrix(L);
julia> A, (x, y, z) = pbw_algebra(R, REL, deglex(gens(R)));
julia> I = two_sided_ideal(A, [x^2, y^2, z^2]);
julia> Q, q = quo(A, I);
julia> base_ring(Q)
PBW-algebra over Rational field in x, y, z with relations y*x = -x*y, z*x = -x*z, z*y = -y*z
julia> modulus(Q)
two_sided_ideal(x^2, y^2, z^2)
julia> gens(Q)
3-element Vector{PBWAlgQuoElem{QQFieldElem, Singular.n_Q}}:
x
y
z
julia> ngens(Q)
3
julia> gen(Q, 2)
yElements of GR-Algebras
Types
The OSCAR type for elements of quotient rings of multivariate polynomial rings PBW-algebras is of parametrized form PBWAlgQuoElem{T, S}, where T is the element type of the field over which the GR-algebra is defined (the type S is added for internal use).
Creating Elements of GR-Algebras
Elements of a GR-algebra $Q = A/I$ are created as images of elements of $A$ under the projection map or by directly coercing elements of $A$ into $Q$. The function simplify reduces a given element with regard to the modulus $I$.
Examples
julia> R, (x, y, z) = QQ["x", "y", "z"];
julia> L = [-x*y, -x*z, -y*z];
julia> REL = strictly_upper_triangular_matrix(L);
julia> A, (x, y, z) = pbw_algebra(R, REL, deglex(gens(R)));
julia> I = two_sided_ideal(A, [x^2, y^2, z^2]);
julia> Q, q = quo(A, I);
julia> f = q(y*x+z^2)
-x*y + z^2
julia> typeof(f)
PBWAlgQuoElem{QQFieldElem, Singular.n_Q}
julia> simplify(f);
julia> f
-x*y
julia> g = Q(y*x+x^2)
x^2 - x*y
julia> f == g
trueData associated to Elements of GR-Algebras
Given an element f of an affine GR-algebra Q,
parent(f)refers toQ.