1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
--- status: DRAFT
--- author(s): L. Gold, and Dan Grayson
--- notes:
document {
-- check this node for accuracy
Key => {(degreesRing,List),(degreesRing,ZZ)},
Headline => "the ring of degrees",
Usage => "degreesRing x",
Inputs => {
"x" => {ofClass{List,ZZ}, "; if a list, then a list of integers"}
},
Outputs => {
PolynomialRing => {
"the ring of Laurent polynomials whose monomials correspond to the degrees of the
monomials in a ring whose heft vector is ", TT "x", ", or, if ", TT "x", " is an integer, in a
ring with degree rank ", TT "x", " and no heft vector. See ", TO degreesMonoid, "."
}
},
PARA {
"This function produces a Laurent polynomial ring in ", TT "n", " variables ",
TT "T_0, ... , T_{n-1}", ", where ", TT "n", " is the length of ", TT "x", " if ", TT "x", " is a list and is ", TT "x", " otherwise.
If ", TT "n=1", ", then the single variable is ", TT "T", ". Use ", TO "use", " as in the following
example to assign the indeterminates of the ring to global variables, or assign the ring itself to a global
variable."
},
EXAMPLE lines ///
degreesRing 3
describe oo
T_0
use degreesRing 3
T_0
///,
PARA {
"Elements of this ring are used as variables for Poincare polynomials generated by ", TO "poincare", " and ", TO "poincareN", " as well as ",
TO2(hilbertSeries, "Hilbertseries"), "."
},
PARA{
"The degrees ring is a Laurent polynomial ring, as can be seen by
the option in the definition of the ring that says ",
TT "Inverses => true", ". The monomial ordering
used in the degrees ring is ", TT "RevLex", " so the polynomials
in it will be displayed with the smallest exponents first,
because such polynomials are often used as Hilbert series."
},
EXAMPLE lines ///
W = degreesRing {1,2,5}
describe W
use W
(1+T_1+T_2^2)^3 -* no-capture-flag *-
degreesRing 3
describe oo
R = QQ[x,y,Degrees => {{1,-2},{2,-1}}];
heft R
describe degreesRing R
S = QQ[x,y,Degrees => {-2,1}];
heft S
describe degreesRing S
///,
SeeAlso => {
"poincare", "poincareN", "hilbertFunction", "hilbertSeries", "hilbertPolynomial", "reduceHilbert",
"division in polynomial rings with monomials less than 1", heft, use }
}
undocumented {(degreesRing, QuotientRing), (degreesRing,PolynomialRing)}
document {
Key => degreesRing,
Headline => "the ring of degrees"
}
document {
Key => {(degreesRing,Ring),(degreesRing,Ideal),(degreesRing, Module),(degreesRing,GeneralOrderedMonoid)},
Headline => "the ring of degrees",
Usage => "degreesRing R",
Inputs => {
"R"
},
Outputs => {
PolynomialRing => "actually Laurent polynomial ring"
},
"This function produces a Laurent polynomial ring in n
variables", TT "T_0, ... , T_{n-1}"," whose monomials are the
degrees of elements of the given ring. If n=1, then the variable
has no subscript.",
EXAMPLE {
"R = ZZ [x, y];",
"degreesRing R",
"S = ZZ[x,y, Degrees=>{{1,1},{1,1}}];",
"degreesRing S"
}
}
undocumented { (degreesMonoid,Ring) }
document {
Key => {degreesMonoid,(degreesMonoid, GeneralOrderedMonoid),(degreesMonoid, ZZ),(degreesMonoid, List),(degreesMonoid, Module),(degreesMonoid, PolynomialRing),(degreesMonoid, QuotientRing)},
Headline => "get the monoid of degrees",
SYNOPSIS (
Usage => "degreesMonoid x",
Inputs => {
"x" => {ofClass{List,ZZ}, "a list of integers, or a single integer"}
},
Outputs => {
{"the monoid with inverses whose variables have degrees given by the elements of ", TT "x", ", and whose weights in
the first component of the monomial ordering are minus the degrees. If ", TT "x", " is an
integer, then the number of variables is ", TT "x", ", the degrees are all ", TT "{}", ",
and the weights are all ", TT "-1", "."
}
},
PARA {
"This is the monoid whose elements correspond to degrees of rings with heft vector ", TT "x", ",
or, in case ", TT "x", " is an integer, of rings with degree rank ", TT "x", " and no heft vector;
see ", TO "heft vectors", ".
Hilbert series and polynomials of modules over such rings are elements of its monoid ring over ", TO "ZZ", ";
see ", TO "hilbertPolynomial", " and ", TO "hilbertSeries", " The monomial ordering
is chosen so that the Hilbert series, which has an infinite number of terms,
is bounded above by the weight."
},
EXAMPLE lines ///
degreesMonoid {1,2,5}
degreesMonoid 3
///
),
SYNOPSIS (
Usage => "degreesMonoid M",
Inputs => { "M" => {ofClass{Module,PolynomialRing,QuotientRing}} },
Outputs => { {"the degrees monoid for (the ring of) ", TT "M" } },
EXAMPLE lines ///
R = QQ[x,y,Degrees => {{1,-2},{2,-1}}];
heft R
degreesMonoid R
S = QQ[x,y,Degrees => {-2,1}];
heft S
degreesMonoid S^3
///
),
SeeAlso => {heft, use, degreesRing}
}
|