Monoid Algebras
Monoid algebras are algebras over a field in which the ring multiplication follows a commutative noetherian monoid. The elements of the monoid can be thought of as exponents of monomials.
For this package we only consider finitely generated submonoids of $\mathbb{Z}^d$. These are often called affine semigroups. Let $Q$ be an affine semigroup and $k$ a field. The monoid algebra (or affine semigroup ring) $k[Q]$ is the $k$-algebra with $k$-basis $\{t^a \colon a \in Q\}$ and multiplication
\[t^at^b = t^{a+b} \quad \text{ for }a,b \in Q.\]
For example, the affine semigroup generated by the unit vectors $e_1,\dots,e_d \in \mathbb{Z}^d$ is $\mathbb{N}^d$ and the corresponding monoid algebra is the polynomial ring $k\left[\mathbb{N}^d\right] = k[x_1,\dots,x_d]$. This polynomial ring can be finely $\mathbb{Z}^d$-graded by setting $\deg(x_i) = e_i$. Likewise, $k[Q]$ is $Q$-graded by $\deg(t^a) = a \in Q$.
The code for injective resolutions and local cohomology works with $Q$-graded modules and more generally modules graded by the abelian group generated by $Q$ inside $\mathbb{Z}^d$. Often it will be assumed that this group is $\mathbb{Z}^d$. A common example of such a module is a quotient $k[Q]/I$ where $I$ is an ideal that is homogeneous in the $Q$-grading. For polynomial rings, an $\mathbb{N}^d$-homogenous ideal is simply a monomial ideal. These examples are even $Q$-graded, but indecomposable injectives appearing in injective resolutions will be properly $\mathbb{Z}^d$-graded.
Each monoid algebra has a presentation as the quotient of a polynomial ring modulo a binomial ideal. In the case of an affine monoid, that binomial ideal is a toric ideal and in particular a prime ideal. Since the implementation only covers affine semigroups, each monoid algebra here is a domain.
Each affine semigroup comes with polyhedral data associated to it. For example, the polyhedral cone generated by the monoid generators plays a central role. Therefore the monoid algebra also computes such data and stores it with the ring.
Types
Monoid algebras in OSCAR have the parametrized form MonoidAlgebra{k,A}
, with elements of type MonoidAlgebraElem{k,A}
. Here, A
is either of type MPolyRing
or MPolyQuoRing
and k
is some field.
Data associated to Monoid Algebras
Let kQ
= $k[Q]$ be a monoid algebra over a monoid $Q\subseteq \mathbb{Z}^d$. Then kQ.algebra
refers to the monoid algebra as a quotient ring of the finely graded polynomial ring $k[x_1,\dots,x_d]$.
To every monoid algebra $k[Q]$, we associate a polyhedral cone
\[C = \mathbb{R}_{\geq 0}Q.\]
cone
— Methodcone(A::MonoidAlgebra)
Given a monoid algebra with underlying monoid $Q$, this function returns the polyhedral cone $\mathbb{R}_{\geq 0}Q$ as a polyhedron.
This function is part of the experimental code in Oscar. Please read here for more details.
There is a correspondence between the homogeneous primes of the monoid algebra $k[Q]$ and the faces $F$ of $C$
\[F \mapsto k\{Q\setminus F\}.\]
faces
— Methodfaces(A::MonoidAlgebra)
Given a monoid algebra with underlying monoid $Q$, this function a list of all faces of the polyhedral cone $\mathbb{R}_{\geq 0}Q$ with their corresponding homogeneous prime ideals.
This function is part of the experimental code in Oscar. Please read here for more details.
Example
julia> kQ = monoid_algebra([[0,1],[1,1],[1,2]],QQ)
monoid algebra over rational field with cone of dimension 2
julia> kQ.algebra
Quotient
of multivariate polynomial ring in 3 variables over QQ graded by
x_1 -> [0 1]
x_2 -> [1 1]
x_3 -> [1 2]
by ideal (x_1*x_2 - x_3)
julia> cone(kQ)
Polyhedron in ambient dimension 2
julia> faces(kQ)
4-element Vector{Oscar.InjectiveResolutions.FaceQ}:
face corresponding to homogeneous prime ideal (x_1, x_2, x_3)
face corresponding to homogeneous prime ideal (x_1, x_3)
face corresponding to homogeneous prime ideal (x_2, x_3)
face corresponding to homogeneous prime ideal ()
Constructor
Let $v_1,\dots,v_n$ in $\mathbb{Z}^d$ be the generators of a monoid $Q$. The corresponding monoid algebra is
\[k[Q] \cong k[x^{v_1},\dots,x^{v_n}]\subseteq k[x_1,\dots, x_d].\]
monoid_algebra
— Methodmonoid_algebra(V_Q::Vector{Vector{Int}},k::Field)
Return the monoid algebra generated by monomials $x^{v_1},\dots,x^{v_n}\in k[x_1,\dots,x_n]$, where V_Q
$= v_1,\dots,v_n \in \mathbb{Z}^d$.
Examples
julia> kQ = monoid_algebra([[0,1],[1,1],[2,1]],QQ)
monoid algebra over rational field with cone of dimension 2
julia> kQ.algebra
Quotient
of multivariate polynomial ring in 3 variables over QQ graded by
x_1 -> [0 1]
x_2 -> [1 1]
x_3 -> [2 1]
by ideal (-x_1*x_3 + x_2^2)
This function is part of the experimental code in Oscar. Please read here for more details.
monoid_algebra
— Methodmonoid_algebra(B::Matrix{Int},k::Field)
Return the monoid algebra generated by monomials $x^{v_1},\dots,x^{v_n}\in k[x_1,\dots,x_d]$, where $v_1,\dots,v_n\in \mathbb{Z}^d$ are the columns of $M_Q$.
Examples
julia> M_Q = [1 0; 0 1]
2×2 Matrix{Int64}:
1 0
0 1
julia> monoid_algebra(M_Q,QQ)
monoid algebra over rational field with cone of dimension 2
This function is part of the experimental code in Oscar. Please read here for more details.
Irreducible decomposition
Given an ideal $I\subseteq k[Q]$, an irreducible decomposition consists of (intersection-)irreducible ideals $W_1,\dots,W_s\subseteq k[Q]$ such that
\[I = W_1 \cap \cdots \cap W_s.\]
irreducible_decomposition
— Methodirreducible_decomposition(I::MonoidAlgebraIdeal)
Return an irreducible decomposition of $I$.
Examples
julia> kQ = monoid_algebra([[1,0],[0,1]],QQ)
monoid algebra over rational field with cone of dimension 2
julia> x,y = gens(kQ)
2-element Vector{MonoidAlgebraElem{QQFieldElem, MonoidAlgebra{QQFieldElem, MPolyDecRing{QQFieldElem, QQMPolyRing}}}}:
x_1
x_2
julia> I = ideal(kQ,[x^4,x^2*y^2,y^4])
ideal over monoid algebra over rational field with cone of dimension 2 generated by x_1^4, x_1^2*x_2^2, x_2^4
julia> W = irreducible_decomposition(I)
2-element Vector{MonoidAlgebraIdeal{MonoidAlgebraElem{QQFieldElem, MonoidAlgebra{QQFieldElem, MPolyDecRing{QQFieldElem, QQMPolyRing}}}}}:
ideal over monoid algebra over rational field with cone of dimension 2 generated by x_1^2, x_1^2*x_2, x_2^4, x_1*x_2^4
ideal over monoid algebra over rational field with cone of dimension 2 generated by x_1^4, x_1^4*x_2, x_2^2, x_1*x_2^2
julia> I == intersect(W)
true
This function is part of the experimental code in Oscar. Please read here for more details.
Tests on Monoid Algebras
An affine semigroup ring is a normal domain if and only if the semigroup is saturated which means that it contains all the lattice points in the cone it generates. This can be checked algorithmically.
is_normal
— Methodis_normal(A::MonoidAlgebra{<:FieldElem, <:MPolyQuoRing})
Test if the given monoid algebra is normal by testing first the S2 and then the R1 condition.
Examples
julia> A = monoid_algebra([[4,0],[3,1],[1,3],[0,4]],QQ)
monoid algebra over rational field with cone of dimension 2
julia> is_normal(A)
false
This function is part of the experimental code in Oscar. Please read here for more details.