#11068: Basic implementation of one- and twosided ideals of non-commutative 
rings,
and quotients by twosided ideals
---------------------------+------------------------------------------------
   Reporter:  SimonKing    |          Owner:  AlexGhitza                        
         
       Type:  enhancement  |         Status:  needs_review                      
         
   Priority:  major        |      Milestone:  sage-4.7.2                        
         
  Component:  algebra      |       Keywords:  onesided twosided ideal 
noncommutative ring
Work_issues:               |       Upstream:  N/A                               
         
   Reviewer:               |         Author:  Simon King                        
         
     Merged:               |   Dependencies:  #10961, #9138, #11115, #11342     
         
---------------------------+------------------------------------------------
Changes (by SimonKing):

  * status:  needs_work => needs_review
  * dependencies:  #10961, #9138, #11115 => #10961, #9138, #11115, #11342
  * work_issues:  Print quotient ring elements if the cover has no variable
                  names =>


Comment:

 '''Please apply the new patch from #11342 before installing the new patch
 from here!'''

 I resolved the problem with printing quotient ring elements of matrix
 spaces, and while I was at it, I also enabled the creation of quotients of
 the Steenrod algebras.

 How's that?

 __String representation__

 The string representation of a quotient ring element is obtained from its
 representation in the cover ring. However, the variable names in the cover
 ring and the quotient ring may be different. That is taken care of by a
 local environment that temporarily changes the variable names in the cover
 ring.

 However, that won't work if the cover ring has no variable names: If there
 are no names, they can't be changed. And similarly, if the quotient ring
 has no names then one wouldn't know how to change the names from the cover
 ring.

 With the new patch, one can do:
 {{{
 sage: MS = MatrixSpace(GF(5),2,2)
 sage: I = MS*[MS.0*MS.1,MS.2+MS.3]*MS
 sage: Q = MS.quo(I)
 sage: Q.an_element()
 [1 0]
 [0 0]
 }}}

 __Cover rings with infinitely many generators__

 With the patch, we don't require the list of generators of the cover ring
 at initialisation time of the quotient ring. Hence, we can form quotient
 rings of Steenrod algebras. Here is a case where one has no variable
 names. Thus, the string representation of a quotient ring element must
 coincide with the string representation of a corresponding element in the
 cover ring.

 That's to say:
 {{{
 sage: S = SteenrodAlgebra(2)
 sage: I = S*[S.0+S.1]*S
 sage: Q = S.quo(I)
 sage: Q.an_element()
 Sq(1)
 }}}

 Note, however, that in order to be able to do ''real'' computations in the
 quotient ring, someone needs to implement a method `reduce()` for the
 involved ideal class!

 __Coping with #11342 in conjunction with #9138__

 #11342 is a dependency for #11115, which is a dependency for this ticket.

 Since today, there is a new patch at #11342, that fixes a problem with the
 Pari interface: On some machines, that problem would result in a segfault.

 The new patches at #11342 add a doctest, that needs to be modified if
 #11342 is combined with #9138 (reason: Some element class introduce at
 #11342 gets a different name when #9138 adds the category framework).

 Since both are dependencies for the ticket here, the new patch fixes the
 test.

 Needs review, again...

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11068#comment:26>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to