#18204: Refactor and generalize QuotientRing and QuotientModuleWithBasis
-------------------------------+------------------------
Reporter: nthiery | Owner:
Type: enhancement | Status: new
Priority: major | Milestone: sage-6.7
Component: algebra | Resolution:
Keywords: | Merged in:
Authors: | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
Dependencies: | Stopgaps:
-------------------------------+------------------------
Changes (by nthiery):
* type: PLEASE CHANGE => enhancement
* component: PLEASE CHANGE => algebra
Old description:
New description:
`sage.rings.quotient_ring.QuotientRing` and
`sage.modules.with_basis.subquotient.QuotientModuleWithBasis` are two
implementations of quotient that share some common features.
In both cases, the algorithmic relies on having a reduce method for
the submodule/ideal one is quotienting by: the reduce method
shall be a additive linear map on the ambient module so that
{{{
reduce(x) == reduce(y) iff x==y [submodule]
}}}
This algorithmic part would be valid for any module. Actually for any
commutative additive group.
On the other hand, the data structures differ: in `QuotientRing`
elements are represented by wrapping element of the ambient space. In
`QuotientModuleWithBasis`, the indexing set of a subset `B` of the
basis of ``self`` that spans some supplementary of ``submodule`` is
determined explicitly (user-specified or computed). Elements are
represented in the module spanned by those indices. Depending on the
context both data structures can be helpful.
TODO:
- Generalize `QuotientRing` to `QuotientXXX` to handle any commutative
additive group. Update the `quotient` method accordingly, and add an
option to choose the data structure when relevant.
- Let `QuotientModuleWithBasis` inherit from the above.
- Get all the additional structure (quotient ring, ...) from the
categories `(Rings().Quotient(), ...)`.
- Explore if some of the other existing implementation of quotients in
Sage could be refactored and simplified.
--
--
Ticket URL: <http://trac.sagemath.org/ticket/18204#comment:1>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.