Dear R.N.,

On 28.01.2014, at 20:29, "R.N. Tsai" <r_n_t...@yahoo.com> wrote:

> Dear Forum,
> 
> I happen to be very interested in free associative algebras modulo some 
> relations.
> 
> So let me follow up this response with a few comments :
> 
> - There appears to be a package for non commutative groebner basis (gbnp). 
> See example 
>   
> http://mathoverflow.net/questions/87338/basis-of-a-finite-dimensional-algebra-with-a-finitely-generated-relation-set-by
> 
> - I tried this package with different relations but without luck; the program 
> hits its internal recursion limit...

I have used GBNP successfully in the past with e.g. BMW algebras. But of course 
anything dealing with Gröbner bases in free associative algebras is bound to 
hit some snags at some point... But in the examples you list below, GBNP should 
easily work... If you tell us what exactly you tried, perhaps we can give some 
advice.

> 
> What I'd like to ask is the following :
> 
> How would the following algebras be defined as quotients of free associative 
> algebras with one :
> 
> (1)free abelian associative algebra
>    (this should be as simple as adding relations [a*b-b*a,....]

These are also known as "polynomial rings" ;-). So you can use these in GAP.


> (2)clifford algebra
>    (relations [a*a-1,b*b-1,....])

These are finite dimensional, so one can deal with them in GAP via structure 
constants table. I have written some code for for that recently, as I have to 
deal with them in a research project. I am using another quadratic form (a^2 = 
-1) than the one you want (a^2 = +1), but that can be easily fixed by changing 
a single line. Code follows at the end of this email.

> (3)weyl (or symplectic clifford) algebra
>    (relations [a*b-b*a-1,....]

This one is not finite dimensional, and thus can't be dealt with in the way 
above.

If I had to work with it, I'd try to use GBNP. Or possible I'd not use GAP and 
instead try the PLURAL library of the Singular project... (And I hope that in 
the not so distant future, both can in fact be used from within with help of 
the libsing project... but it's not yet ready).

Note that I'd prefer if this was doable via the "naive" (or "logical"?) 
approach of taking a FreeAssociateAlgebra and factoring out an ideal of 
relations. Indeed, one way to implement that would be to take GBNP, and writing 
some wrappers around it. This would be a win for both GAP (gains functionality) 
and GBNP (gains a nicer user interface ;-). It might be a task for a bachelor 
student, or Google Summer of Code or so...

> 
> Are the above examples doable within gap or any of the packages (including 
> gbnp)?
> If so some code sniplets would be appreciated. If it is not doable, please
> let me know so I can stop trying :-)

I hope the above helps you a bit!



Finally, here is my code for clifford algebras (this mailing list doesn't allow 
attachments, so I am putting it inline). The line you need to change is marked 
with a comment.

# F is the field (or ring) of coefficients, n the number of generators
CliffordAlgebra := function(F, n)
  local elems, names, e, T, i, j, x, y, z, sign, k, tmp;

  elems := Combinations([1..n]);
  names := [];
  for e in elems do
    if e = [] then
      Add(names, "id");
    else
      Add(names, Concatenation(List(e,i -> Concatenation("e",String(i)))));
    fi;
  od;

  T := EmptySCTable( 2^n, 0 );
  for i in [1..2^n] do
    x := elems[i];
    for j in [1..2^n] do
      y := elems[j];
      # Determine x * y;
      z := Concatenation(x, y);
      sign := 1;
      # normalize
      while not IsSet(z) do
        for k in [1..Length(z)-1] do
          if z[k] = z[k+1] then
            Remove(z, k);
            Remove(z, k);
            sign := -sign;  # remove this to get the form a^2=1
            break;
          elif z[k] > z[k+1] then
            tmp := z[k];
            z[k] := z[k+1];
            z[k+1] := tmp;
            sign := -sign;
          fi;
        od;
      od;
      SetEntrySCTable( T, i, j, [ sign, Position(elems, z) ] );
    od;
  od;

  return AlgebraByStructureConstants( F, T, names );
end;

R := CliffordAlgebra(Rationals, 4);
AssignGeneratorVariables(R);




Cheers,
Max
_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum

Reply via email to