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 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
|
--- status: DRAFT
--- author(s): L. Gold
--- notes: show ex of eventually = HF
document {
Key => hilbertPolynomial,
Headline => "compute the Hilbert polynomial",
"In a singly graded ambient ring, the ",
TO2(hilbertFunction, "Hilbert function"),
" eventually is a polynomial called the Hilbert polynomial. By
default this polynomial is written in terms of the Hilbert
polynomials of projective spaces because it is a good form for
extracting geometric information from the polynomial. The Hilbert
polynomial of ", TT "P^i", " is ", TT "z |--> binomial(z + i, i).",
SeeAlso => {"degreesRing", "reduceHilbert", "poincare", "poincareN",
"hilbertSeries", "hilbertFunction"}
}
document {
Key => (hilbertPolynomial,Ring),
Headline => "compute the Hilbert polynomial of the ring",
Usage => "hilbertPolynomial R",
Inputs => {
"R" => Ring
},
Outputs => {
ProjectiveHilbertPolynomial => "unless the option Projective is false"
},
"We compute the ", TO2(hilbertPolynomial, "Hilbert polynomial"),
" of a coordinate ring of the rational quartic curve in ",
TT "P^3.",
EXAMPLE {
"R = ZZ/101[a..d];",
"S = coimage map(R, R, {a^4, a^3*b, a*b^3, b^4});",
"presentation S",
"h = hilbertPolynomial S",
"hilbertPolynomial(S, Projective=>false)"
},
"The rational quartic curve in ", TT "P^3", " is therefore 'like'
4 copies of ", TT "P^1", ", with three points missing. One can
see this by noticing that there is a deformation of the rational
quartic to the union of 4 lines, or 'sticks', which intersect in
three successive points.",
PARA{},
"These Hilbert polynomials can serve as ",
TO2 (hilbertFunction,"Hilbert functions"),
" too since the values of the Hilbert polynomial eventually are
the same as the Hilbert function. ",
EXAMPLE {
"apply(5, k-> h(k))",
"apply(5, k-> hilbertFunction(k,S))"
}
}
document {
Key => (hilbertPolynomial,Module),
Headline => "compute the Hilbert polynomial of the module",
Usage => "hilbertPolynomial M",
Inputs => {
"M" => Module
},
Outputs => {
ProjectiveHilbertPolynomial => "unless the option Projective is false"
},
"We compute the ", TO2(hilbertPolynomial, "Hilbert polynomial"),
" of a module.",
EXAMPLE {
"R = QQ[a..d];",
"M = module monomialCurveIdeal(R, {1,3,4});",
"h = hilbertPolynomial M",
"hilbertPolynomial(M, Projective=>false)"
},
PARA{},
-- "These Hilbert polynomials can serve as ",
-- TO2 (hilbertFunction,"Hilbert functions"),
-- " too since the values of the Hilbert polynomial eventually are
-- the same as the Hilbert function. ",
-- EXAMPLE {
-- "apply(5, k-> h(k))",
-- "apply(5, k-> hilbertFunction(k,M))"
-- }
}
document {
Key => (hilbertPolynomial,CoherentSheaf),
Headline => "compute the Hilbert polynomial of the coherent sheaf",
Usage => "hilbertPolynomial S",
Inputs => {
"S"
},
Outputs => {
ProjectiveHilbertPolynomial => "unless the option Projective is false"
},
"We compute the ", TO2(hilbertPolynomial, "Hilbert polynomial"),
" of a coherent sheaf.",
EXAMPLE {
"R = ZZ/101[x_0..x_2];",
"V = Proj R;",
"S = sheaf(image matrix {{x_0^3+x_1^3+x_2^3}})",
"h = hilbertPolynomial S",
"hilbertPolynomial(S, Projective=>false)"
}
}
document {
Key => (hilbertPolynomial,Ideal),
Headline => "compute the Hilbert polynomial of the quotient of
the ambient ring by the ideal",
Usage => "hilbertPolynomial I",
Inputs => {
"I" => Ideal
},
Outputs => {
ProjectiveHilbertPolynomial => "unless the option Projective is false"
},
"We compute the ", TO2(hilbertPolynomial, "Hilbert polynomial"),
" of the quotient of the ambient ring by an ideal.",
EXAMPLE {
"R = QQ[a..d];",
"I = monomialCurveIdeal(R, {1,3,4});",
"h = hilbertPolynomial I",
"hilbertPolynomial (R/I)",
"hilbertPolynomial(I, Projective=>false)"
},
PARA{},
"These Hilbert polynomials can serve as ",
TO2 (hilbertFunction,"Hilbert functions"),
" too since the values of the Hilbert polynomial eventually are
the same as the Hilbert function.",
EXAMPLE {
"apply(10, k-> h(k))",
"apply(10, k-> hilbertFunction(k,I))"
},
Caveat => {
"As is often the case, calling this function on an ideal ",
TT "I", " actually computes it for ", TT "R/I", " where ",
TT "R", " is the ring of ", TT "I", "."
}
}
document {
Key => (hilbertPolynomial,ProjectiveVariety),
Headline => "compute the Hilbert polynomial of the projective variety",
Usage => "hilbertPolynomial V",
Inputs => {
"V" => ProjectiveVariety
},
Outputs => {
ProjectiveHilbertPolynomial => "unless the option Projective is false"
},
"We compute an example of the ",
TO2(hilbertPolynomial, "Hilbert polynomial"), " of a projective
Hilbert variety. This is the same as the Hilbert polynomial of
its coordinate ring.",
EXAMPLE {
"R = QQ[a..d];",
"I = monomialCurveIdeal(R, {1,3,4});",
"V = Proj(R/I)",
"h = hilbertPolynomial V",
"hilbertPolynomial(V, Projective=>false)"
},
PARA{},
"These Hilbert polynomials can serve as ",
TO2 (hilbertFunction,"Hilbert functions"),
" too since the values of the Hilbert polynomial eventually are
the same as the Hilbert function of the sheaf of rings or of the underlying ring.",
EXAMPLE {
"apply(5, k-> h(k))",
"apply(5, k-> hilbertFunction(k,ring V))"
}
}
document {
Key => [hilbertPolynomial, Projective],
Headline => "choose how to display the Hilbert polynomial",
Usage => "hilbertPolynomial(...,Projective => b",
Inputs => {
"b" => Boolean => "either true or false"
},
TT "Projective => true", " is an option to ", TO "hilbertPolynomial",
" which specifies that the Hilbert polynomial produced should be
expressed in terms of the Hilbert polynomials of projective
spaces. This is the default.",
PARA{},
TT "Projective => false", " is an option to ", TO "hilbertPolynomial",
" which specifies that the Hilbert polynomial produced should be
expressed as a polynomial in the variable ", TT "i", ".",
PARA{},
"We compute the ", TO2(hilbertPolynomial, "Hilbert polynomial"),
" of a coordinate ring of the rational quartic curve in ",
TT "P^3.",
EXAMPLE {
"R = ZZ/101[a..d];",
"S = coimage map(R, R, {a^4, a^3*b, a*b^3, b^4});",
"hilbertPolynomial S",
"hilbertPolynomial(S, Projective=>false)"
},
"When the option Projective is false, the variable ",
TT "i", " is a local variable. The command ",
TT "use ring", "will make ", TT "i",
"into a global variable.",
SeeAlso => "ProjectiveHilbertPolynomial"
}
|