Hi! In the past I intensely used pexpect interfaces to GAP and even more to Singular. Recently I switched to using libgap, which turned out to be a good idea. Now I consider to replace "singular-via-pexpect" by libsingular. But I got stuck very early.
Setting: I am dealing with graded-homogeneous ideals over graded-commutative rings (i.e., even degree elements are in the centre, whereas odd-degree elements anti-commute with each other). The term order is given by a matrix. I need to compute Gröbner bases of such ideals, and for efficiency I am often imposing a degree bound. Also, I am using Singular's std() command in the form std(I,J), which computes a Gröbner basis of the ideal generated by I and J under the assumption that I is a Gröbner basis. A graded-commutative ring can easily be implemented using Singular's "super-commutative" rings. Ostensibly, they are wrapped in sage.rings.polynomial.plural.SCA. However: sage: from sage.rings.polynomial.plural import SCA sage: S = SCA(GF(3), ('x1','x2','x3','x4','x5'), [0,1,2]) sage: I = S*S.gens()*S sage: type(I) <class 'sage.rings.noncommutative_ideals.Ideal_nc'> sage: hasattr(I, 'groebner_basis') False sage: groebner = sage.libs.singular.function_factory.ff.groebner sage: groebner(I, ring=S) Traceback (most recent call last): ... TypeError: Cannot call Singular function 'groebner' with ring parameter of type '<class 'sage.rings.quotient_ring.QuotientRing_nc_with_category'>' I thought that a couple of years ago a Singular (or rather Plural) wrapper was created for ideals over non-commutative rings. Indeed, Singular's G-algebras and their ideals are wrapped to the extent that Gröbner bases can be computed. However, Gröbner basis computation over super-commutative algebras is a lot more efficient than over general G-algebras, if I recall correctly. On the other hand, I think I have been told at some point that if one creates a G-algebra that is in fact super-commutative, then Singular will notice and will automatically apply the more efficient specialised algorithms --- but I am not sure if I reacall that correctly. Questions: Is it true that Singular will automatically recognise whether a G-algebra is super-commutative? If yes: How to create a G-algebra whose term order is defined by a given matrix? How to then use std(I,J), with degree bound? If no: Is everything already available in Sage via libsingular? If yes: How? If no: Is there a ticket for it? Best regards, Simon -- 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 post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.