A warning is likely to show up in a lot of place in the current source code, isn't it?
Please consider integrating the recent flint implementation http://flintlib.org/sphinx/fmpz_mpoly.html http://flintlib.org/sphinx/fmpq_mpoly.html http://flintlib.org/sphinx/nmod_mpoly.html Having this interfaced is desirable and might help for the global design of multivariate polynomial rings in Sage. Vincent Le 27/07/2020 à 14:25, Ricardo Buring a écrit :
Dear sage-devel, I would like to drag up this old issue because it is a source of confusion and frustration for new users. The problem is that PolynomialRing uses (lib)Singular's ring without restricting the possible term orderings. Singular's ring is a polynomial ring _only if_ it is passed a "global" term ordering. If it is passed a "local" term ordering, then it is rather a localization of a polynomial ring. It is easy to see how this can be confusing when computing things that should be independent of the (global) term ordering, such as dimension (https://trac.sagemath.org/ticket/10708) or simply divisibility (https://ask.sagemath.org/question/52623/find-quotient-of-two-multivariate-polynomials-which-are-divisible/). 1. Can we add a warning about this current situation, e.g. in the PolynomialRing constructor? This was suggested on Ask SageMath: https://ask.sagemath.org/question/52699/suggestion-for-documentation-of-multivariate-polynomials/ The current documentation, "return the (...) polynomial ring (...)" is incomplete. 2. How much SageMath functionality depends on localizations, and is currently (ab)using PolynomialRing in this way? So far, I find: ToricIdeal, LetterplaceIdeal, InteractiveLPProblem, GroebnerStrategy (in tests), PathAlgebra, PathAlgebraElement, PathSemigroup, PowerSeriesRing, MPowerSeriesRing_generic, PolynomialSequence_generic (for no particular reason), AlgebraicScheme_subscheme_affine, MPolynomialIdeal (in tests). It's not that much, so it would (internally) not be that big a deal if the interface (the way to construct localizations of polynomial rings) changed. 3. How should these two functionalities of Singular (ideally) be exposed in SageMath? Easy but ugly: add phrases like "(or a localization thereof)" to the docs, and maybe add a localization flag to the PolynomialRing constructor to explicitly allow local orderings. I think it would be better to somehow separate the two. I suppose there should be a common base class, for simplicity of interaction with (lib)Singular. Could we add a constructor like PolynomialRingLocalization? Let that one accept the local orderings, and let PolynomialRing accept only global orderings. I guess the difficulty is to make everything work out with the parents and categories frameworks. Can somebody comment on that? By the way, it is a bit unfortunate that the interface to Singular's ring is called MPolynomialRing_libsingular rather than just Ring_libsingular (in view of this issue). Best regards, Ricardo
-- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sage-devel/04b104eb-28fb-51ca-4bf5-479931109d73%40gmail.com.