File: degreesRing-doc.m2

package info (click to toggle)
macaulay2 1.17.1%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 68,376 kB
  • sloc: cpp: 102,995; ansic: 10,040; javascript: 6,019; sh: 3,506; makefile: 3,426; lisp: 727; yacc: 590; perl: 369; xml: 177; python: 141; lex: 65; awk: 3
file content (138 lines) | stat: -rw-r--r-- 5,148 bytes parent folder | download
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}
     }