Hi Burcin, Michael, Simon, Please let me explain the current non-commutative Singular conventions: 1. the only way to create a G-algebra is to endow a commutative polynomial ring (NOT a qring!) with a non-commutative structure 2. in order to create a GR-algebra: compute two-sided GB in G-algebra and use it to define a factor ring.
{{{ // example Singular script: // 1: ring r; def g=nc_algebra(-1,0); setring g; g; // 2: ideal q=twostd(ideal(x^2, y^2, z^2)); qring gr = q; gr; // exterior algebra in x,y,z x*x; // gives 0: since gr is internally a SCA }}} Therefore the only "legal" steps are: A. define G-algebra (using matrices C & D) (see jjPlural_mat_mat in iparith.cc) B. compute a two-sided(!) GB there (see jjTWOSTD in iparith.cc) (the standard "std" command computes a left (!) GB in non-commutative case) C. create non-commutative factor ring (see jiA_QRING in ipassign.cc) (factors of GR-algebras are allowed) Special multiplicative structure (e.g. supercommutative) will be automatically detected in A. & C. whereas forcefully calling the internal API (e.g. sca_*) is prone of subtle side effects. Cheers, Oleksandr On Sep 4, 3:52 pm, Burcin Erocal <bur...@erocal.org> wrote: > On Fri, 4 Sep 2009 05:54:08 -0700 (PDT) > > > > Simon King <simon.k...@nuigalway.ie> wrote: > > > Hi Burcin, Hi Michael, > > > On Sep 4, 1:23 pm, Burcin Erocal <bur...@erocal.org> wrote: > > [...] > > > Do you mean the Letterplace (why do they capitalize the names of > > > these things?!?) extension [1] ? > > > > [1]http://www.singular.uni-kl.de/Manual/latest/sing_425.htm#SEC478 > > > I think so. I didn't use it myself, but I heard it being mentioned in > > conference talks. > > > > Unfortunately this requires giving more care and attention to the > > > FreeAlgebra stuff in Sage than I have time for, so it will have to > > > wait till someone else takes it up. > > > Well, Michael seemed to agree that Letterplace is of more experimental > > character. > > > But certainly the G-algebra stuff in Singular (where the non- > > commutativity is provided by two matrices) is mature enough, and I > > understood from the previous posts that it is already more or less > > wrapped, and we are talking about the interface. > > > Certainly, > > sage: A.<x,y,z>=FreeAlgebra(QQ,3) > > sage: G=A.g_algebra({y*x:-x*y}) > > is nice. > > > But what exactly is the input data? Would you allow general relations, > > such as {y*x*y: -z+x*y}? Or must the keys of the dictionary be > > monomials of degree 2, since otherwise you run into non-decidable > > questions? In this case, I guess your interface is equivalent to > > Singular's way of defining a G-algebra, but certainly nicer. > > You're right, it is equivalent to the G-algebras defined in Singular. > Checking these conditions is one of the items on the list below. :) > > > Since there ishttp://trac.sagemath.org/sage_trac/ticket/4539and it > > says "need work": What exactly is needed to do? Is it just a decision > > about the interface? In that case, I am +1 to your suggestion! > > No, unfortunately it's not that easy. > > - We just subclassed MPolynomialRing_libsingular to create the ring > then, elements are instances of MPolynomial_libsingular. These > inherit from CommutativeRing and CommutativeRingElement > respectively. :) > > One would have to create new classes for the elements and the parent > in the appropriate place of the hierarchy. Refactoring the > libSingular calls in the above classes helps tremendously here. :) > > - Check if the commutativity relations satisfy the conditions for a > G-algebra as defined here: > > http://www.singular.uni-kl.de/Manual/latest/sing_420.htm#SEC461 > > - sort out coercion > - wrap various functions defined by Singular: > http://www.singular.uni-kl.de/Manual/latest/sing_390.htm#SEC431 > - find a way to wrap the predefined structures here: > http://www.singular.uni-kl.de/Manual/latest/sing_538.htm#SEC591 > - etc. > > Any volunteers? > > Cheers, > Burcin --~--~---------~--~----~------------~-------~--~----~ To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---