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.

Reply via email to