# OO RWeilDivisor -- calculate module corresponding to divisor

## Synopsis

• Operator: SPACE
• Usage:
OO( D1 )
• Inputs:
• Outputs:

## Description

Get the associated module $O(D)$ of a Weil Divisor $D$. In the affine case, $O(D)$ is by definition the set of elements $f$ of the fraction field such that $D + Div(f) \geq 0$. We represent this as a module. In the projective case, $O(D)$ is the coherent sheaf of such elements, and hence we represent it as a graded module. For example, consider the following modules on $P^2$.

 i1 : R = ZZ/7[x,y,z]; i2 : D = divisor(x); o2 : WeilDivisor on R i3 : OO(D) 1 o3 = R o3 : R-module, free, degrees {-1} i4 : OO(2*D) 1 o4 = R o4 : R-module, free, degrees {-2} i5 : OO(0*D) 1 o5 = R o5 : R-module, free i6 : OO(-3*D) 1 o6 = R o6 : R-module, free, degrees {3}

Next, consider an example on $P^1 \times P^1$.

 i7 : R = QQ[x, y, u, v] / ideal(x * y - u * v); i8 : D1 = divisor(ideal(x, u)) o8 = Div(x, u) o8 : WeilDivisor on R i9 : D2 = divisor(ideal(x, v)) o9 = Div(x, v) o9 : WeilDivisor on R i10 : OO( D1 ) o10 = image {-1} | x v | {-1} | u y | 2 o10 : R-module, submodule of R i11 : OO(D1 + D2) o11 = image {-2} | x | {-2} | v | {-2} | u | {-2} | y | 4 o11 : R-module, submodule of R

To get the associated module $O(D)$ for a rational/real divisor $D$, we first obtain a new divisor $D'$ whose coefficients are the floor of the coefficients of $D$, and take $O(D')$ as $O(D)$.

 i12 : R = QQ[x, y, u, v] / ideal(x * y - u * v); i13 : D2 = divisor({3/5, -4/7, 9/4, -7/8}, {ideal(x, u), ideal(x, v), ideal(y, u), ideal(y, v)}, CoefficientType=>QQ) o13 = -7/8*Div(y, v) + 3/5*Div(x, u) + -4/7*Div(x, v) + 9/4*Div(y, u) o13 : QWeilDivisor on R i14 : OO( D2 ) o14 = image {-1} | y2 yv v2 | {-1} | u2 xu x2 | 2 o14 : R-module, submodule of R i15 : OO( floor(D2) ) o15 = image {-1} | y2 yv v2 | {-1} | u2 xu x2 | 2 o15 : R-module, submodule of R

Note that you can call the divisor constructor on the module you construct, but it will only produce a divisor up to linear equivalence (which can mean different things depending on whether or not you are keeping track of the grading).

 i16 : R = ZZ/11[x,y]; i17 : D = divisor(x*y/(x+y)) o17 = Div(x) + Div(y) + -Div(x+y) o17 : WeilDivisor on R i18 : divisor(OO(D)) o18 = 0, the zero divisor o18 : WeilDivisor on R i19 : divisor(OO(D), IsGraded=>true) o19 = Div(x) o19 : WeilDivisor on R

The output value of this function is stored in the divisor's cache.