#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_work                                 
   Priority:  major                                             |   Milestone:  
sage-4.7                                   
  Component:  algebra                                           |    Keywords:  
onesided twosided ideal noncommutative ring
     Author:                                                    |    Upstream:  
N/A                                        
   Reviewer:                                                    |      Merged:  
                                           
Work_issues:  Add examples; move code from ring.py to rings.py  |  
----------------------------------------------------------------+-----------

Comment(by SimonKing):

 Concerning examples.

 I suggest to make a standard example out of the following emulation of a
 certain very simple ideals of a free algebra, ''without'' letterplace:
 {{{
 sage: from sage.rings.noncommutative_ideals import Ideal_nc
 # mainly we need a 'reduce()' method. So, provide one!
 sage: class PowerIdeal(Ideal_nc):
 ....:     def __init__(self, R, n):
 ....:         self._power = n
 ....:         Ideal_nc.__init__(self,R,[x^n for x in R.gens()])
 ....:     def reduce(self,x):
 ....:         R = self.ring()
 ....:         return add([c*R(m) for c,m in x if len(m)<self._power],R(0))
 ....:
 sage: F.<x,y,z> = FreeAlgebra(QQ, 3)
 sage: I3 = PowerIdeal(F,3); I3
 Twosided Ideal (x^3, y^3, z^3) of Free Algebra on 3 generators (x, y, z)
 over Rational Field
 # We need to use super in order to access the generic quotient:
 sage: Q3.<a,b,c> = super(F.__class__,F).quotient(I3)
 sage: Q3
 Quotient of Free Algebra on 3 generators (x, y, z) over Rational Field by
 the ideal (x^3, y^3, z^3)
 sage: (a+b+2)^4
 16 + 32*x + 32*y + 24*x^2 + 24*x*y + 24*y*x + 24*y^2
 sage: Q3.is_commutative()
 False
 sage: I2 = PowerIdeal(F,2); I2
 Twosided Ideal (x^2, y^2, z^2) of Free Algebra on 3 generators (x, y, z)
 over Rational Field
 sage: Q2.<a,b,c> = super(F.__class__,F).quotient(I2)
 sage: Q2.is_commutative()
 True
 sage: (a+b+2)^4
 16 + 32*x + 32*y
 }}}

 I think I would be able to add this example as doc test tomorrow, also
 removing the whole ideal and quotient stuff from `sage.rings.ring.Ring` to
 `sage.categories.rings.Rings.ParentMethods`.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11068#comment:3>
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