File: numgens-doc.m2

package info (click to toggle)
macaulay2 1.21%2Bds-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 133,096 kB
  • sloc: cpp: 110,377; ansic: 16,306; javascript: 4,193; makefile: 3,821; sh: 3,580; lisp: 764; yacc: 590; xml: 177; python: 140; perl: 114; lex: 65; awk: 3
file content (148 lines) | stat: -rw-r--r-- 4,277 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
139
140
141
142
143
144
145
146
147
148
--- status: Draft
--- author(s): MES
--- notes: 

undocumented{(numgens, InexactField)}

document { 
     Key => numgens,
     Headline => "the number of generators",
     SeeAlso => {}
     }
document { 
     Key => (numgens,Module),
     Headline => "number of generators of a module",
     Usage => "numgens M",
     Inputs => {
	  "M",
	  },
     Outputs => {
	  ZZ => "number of generators of M"
	  },
     "In Macaulay2, each module comes equipped with a matrix of 
     generators.  It is the number of columns of this matrix 
     which is returned.  If the module is graded, this may or 
     may not be the number of minimal generators.",
     EXAMPLE {
	  "R = QQ[a..d];",
	  "M = ker vars R",
     	  "generators M",
	  "numgens M"
	  },
     "The number of generators of a free module is its rank.",
     EXAMPLE {
	  "numgens R^10"
	  },
     SeeAlso => {generators, trim, prune, mingens, ker,vars}
     }
document { 
     Key => (numgens, Monoid), -- TODO: combine with (numgens, Ring) below
     Headline => "number of generators of a monoid",
     Usage => "numgens M",
     Inputs => {
	  "M"
	  },
     Outputs => {
	  ZZ => "number of generators of M"
	  },
     
     EXAMPLE {
	  "M = monoid[x_1..x_10];",
	  "numgens M"
	  },
     SeeAlso => {monoid}
     }
document { 
     Key => (numgens,Ideal),
     Headline => "number of generators of an ideal",
     Usage => "numgens I",
     Inputs => {
	  "I"
	  },
     Outputs => {
	  ZZ => "number of generators of I"
	  },
     "In Macaulay2, each ideal comes equipped with a matrix of generators.  It is the
     number of columns of this matrix that is returned.  If the ideal is homogeneous,
     this may or may not be the number of minimal generators.",
     EXAMPLE {
	  "R = QQ[a..d];",
	  "I = ideal(a^2-b*d, a^2-b*d, c^2, d^2);",
	  "numgens I"
	  },
     PARA{},
     "In order to find a more efficient set of generators, use ",
     TO mingens, " or ", TO trim, ".",
     EXAMPLE {
	  "mingens I",
	  "numgens trim I"
	  },
     SeeAlso => {mingens, trim, generators}
     }
document { 
     Key => (numgens,CoherentSheaf),
     Headline => "the number of generators of the underlying module",
     Usage => "numgens F",
     Inputs => {
	  "F"
	  },
     Outputs => {
	  ZZ => {"number of generators of the underlying module ", TT "M", " of ", TT "F"}
	  },
     "In Macaulay2, each coherent sheaf comes equipped with a module over
     the coordinate ring.  In the homogeneous case, this is not 
     necessarily the number of generators of the sum of twists ", 
     TT "H^0(F(d))", ", summed over all d, which in fact could be infinitely
     generated.",
     EXAMPLE {
	  "R = QQ[a..d]/(a^3+b^3+c^3+d^3)",
	  "X = Proj R;",
	  "T' = cotangentSheaf X",
     	  "numgens T'",
	  "module T'"
	  },
     SeeAlso => {(module,CoherentSheaf),tangentSheaf}
     }
document { 
     Key => {(numgens,Ring),(numgens, EngineRing),(numgens, FractionField),(numgens, MonomialIdeal),(numgens, PolynomialRing),(numgens, QuotientRing)},
     Headline => "number of generators of a polynomial ring",
     Usage => "numgens R",
     Inputs => {
	  "R"
	  },
     Outputs => {
	  ZZ => "number of generators of R over the coefficient ring"
	  },
     "If the ring ", TT "R", " is a fraction ring or a (quotient of a) polynomial ring, the number
     returned is the number of generators of ", TT "R", " over the coefficient ring.
     In all other cases, the number of generators is zero.",
     EXAMPLE {
	  "numgens ZZ",
	  "A = ZZ[a,b,c];",
	  "numgens A",
	  "KA = frac A",
	  "numgens KA"
	  },
     "If the ring is polynomial ring over another polynomial ring, then only the 
     outermost variables are counted.",
     EXAMPLE {
	  "B = A[x,y];",
	  "numgens B",
	  "C = KA[x,y];",
	  "numgens C",
	  },
     "In this case, use the ", TO "CoefficientRing", " option to ", TO generators, " to obtain the complete set of generators.",
     EXAMPLE {
     	  "g = generators(B, CoefficientRing=>ZZ)",
	  "#g"
	  },
     "Galois fields created using ", TO GF, " have zero generators, but their underlying
     polynomial ring has one generators.",
     EXAMPLE {
	  "K = GF(9,Variable=>a)",
	  "numgens K",
	  "R = ambient K",
	  "numgens R"
	  },
     SeeAlso => {generators, minPres, GF, ambient}
     }