Changes between Version 36 and Version 40 of Ticket #7797


Ignore:
Timestamp:
03/28/11 14:01:45 (8 years ago)
Author:
SimonKing
Comment:

I managed to split my patch. The part concerning "basic implementation of ideals in non-commutative rings" is now at #11068. The new patch is based on top of that.

TODO

Let the FreeAlgebra constructor always return a free algebra, not a polynomial ring.

New Feature

In addition to what was described in previous comments, my letterplace wrapper can compute complete twosided Gröbnerbases by an adaptive algorithm. The idea is simple: If the Gröbner basis is known out to degree 2*d-1, but the highest degree of its generators is d, then the Gröbner basis is complete.

Example:

sage: F.<x,y,z> = FreeAlgebra(QQ, implementation='letterplace')
sage: I = F*[x*y-y*x,x*z-z*x,y*z-z*y,x^2*y-z^3,x*y^2+z*x^2]*F
sage: I.groebner_basis(Infinity)
Twosided Ideal (z*z*z*y*y + z*z*z*z*x, z*x*x*x + z*z*z*y, y*z - z*y, y*y*x + z*x*x, y*x*x - z*z*z, x*z - z*x, x*y - y*x) of Free Associative Unital Algebra on 3 generators ('x', 'y', 'z') over Rational Field

Since the commutators are contained in the ideal, we can verify that result with a commutative Gröbner basis, as follows:

sage: P.<c,b,a> = PolynomialRing(QQ,order='neglex')
sage: J = P*[a^2*b-c^3,a*b^2+c*a^2]
sage: J.groebner_basis()
[b*a^2 - c^3, b^2*a + c*a^2, c*a^3 + c^3*b, c^3*b^2 + c^4*a]

So, that's a good consistency test.

Apply trac7797-full_letterplace_wrapper_rel11068.patch

Depends on #11068

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #7797

    • Property Status changed from needs_review to needs_work
    • Property Work issues changed from to Unigenerated free algebra vs. univariate polynomial ring
  • Ticket #7797 – Description

    v36 v40  
    1414Examples are below, in the comments.
    1515
    16 Apply trac7797-full_letterplace_wrapper.patch
     16Apply trac7797-full_letterplace_wrapper_rel11068.patch
    1717
    18 Depends on #10961
     18Depends on #11068