From 703f18c7132ce8660ceb26bb9426bd349dba62df Mon Sep 17 00:00:00 2001 From: user202729 <25191436+user202729@users.noreply.github.com> Date: Sun, 21 Sep 2025 09:39:50 +0700 Subject: [PATCH] Fix const polynomial conversion to Singular interface --- .../multi_polynomial_libsingular.pyx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx index eaf179e0b13..741b91dd7d6 100644 --- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx +++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx @@ -5298,6 +5298,25 @@ cdef class MPolynomial_libsingular(MPolynomial_libsingular_base): self._parent._singular_().set_ring() return self._repr_short_() + def _singular_(self, singular=None): + """ + Override :meth:`sage.structure.sage_object.SageObject._singular_` + to declare the type of ``self`` to be ``'poly'``. + Needed because even with ``setring``, constant polynomials are not considered + polynomials of the current ring. + + TESTS:: + + sage: R. = Zmod(5)[] + sage: a = singular(R(2)) + singular(R(2)) + singular(R(1)); a + 0 + sage: a == singular(R(0)) + True + """ + if singular is None: + from sage.interfaces.singular import singular + return singular(self._singular_init_(singular), type='poly') + def sub_m_mul_q(self, MPolynomial_libsingular m, MPolynomial_libsingular q): """ Return ``self - m*q``, where ``m`` must be a monomial and