Error in kernel function

13 views
Skip to first unread message

Charley Crissman

unread,
Dec 2, 2011, 9:10:45 PM12/2/11
to maca...@googlegroups.com
I'm using the PushForward package (currently hiding in Schubert2/pushFwd.m2) for some work in Schubert2.  I'm getting an error in the kernel function that I don't understand:

/usr/local/share/Macaulay2/Core/matrix3.m2:45:14:(1):[7]: error: assertion failed
/usr/local/share/Macaulay2/Core/matrix3.m2:45:14:(1):[7]: --entering debugger (type help to see debugger commands)
/usr/local/share/Macaulay2/Core/matrix3.m2:45:14-45:52: --source code:
             assert( degreesRing R === degreesRing G );

Here's what the program state looks like:

ii17 : R -- is QQ[h]/h^3

oo17 = B

oo17 : QuotientRing

ii18 : G

         QQ[X , X , X ]
             0   1   2
oo18 = ------------------
         3   6     3   2
       (X , X , X X , X )
         0   2   1 2   1

oo18 : QuotientRing

ii19 : degreesRing R

oo19 = ZZ[T]

oo19 : PolynomialRing

ii20 : degreesRing G

oo20 = ZZ[T]

oo20 : PolynomialRing


The error is arising when I call

kernel map(B^1,A^1,f,matB)

with B = QQ[h]/h^3 as above, matB = |1| over B, and the rest of the state:

ii16 : A

          QQ[E , x]
              0
oo16 = --------------
         6     3   2
       (x , E x , E )
             0     0

oo16 : QuotientRing

ii17 : f

                QQ[E , x]
                    0
oo17 = map(B,--------------,{0, h})
               6     3   2
             (x , E x , E )
                   0     0


Any advice on getting around this error?  I don't know what I could do to construct my rings differently so that they would have degreesRings that would compare as equal under ===

-Charley

Grayson, Daniel R.

unread,
Dec 3, 2011, 11:00:22 AM12/3/11
to maca...@googlegroups.com


On Dec 2, 2011, at 8:10 PM, Charley Crissman wrote:

> I'm using the PushForward package (currently hiding in Schubert2/pushFwd.m2) for some work in Schubert2. I'm getting an error in the kernel function that I don't understand:
>
> /usr/local/share/Macaulay2/Core/matrix3.m2:45:14:(1):[7]: error: assertion failed
> /usr/local/share/Macaulay2/Core/matrix3.m2:45:14:(1):[7]: --entering debugger (type help to see debugger commands)
> /usr/local/share/Macaulay2/Core/matrix3.m2:45:14-45:52: --source code:
> assert( degreesRing R === degreesRing G );

...

Hi, Charley.

I tried to reproduce the problem but couldn't.

Could you send a file containing code that producess the error to me at d...@math.uiuc.edu ? I'll
take a look at it. (Anything checked into the trunk you can assume I'll have.)

I'm traveling, so expect a slow response.

Charley Crissman

unread,
Dec 3, 2011, 4:34:42 PM12/3/11
to Macaulay2
I've got it figured out. It turns out that I had a bug somewhere else
that was causing the ring A above to have negatively graded elements.
Thanks for taking a look!

-C

Charley Crissman

unread,
Dec 3, 2011, 5:09:19 PM12/3/11
to Macaulay2
However: the following will produce the same issue:

C = QQ[x]
A = C[y]
B = C[z]
f = map(B,A,{z})
matB = matrix{{1_B}}
kernel map(B^1, A^1, f, matB)

In this case the two degreesRings are actually different, so it's no
surprise the assertion fails. I know that kernel is buggy about tower
rings; I'm not sure what ought to be done here. It's a bit strange to
me that kernel happily works with other tower rings; see for example
the last test in Schubert2/blowup-test.m2 .

-C

Grayson, Daniel R.

unread,
Dec 26, 2011, 5:33:13 PM12/26/11
to maca...@googlegroups.com
It will take some thought to figure out what the code ought to do
in your case. Meanwhile, do you need the multidegrees, or can you
make do with adding Join=>false to the creation of A and of B?

> --
> You received this message because you are subscribed to the Google Groups "Macaulay2" group.
> To post to this group, send email to maca...@googlegroups.com.
> To unsubscribe from this group, send email to macaulay2+...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/macaulay2?hl=en.
>

Reply all
Reply to author
Forward
0 new messages