Local Cohomology
Let $M$ be a finitely generated $\mathbb{Z}^d$-graded module over a monoid algebra $k[Q]$. Further, let $J\subseteq k[Q]$ be an ideal. The $i$-th local cohomology module of $M$, denoted $H^i_J(M)$, is obtained as follows:
Let
\[I^\bullet \colon 0 \to M \xrightarrow{\epsilon} I^0 \xrightarrow{d^0} I^1 \xrightarrow{d^1}\cdots \xrightarrow{d^{i-1}} I^i \xrightarrow{d^i} \cdots\]
be an injective resolution of $M$. Applying the left exact functor $\Gamma_J$, that maps a $\mathbb{Z}^d$-graded module $N$ to the submodule
\[\Gamma_I(N) = \{n \in \mid \exists n \in \mathbb{N} \colon n\cdot J^n = 0\},\]
to $I^\bullet$ we obtain the complex
\[\Gamma_J(I^\bullet) \colon 0 \to \Gamma_J(I^0) \xrightarrow{d^0} \Gamma_J(I^1) \xrightarrow{d^1}\cdots \xrightarrow{d^{i-1}} \Gamma_J(I^i) \xrightarrow{d^i} \cdots.\]
The $i$-th local cohomology module of $M$ supported on $J$ is the $i$-th cohomology module of $\Gamma_J(I^\bullet)$.
Cohomological degree zero
The zeroth local cohomology module of $M$ supported by $J$ is
\[H^0_J(M) = \Gamma_J(M) = \{m\in M \mid \exists n \in \mathbb{N} \colon m\cdot J^n = 0\}.\]
The function zeroth_local_cohomology
returns this submodule. The function is split off from the other degrees because it returns its result as a proper module in OSCAR while higher local cohomlogy modules are represented using sector partitions.
zeroth_local_cohomology
— Methodzeroth_local_cohomology(M::SubquoModule{T}, I::MonoidAlgebraIdeal) where {T<:MonoidAlgebraElem}
Computes the local cohomology module of $M$ supported on $I$ in cohomological degree zero.
Examples
julia> kQ = monoid_algebra([[0,1],[1,1],[2,1]],QQ)
monoid algebra over rational field with cone of dimension 2
julia> x,y,z = gens(kQ)
3-element Vector{MonoidAlgebraElem{QQFieldElem, MonoidAlgebra{QQFieldElem, MPolyQuoRing{MPolyDecRingElem{QQFieldElem, QQMPolyRingElem}}}}}:
x_1
x_2
x_3
julia> I_M = ideal(kQ,[x^2*z,x^4*y]) # M = k[Q]/I_M
ideal over monoid algebra over rational field with cone of dimension 2 generated by x_1^2*x_3, x_1^4*x_2
julia> m = ideal(kQ,[x,y,z]) #maximal ideal
ideal over monoid algebra over rational field with cone of dimension 2 generated by x_1, x_2, x_3
julia> H0 = zeroth_local_cohomology(quotient_ring_as_module(I_M),m)
Graded subquotient of graded submodule of kQ^1 with 1 generator
1: x_1^2*x_2*e[1]
by graded submodule of kQ^1 with 2 generators
1: x_1^2*x_3*e[1]
2: x_1^4*x_2*e[1]
This function is part of the experimental code in Oscar. Please read here for more details.
Sector Partition of Local Cohomology Module
The local cohomology module $H^i_J(M)$ are not finitely generated generated for $i>0$. However, sector partitions are a finite data structure for them.
A sector partition $\mathcal{S}$ of $H^i_J(M)$ consists of
- a finite partition $\mathbb{Z}^d = \sqcup_{S\in \mathcal{S}} S$ into sectors
- finite dimensional $k$-vector spaces $H_S$ for each sector $S\in \mathcal{S}$, and,
- maps between these vector spaces.
Now given $\alpha \in \mathbb{Z}^d$,
\[H^i_J(M)_\alpha \cong k^{\dim(H_S)} \text{ for } \alpha \in S.\]
For more details on sector partitions see, e.g., Chapter 13 of [MS05].
The function local_cohomology computes a sector partition of $H^i_I(M)$. For performance, multiple local cohomology modules $H^1_I(M),\dots,H^i_I(M)$ should be computed at once using the function local_cohomology_all
.
local_cohomology
— Methodlocal_cohomology(M::SubquoModule{T}, I::MonoidAlgebraIdeal, i::Integer) where {T<:MonoidAlgebraElem}
Compute a sector partition of the local cohomology module $H^i_I(M)$.
This function is part of the experimental code in Oscar. Please read here for more details.
local_cohomology_all
— Methodlocal_cohomology_all(M::SubquoModule{T}, I::MonoidAlgebraIdeal, i::Integer) where {T<:MonoidAlgebraElem}
For $1 \leq j \leq i $ compute sector partitions of the local cohomology modules $H^i_I(M))$. This function only computes one injective resolution of $M$ up to cohomological degree $i+1$.
This function is part of the experimental code in Oscar. Please read here for more details.
Data asssociated to Sector Partitions
Let H = local_cohomology(M,I,i)
be a sector partition of the local cohomology module $H^i_I(M)$. Then
H.M
refers to $M$,H.I
refers to $I$,H.i
refers toi
,H.sectors
refers to the finite partition of $\mathbb{Z}^d$ into sectors as polyhedron, and,H.maps
refers to the maps between the finite dimensional vector spaces.
Each sector S
of a sector partition consists of
- the finite dimensional $k$-vector space $H_S$ =
S.H
, - the sector as a polyhedron
S.sector
.
Tests on Local Cohomology Modules
To test vanishing of local cohomology independent of the internal representation use is_zero
:
is_zero
— Methodis_zero(S::SectorPartitionLC)
Given a sector partition of a local cohomology module, check if the local cohomology module is zero.