Skip to content

Saturation seems buggy for quotient rings #5490

@HechtiDerLachs

Description

@HechtiDerLachs

Try the following example:

P, (a, b, x, y, z) = QQ[:a, :b, :x, :y, :z]
I = ideal(P, [x^3 + x*y^2 - z^2, a*y - b*z, b*x - y, a*x - z, -a*z + x^2 + y^2, -a^2 + b*y + x, -a^3 + b^2*z + z, -a^2*b + b^2*y + y])

A, _ = quo(P, I)

FA = free_module(A, 8)
rel_mat = [0 0 0 3*a*z - 2*y^2 2*x*y -2*z 0 0; 0 0 0 0 3*a*z - 2*y^2 0 2*x*y -2*z; -6*a*z^2 + 4*y^2*z -4*x*y*z 4*z^2 -6*x*z -4*y*z 3*a*z - 2*y^2 -2*x*z 2*x*y; 0 0 0 6*x*y^2 - 9*z^2 2*y^3 6*x*z 4*x*y^2 -4*y*z; 0 0 0 -3*a*z + 2*y^2 -2*x*y 2*z 0 0; 0 0 0 0 -2*x*y^2 + 3*z^2 0 2*b*z^2 - 2*y^3 -2*x*z; 4*x*y^2*z - 6*z^3 -4*b*z^3 + 4*y^3*z 4*x*z^2 -6*a*z^2 + 6*y^2*z -4*x*y*z -2*x*y^2 + 3*z^2 -2*a*z^2 + 2*y^2*z 2*b*z^2 - 2*y^3; 0 0 0 -6*x*y^2 + 9*z^2 -2*y^3 -6*x*z -4*x*y^2 4*y*z]
rel_mat = matrix_space(A, 8, 8)(rel_mat)

U, inc_U = sub(FA, rel_mat)

J = ideal(A, x)

# saturation(U, J) # throws an error, too!

U_sat = Oscar._saturation(U.sub, J)

U_sat, _ = sub(FA, gens(U_sat))

all(x in U_sat for x in gens(U))

In my opinion the last statement should be true, but it returns false for me. The _saturation method delegates directly to singular and its signature suggests that it is suitable for quotient rings. Apparently this is an example where we get wrong results and it seems to me that the problem is actually inside Singular.

Ping @hannes14 , @wdecker , @jankoboehm .

I will try to provide a temporary workaround, soon. But I thought that this might be something that Singular developers want to look at?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions