Hi All,
Dima and I have recently been thinking about starting on an implementation of subrings of multivariate polynomial rings, generated by a set of polynomials. I would like to detail our current thinking on this and welcome any feedback, suggestions or criticism. We are currently thinking of having it as a subclass of the MPolynomialRing_libsingular or MPolynomialRing_base class, though we're not necessarily set on this. Furthermore, the functionality for testing containment can be achieved utilising existing code as follows: consider F[f_1,...,f_k] as F-subalgebras of the F-algebra F[x_1,...,x_n], the ring of n-variate polynomials over F. The functionality for testing containment and other similar tasks will be implemented by computing (and caching?) a presentation of the subring F[f_1,...,f_k] as F[y_1,...,y_k]/I, for I the ideal of relations among the subring generators f_1,...,f_k. In particular, testing for containment of f in F[f_1,...,f_k] may be done by computing the inverse image of f under the map F[y_1,...,y_k]/I -> F[f_1,...,f_k]. We'd like to welcome suggestions on equality checking, though we imagine this will be achieved through some sort of unique representation. We expect we'll need to enforce that the parent ring is immutable, since otherwise the logic will quickly get extremely difficult. We're undecided on how the objects should be instantiated, namely whether there should be a standalone constructor (possibly accepting a parent ring as an argument), or if the parent ring should have a subring_generated_by() method returning a subring object, or something else entirely. Furthermore, if we do subclass it from the parent ring (which could easily not be the correct thing to do), there will be many (approximately 124 on my local installation) inherited methods and attributes, so if anyone has any advice or warnings for how to handle any of them, please let us know. Best, Bruno and Dima -- 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/0b1090c4-15ef-4b7b-9c4f-98da6a8c164cn%40googlegroups.com.