#4539: plural wrapper
------------------------------------------+---------------------------------
   Reporter:  burcin                      |          Owner:  OleksandrMotsak, 
AlexanderDreyer                
       Type:  enhancement                 |         Status:  needs_work         
                             
   Priority:  major                       |      Milestone:  sage-4.7.2         
                             
  Component:  algebra                     |       Keywords:  libsingular plural 
wrapper sd10 sd23.5 sd24 sd34
Work_issues:  Quotients and normal forms  |       Upstream:  N/A                
                             
   Reviewer:                              |         Author:                     
                             
     Merged:                              |   Dependencies:  #11068 #11316 
#11856                            
------------------------------------------+---------------------------------

Old description:

> During SD10 in Nancy, Michael Brickenstein and Burcin Erocal worked on
> making Plural (the non-commutative extension of Singular) accessible from
> Sage. Burcin and Michael also worked at the Plural wrapper on SD 23.5 in
> Kaiserslautern. Oleksandr Motsak and Alexander Dreyer continued this at
> SD 24 in Linz.
>
> The patches that resulted from this work are attached.
>
> Newest functionality:
>
>  * non-commutative rings/polynomials/ideals are fully featured classes
> now (no deriving from commutative ones)!
>  * coercion from basering/Integer types (still needs tests)
>  * flag to check degeneracy conditions on init
>  * relations for non-commutative rings
>  * most relevant functions for rings/polynomials/ideals (mostly adopted
> from MPolynomialRing_libsingular/MPolynomialRing_libsingular/...) e.g.
> std/twostd/syzygy_module/lc/lm/lt/monomial operations
>  * RingWrap and TermOrder were extended
>  * quick and dirty conversion of RingWrap to Sage rings (needs some care
> as the resulting rings may not be unique and therefore may confuse
> coercion)
>  * quotient of a non-commutative ring by a two-sided Groebner basis
>  * shortcut to create graded commutative algebras: SCA
>
> Possible topics that need work are:
>
>  * put the files in sage/algebra/ ???
>  * make sure element does not export functions it doesn't support (e.g.
> gcd)
>  * predefined structures from the library
>
> '''__Apply__'''
>
>  * [attachment:trac4539_libplural.patch]
>  * [attachment:trac4539_pickling.patch]

New description:

 During SD10 in Nancy, Michael Brickenstein and Burcin Erocal worked on
 making Plural (the non-commutative extension of Singular) accessible from
 Sage. Burcin and Michael also worked at the Plural wrapper on SD 23.5 in
 Kaiserslautern. Oleksandr Motsak and Alexander Dreyer continued this at SD
 24 in Linz.

 The patches that resulted from this work are attached.

 Newest functionality:

  * non-commutative rings/polynomials/ideals are fully featured classes now
 (no deriving from commutative ones)!
  * coercion from basering/Integer types (still needs tests)
  * flag to check degeneracy conditions on init
  * relations for non-commutative rings
  * most relevant functions for rings/polynomials/ideals (mostly adopted
 from MPolynomialRing_libsingular/MPolynomialRing_libsingular/...) e.g.
 std/twostd/syzygy_module/lc/lm/lt/monomial operations
  * RingWrap and TermOrder were extended
  * quick and dirty conversion of RingWrap to Sage rings (needs some care
 as the resulting rings may not be unique and therefore may confuse
 coercion)
  * quotient of a non-commutative ring by a two-sided Groebner basis
  * shortcut to create graded commutative algebras: SCA

 Possible topics that need work are:

  * put the files in sage/algebra/ ???
  * make sure element does not export functions it doesn't support (e.g.
 gcd)
  * predefined structures from the library

 '''__Apply__'''

  * [attachment:trac4539_libplural.patch]
  * [attachment:trac4539_pickling.patch]
  * [attachment:trac4539_normal_forms.patch]

--

Comment(by SimonKing):

 I have updated the second patch (adding a commit message), and I added a
 third patch. It provides a non-commutative "Gröbner strategy", normal form
 computation, and thus quotient rings of g-algebras.

 Note that the quotients use the general framework from #11068. They
 ''should'' simply be g-algebras as well. But I suggest that this will be
 done on a different ticket.

 With the new patch, one can do:
 {{{
 sage: A.<x,y,z> = FreeAlgebra(QQ, 3)
 sage: H.<x,y,z> = A.g_algebra({y*x:x*y-z, z*x:x*z+2*x, z*y:y*z-2*y})
 sage: I = H.ideal([y^2, x^2, z^2-H.one_element()],coerce=False,
 side='twosided')
 sage: Q = H.quotient(I); Q
 Quotient of Noncommutative Multivariate Polynomial Ring in x, y, z
 over Rational Field, nc-relations: {y*x: x*y - z, z*y: y*z - 2*y,
 z*x: x*z + 2*x} by the ideal (y^2, x^2, z^2 - 1)
 sage: Q.2^2 == Q.one_element()   # indirect doctest
 True
 }}}
 Here, we see that the relation that we just found in the quotient is
 actually a consequence of the given relations:
 {{{
 sage: I.twostd()
 Twosided Ideal (z^2 - 1, y*z - y, x*z + x, y^2, 2*x*y - z - 1, x^2)
 of Noncommutative Multivariate Polynomial Ring in x, y, z over
 Rational Field, nc-relations: {y*x: x*y - z, z*y: y*z - 2*y, z*x: x*z +
 2*x}
 }}}

 Note that reduction of polynomials by a list of polynomials is, in
 general, not a normal form. However, reduction of a polynomial by an ideal
 uses a two-sided Gröbner basis and is thus a normal form.

 I just thought that it would better be reduction by a left Gröbner basis,
 if the ideal is just a left ideal. OK, doing it soon...

 Apply trac4539_libplural.patch trac4539_pickling.patch
 trac4539_normal_forms.patch

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