#4539: plural wrapper
--------------------------------------------------+-------------------------
Reporter: burcin | Owner:
OleksandrMotsak, AlexanderDreyer
Type: enhancement | Status: needs_work
Priority: major | Milestone: sage-4.7.3
Component: algebra | Keywords:
libsingular plural wrapper sd10 sd23.5 sd24 sd34
Work_issues: Rebase wrt 4.7.3.alpha3 and #10903 | Upstream: N/A
Reviewer: Simon King, Alexander Dreyer | Author: Michael
Brickenstein, Burcin Erocal, Oleksandr Motsak, Alexander Dreyer, Simon King
Merged: | Dependencies: #11068
#11316 #11856
--------------------------------------------------+-------------------------
Comment(by SimonKing):
I didn't post my rebased patches yet, since I need to fix a few doctest
errors.
Actually, the first error is a clear improvement. We have the following
doctest:
{{{
sage: A.<x,y,z> = FreeAlgebra(QQ, 3)
sage: H = A.g_algebra({y*x:x*y-z, z*x:x*z+2*x, z*y:y*z-2*y})
sage: H.inject_variables()
Defining x, y, z
sage: I = H.ideal([y^2, x^2,
z^2-H.one_element()],coerce=False)
sage: G = vector(I.gens()); G
d...: UserWarning: You are constructing a free module
over a noncommutative ring. Sage does not have a concept
of left/right and both sided modules, so be careful.
It's also not guaranteed that all multiplications are
done from the right side.
d...: UserWarning: You are constructing a free module
over a noncommutative ring. Sage does not have a concept
of left/right and both sided modules, so be careful.
It's also not guaranteed that all multiplications are
done from the right side.
(y^2, x^2, z^2 - 1)
sage: M = I.syzygy_module()
}}}
With #10903 applied, one gets 9 Syzygies:
{{{
sage: M[0]
(-z^2 - 8*z - 15, 0, y^2)
sage: M[1]
(0, -z^2 + 8*z - 15, x^2)
sage: M[2]
(x^2*z^2 + 8*x^2*z + 15*x^2, -y^2*z^2 + 8*y^2*z - 15*y^2, -4*x*y*z + 2*z^2
+ 2*z)
sage: M[3]
(x^2*y*z^2 + 9*x^2*y*z - 6*x*z^3 + 20*x^2*y - 72*x*z^2 - 282*x*z - 360*x,
-y^3*z^2 + 7*y^3*z - 12*y^3, 6*y*z^2)
sage: M[4]
(x^3*z^2 + 7*x^3*z + 12*x^3, -x*y^2*z^2 + 9*x*y^2*z - 4*y*z^3 - 20*x*y^2 +
52*y*z^2 - 224*y*z + 320*y, -6*x*z^2)
sage: M[5]
(x^2*y^2*z + 4*x^2*y^2 - 8*x*y*z^2 - 48*x*y*z + 12*z^3 - 64*x*y + 108*z^2
+ 312*z + 288, -y^4*z + 4*y^4, 0)
sage: M[6]
(2*x^3*y*z + 8*x^3*y + 9*x^2*z + 27*x^2, -2*x*y^3*z + 8*x*y^3 - 12*y^2*z^2
+ 99*y^2*z - 195*y^2, -36*x*y*z + 24*z^2 + 18*z)
sage: M[7]
(x^4*z + 4*x^4, -x^2*y^2*z + 4*x^2*y^2 - 4*x*y*z^2 + 32*x*y*z - 6*z^3 -
64*x*y + 66*z^2 - 240*z + 288, 0)
sage: M[8]
(x^3*y^2*z + 4*x^3*y^2 + 18*x^2*y*z - 36*x*z^3 + 66*x^2*y - 432*x*z^2 -
1656*x*z - 2052*x, -x*y^4*z + 4*x*y^4 - 8*y^3*z^2 + 62*y^3*z - 114*y^3,
48*y*z^2 - 36*y*z)
sage: M[9]
Traceback (most recent call last):
...
IndexError: matrix index out of range
}}}
However, without #10903 (and with the original patches applied), one gets
what is expected in the doc tests, namely 10 Syzygies -- but two of them
are identical:
{{{
sage: M[0]
(-z^2 - 8*z - 15, 0, y^2)
sage: M[1]
(0, -z^2 + 8*z - 15, x^2)
sage: M[2]
(x^2*z^2 + 8*x^2*z + 15*x^2, -y^2*z^2 + 8*y^2*z - 15*y^2, -4*x*y*z + 2*z^2
+ 2*z)
sage: M[3]
(x^2*y*z^2 + 9*x^2*y*z - 6*x*z^3 + 20*x^2*y - 72*x*z^2 - 282*x*z - 360*x,
-y^3*z^2 + 7*y^3*z - 12*y^3, 6*y*z^2)
sage: M[4]
(x^3*z^2 + 7*x^3*z + 12*x^3, -x*y^2*z^2 + 9*x*y^2*z - 4*y*z^3 - 20*x*y^2 +
52*y*z^2 - 224*y*z + 320*y, -6*x*z^2)
sage: M[5]
(x^2*y^2*z + 4*x^2*y^2 - 8*x*y*z^2 - 48*x*y*z + 12*z^3 - 64*x*y + 108*z^2
+ 312*z + 288, -y^4*z + 4*y^4, 0)
sage: M[6]
(2*x^3*y*z + 8*x^3*y + 9*x^2*z + 27*x^2, -2*x*y^3*z + 8*x*y^3 - 12*y^2*z^2
+ 99*y^2*z - 195*y^2, -36*x*y*z + 24*z^2 + 18*z)
sage: M[7]
(2*x^3*y*z + 8*x^3*y + 9*x^2*z + 27*x^2, -2*x*y^3*z + 8*x*y^3 - 12*y^2*z^2
+ 99*y^2*z - 195*y^2, -36*x*y*z + 24*z^2 + 18*z)
sage: M[8]
(x^4*z + 4*x^4, -x^2*y^2*z + 4*x^2*y^2 - 4*x*y*z^2 + 32*x*y*z - 6*z^3 -
64*x*y + 66*z^2 - 240*z + 288, 0)
sage: M[9]
(x^3*y^2*z + 4*x^3*y^2 + 18*x^2*y*z - 36*x*z^3 + 66*x^2*y - 432*x*z^2 -
1656*x*z - 2052*x, -x*y^4*z + 4*x*y^4 - 8*y^3*z^2 + 62*y^3*z - 114*y^3,
48*y*z^2 - 36*y*z)
sage: M[7]==M[6]
True
}}}
So, the old Singular version forgot to remove a redundant Syzygy.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/4539#comment:107>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.