Skip to content

Commit c4c593a

Browse files
author
Matthias Koeppe
committed
src/sage/homology/graded_resolution.py: Use file-level # optional
1 parent 0c97bcf commit c4c593a

File tree

1 file changed

+61
-60
lines changed

1 file changed

+61
-60
lines changed

src/sage/homology/graded_resolution.py

Lines changed: 61 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# sage.doctest: optional - sage.libs.singular
12
r"""
23
Graded free resolutions
34
@@ -9,20 +10,20 @@
910
1011
sage: S.<x,y,z,w> = PolynomialRing(QQ)
1112
sage: I = S.ideal([y*w - z^2, -x*w + y*z, x*z - y^2])
12-
sage: r = I.graded_free_resolution(algorithm='minimal') # optional - sage.libs.singular
13-
sage: r # optional - sage.libs.singular
13+
sage: r = I.graded_free_resolution(algorithm='minimal')
14+
sage: r
1415
S(0) <-- S(-2)⊕S(-2)⊕S(-2) <-- S(-3)⊕S(-3) <-- 0
15-
sage: I.graded_free_resolution(algorithm='shreyer') # optional - sage.libs.singular
16+
sage: I.graded_free_resolution(algorithm='shreyer')
1617
S(0) <-- S(-2)⊕S(-2)⊕S(-2) <-- S(-3)⊕S(-3) <-- 0
17-
sage: I.graded_free_resolution(algorithm='standard') # optional - sage.libs.singular
18+
sage: I.graded_free_resolution(algorithm='standard')
1819
S(0) <-- S(-2)⊕S(-2)⊕S(-2) <-- S(-3)⊕S(-3) <-- 0
19-
sage: I.graded_free_resolution(algorithm='heuristic') # optional - sage.libs.singular
20+
sage: I.graded_free_resolution(algorithm='heuristic')
2021
S(0) <-- S(-2)⊕S(-2)⊕S(-2) <-- S(-3)⊕S(-3) <-- 0
2122
2223
::
2324
24-
sage: d = r.differential(2) # optional - sage.libs.singular
25-
sage: d # optional - sage.libs.singular
25+
sage: d = r.differential(2)
26+
sage: d
2627
Free module morphism defined as left-multiplication by the matrix
2728
[ y x]
2829
[-z -y]
@@ -31,30 +32,30 @@
3132
Multivariate Polynomial Ring in x, y, z, w over Rational Field
3233
Codomain: Ambient free module of rank 3 over the integral domain
3334
Multivariate Polynomial Ring in x, y, z, w over Rational Field
34-
sage: d.image() # optional - sage.libs.singular
35+
sage: d.image()
3536
Submodule of Ambient free module of rank 3 over the integral domain
3637
Multivariate Polynomial Ring in x, y, z, w over Rational Field
3738
Generated by the rows of the matrix:
3839
[ y -z w]
3940
[ x -y z]
40-
sage: m = d.image() # optional - sage.libs.singular
41-
sage: m.graded_free_resolution(shifts=(2,2,2)) # optional - sage.libs.singular
41+
sage: m = d.image()
42+
sage: m.graded_free_resolution(shifts=(2,2,2))
4243
S(-2)⊕S(-2)⊕S(-2) <-- S(-3)⊕S(-3) <-- 0
4344
4445
An example of multigraded resolution from Example 9.1 of [MilStu2005]_::
4546
4647
sage: R.<s,t> = QQ[]
4748
sage: S.<a,b,c,d> = QQ[]
4849
sage: phi = S.hom([s, s*t, s*t^2, s*t^3])
49-
sage: I = phi.kernel(); I # optional - sage.libs.singular
50+
sage: I = phi.kernel(); I
5051
Ideal (c^2 - b*d, b*c - a*d, b^2 - a*c) of
5152
Multivariate Polynomial Ring in a, b, c, d over Rational Field
52-
sage: P3 = ProjectiveSpace(S) # optional - sage.libs.singular
53-
sage: C = P3.subscheme(I) # twisted cubic curve # optional - sage.libs.singular
54-
sage: r = I.graded_free_resolution(degrees=[(1,0), (1,1), (1,2), (1,3)]) # optional - sage.libs.singular
55-
sage: r # optional - sage.libs.singular
53+
sage: P3 = ProjectiveSpace(S)
54+
sage: C = P3.subscheme(I) # twisted cubic curve
55+
sage: r = I.graded_free_resolution(degrees=[(1,0), (1,1), (1,2), (1,3)])
56+
sage: r
5657
S((0, 0)) <-- S((-2, -4))⊕S((-2, -3))⊕S((-2, -2)) <-- S((-3, -5))⊕S((-3, -4)) <-- 0
57-
sage: r.K_polynomial(names='s,t') # optional - sage.libs.singular
58+
sage: r.K_polynomial(names='s,t')
5859
s^3*t^5 + s^3*t^4 - s^2*t^4 - s^2*t^3 - s^2*t^2 + 1
5960
6061
AUTHORS:
@@ -114,18 +115,18 @@ def __init__(self, module, degrees=None, shifts=None, name='S', **kwds):
114115
115116
sage: S.<x,y,z,w> = PolynomialRing(QQ)
116117
sage: I = S.ideal([y*w - z^2, -x*w + y*z, x*z - y^2])
117-
sage: r = I.graded_free_resolution() # optional - sage.libs.singular
118-
sage: TestSuite(r).run(skip=['_test_pickling']) # optional - sage.libs.singular
118+
sage: r = I.graded_free_resolution()
119+
sage: TestSuite(r).run(skip=['_test_pickling'])
119120
120121
An overdetermined system over a PID::
121122
122123
sage: from sage.homology.free_resolution import FreeResolution
123124
sage: M = matrix([[x^2, 2*x^2],
124125
....: [3*x^2, 5*x^2],
125126
....: [5*x^2, 4*x^2]])
126-
sage: res = FreeResolution(M, graded=True); res # optional - sage.libs.singular
127+
sage: res = FreeResolution(M, graded=True); res
127128
S(0)⊕S(0) <-- S(-2)⊕S(-2) <-- 0
128-
sage: res._res_shifts # optional - sage.libs.singular
129+
sage: res._res_shifts
129130
[[2, 2]]
130131
"""
131132
super().__init__(module, name=name, **kwds)
@@ -167,18 +168,18 @@ def _repr_module(self, i):
167168
168169
sage: S.<x,y,z,w> = PolynomialRing(QQ)
169170
sage: I = S.ideal([y*w - z^2, -x*w + y*z, x*z - y^2])
170-
sage: r = I.graded_free_resolution() # optional - sage.libs.singular
171-
sage: r._repr_module(0) # optional - sage.libs.singular
171+
sage: r = I.graded_free_resolution()
172+
sage: r._repr_module(0)
172173
'S(0)'
173-
sage: r._repr_module(1) # optional - sage.libs.singular
174+
sage: r._repr_module(1)
174175
'S(-2)⊕S(-2)⊕S(-2)'
175-
sage: r._repr_module(2) # optional - sage.libs.singular
176+
sage: r._repr_module(2)
176177
'S(-3)⊕S(-3)'
177-
sage: r._repr_module(3) # optional - sage.libs.singular
178+
sage: r._repr_module(3)
178179
'0'
179180
180-
sage: r = I.graded_free_resolution(shifts=[-1]) # optional - sage.libs.singular
181-
sage: r._repr_module(0) # optional - sage.libs.singular
181+
sage: r = I.graded_free_resolution(shifts=[-1])
182+
sage: r._repr_module(0)
182183
'S(1)'
183184
"""
184185
self._maps # to set _res_shifts
@@ -204,14 +205,14 @@ def shifts(self, i):
204205
205206
sage: S.<x,y,z,w> = PolynomialRing(QQ)
206207
sage: I = S.ideal([y*w - z^2, -x*w + y*z, x*z - y^2])
207-
sage: r = I.graded_free_resolution() # optional - sage.libs.singular
208-
sage: r.shifts(0) # optional - sage.libs.singular
208+
sage: r = I.graded_free_resolution()
209+
sage: r.shifts(0)
209210
[0]
210-
sage: r.shifts(1) # optional - sage.libs.singular
211+
sage: r.shifts(1)
211212
[2, 2, 2]
212-
sage: r.shifts(2) # optional - sage.libs.singular
213+
sage: r.shifts(2)
213214
[3, 3]
214-
sage: r.shifts(3) # optional - sage.libs.singular
215+
sage: r.shifts(3)
215216
[]
216217
"""
217218
if i < 0:
@@ -240,18 +241,18 @@ def betti(self, i, a=None):
240241
241242
sage: S.<x,y,z,w> = PolynomialRing(QQ)
242243
sage: I = S.ideal([y*w - z^2, -x*w + y*z, x*z - y^2])
243-
sage: r = I.graded_free_resolution() # optional - sage.libs.singular
244-
sage: r.betti(0) # optional - sage.libs.singular
244+
sage: r = I.graded_free_resolution()
245+
sage: r.betti(0)
245246
{0: 1}
246-
sage: r.betti(1) # optional - sage.libs.singular
247+
sage: r.betti(1)
247248
{2: 3}
248-
sage: r.betti(2) # optional - sage.libs.singular
249+
sage: r.betti(2)
249250
{3: 2}
250-
sage: r.betti(1, 0) # optional - sage.libs.singular
251+
sage: r.betti(1, 0)
251252
0
252-
sage: r.betti(1, 1) # optional - sage.libs.singular
253+
sage: r.betti(1, 1)
253254
0
254-
sage: r.betti(1, 2) # optional - sage.libs.singular
255+
sage: r.betti(1, 2)
255256
3
256257
"""
257258
shifts = self.shifts(i)
@@ -282,9 +283,9 @@ def K_polynomial(self, names=None):
282283
EXAMPLES::
283284
284285
sage: S.<x,y,z,w> = PolynomialRing(QQ)
285-
sage: I = S.ideal([y*w - z^2, -x*w + y*z, x*z - y^2]) # optional - sage.libs.singular
286-
sage: r = I.graded_free_resolution() # optional - sage.libs.singular
287-
sage: r.K_polynomial() # optional - sage.libs.singular
286+
sage: I = S.ideal([y*w - z^2, -x*w + y*z, x*z - y^2])
287+
sage: r = I.graded_free_resolution()
288+
sage: r.K_polynomial()
288289
2*t^3 - 3*t^2 + 1
289290
"""
290291
if self._multigrade:
@@ -325,7 +326,7 @@ class GradedFiniteFreeResolution_free_module(GradedFiniteFreeResolution, FiniteF
325326
sage: R.<x> = QQ[]
326327
sage: M = matrix([[x^3, 3*x^3, 5*x^3],
327328
....: [0, x, 2*x]])
328-
sage: res = FreeResolution(M, graded=True); res # optional - sage.libs.singular
329+
sage: res = FreeResolution(M, graded=True); res
329330
S(0)⊕S(0)⊕S(0) <-- S(-3)⊕S(-1) <-- 0
330331
"""
331332
def __init__(self, module, degrees=None, *args, **kwds):
@@ -338,8 +339,8 @@ def __init__(self, module, degrees=None, *args, **kwds):
338339
sage: R.<x> = QQ[]
339340
sage: M = matrix([[x^3, 3*x^3, 5*x^3],
340341
....: [0, x, 2*x]])
341-
sage: res = FreeResolution(M, graded=True) # optional - sage.libs.singular
342-
sage: TestSuite(res).run(skip="_test_pickling") # optional - sage.libs.singular
342+
sage: res = FreeResolution(M, graded=True)
343+
sage: TestSuite(res).run(skip="_test_pickling")
343344
"""
344345
super().__init__(module, degrees=degrees, *args, **kwds)
345346

@@ -360,23 +361,23 @@ def _maps(self):
360361
sage: R.<x> = QQ[]
361362
sage: M = matrix([[x^3, 3*x^3, 5*x^3],
362363
....: [0, x, 2*x]])
363-
sage: res = FreeResolution(M, graded=True); res # optional - sage.libs.singular
364+
sage: res = FreeResolution(M, graded=True); res
364365
S(0)⊕S(0)⊕S(0) <-- S(-3)⊕S(-1) <-- 0
365-
sage: res._maps # optional - sage.libs.singular
366+
sage: res._maps
366367
[
367368
[ x^3 0]
368369
[3*x^3 x]
369370
[5*x^3 2*x]
370371
]
371-
sage: res._res_shifts # optional - sage.libs.singular
372+
sage: res._res_shifts
372373
[[3, 1]]
373374
374375
sage: I = R.ideal([x^4])
375-
sage: res = I.graded_free_resolution(shifts=[1], degrees=[2]); res # optional - sage.libs.singular
376+
sage: res = I.graded_free_resolution(shifts=[1], degrees=[2]); res
376377
S(-1) <-- S(-9) <-- 0
377-
sage: res._maps # optional - sage.libs.singular
378+
sage: res._maps
378379
[[x^4]]
379-
sage: res._res_shifts # optional - sage.libs.singular
380+
sage: res._res_shifts
380381
[[9]]
381382
"""
382383
def compute_degree(base, i):
@@ -468,15 +469,15 @@ class GradedFiniteFreeResolution_singular(GradedFiniteFreeResolution, FiniteFree
468469
469470
sage: S.<x,y,z,w> = PolynomialRing(QQ)
470471
sage: I = S.ideal([y*w - z^2, -x*w + y*z, x*z - y^2])
471-
sage: r = I.graded_free_resolution(); r # optional - sage.libs.singular
472+
sage: r = I.graded_free_resolution(); r
472473
S(0) <-- S(-2)⊕S(-2)⊕S(-2) <-- S(-3)⊕S(-3) <-- 0
473-
sage: len(r) # optional - sage.libs.singular
474+
sage: len(r)
474475
2
475476
476477
sage: I = S.ideal([z^2 - y*w, y*z - x*w, y - x])
477478
sage: I.is_homogeneous()
478479
True
479-
sage: r = I.graded_free_resolution(); r # optional - sage.libs.singular
480+
sage: r = I.graded_free_resolution(); r
480481
S(0) <-- S(-1)⊕S(-2)⊕S(-2) <-- S(-3)⊕S(-3)⊕S(-4) <-- S(-5) <-- 0
481482
"""
482483
def __init__(self, module, degrees=None, shifts=None, name='S', algorithm='heuristic', **kwds):
@@ -487,8 +488,8 @@ def __init__(self, module, degrees=None, shifts=None, name='S', algorithm='heuri
487488
488489
sage: S.<x,y,z,w> = PolynomialRing(QQ)
489490
sage: I = S.ideal([y*w - z^2, -x*w + y*z, x*z - y^2])
490-
sage: r = I.graded_free_resolution() # optional - sage.libs.singular
491-
sage: TestSuite(r).run(skip=['_test_pickling']) # optional - sage.libs.singular
491+
sage: r = I.graded_free_resolution()
492+
sage: TestSuite(r).run(skip=['_test_pickling'])
492493
"""
493494
super().__init__(module, degrees=degrees, shifts=shifts, name=name, **kwds)
494495
self._algorithm = algorithm
@@ -503,15 +504,15 @@ def _maps(self):
503504
TESTS::
504505
505506
sage: S.<x,y,z,w> = PolynomialRing(QQ)
506-
sage: I = S.ideal([y*w - z^2, -x*w + y*z, x*z - y^2]) # optional - sage.libs.singular
507-
sage: r = I.graded_free_resolution() # optional - sage.libs.singular
508-
sage: r._maps # optional - sage.libs.singular
507+
sage: I = S.ideal([y*w - z^2, -x*w + y*z, x*z - y^2])
508+
sage: r = I.graded_free_resolution()
509+
sage: r._maps
509510
[
510511
[-y x]
511512
[ z -y]
512513
[z^2 - y*w y*z - x*w y^2 - x*z], [-w z]
513514
]
514-
sage: r._res_shifts # optional - sage.libs.singular
515+
sage: r._res_shifts
515516
[[2, 2, 2], [3, 3]]
516517
"""
517518
from sage.libs.singular.singular import si2sa_resolution_graded

0 commit comments

Comments
 (0)