[GAP Forum] Associative Algebra Element Category

Thomas Breuer thomas.breuer at math.rwth-aachen.de
Wed Jul 20 08:17:49 BST 2005


Dear GAP Forum,

Randy Cone wrote

> Is there is a way to distinguish associative algebra elements from 
> non-associative ones?  There does not seem to be a valid category making this 
> determination, though I might be missing something! (Please see example 
> below).  Nevertheless, I'm guessing there is a way to indirecly do this by 
> looking at the parent algebras of elements; similar to finding the parent 
> family (group) of a free group element with: FamilyObj(a)!.freeGroup.  Related
> to this, how might one find all the available information via the !. for a 
> family?
> 
> gap> # Associative algebra example:
> gap> A := FreeAssociativeAlgebraWithOne(Rationals,"a","b");
> <algebra-with-one over Rationals, with 2 generators>
> gap> a := A.a;
> (1)*a
> gap> b := A.b;
> (1)*b
> gap> B := FreeAlgebraWithOne(Rationals,"c","d");
> <algebra-with-one over Rationals, with 2 generators>
> gap> c := B.c;
> (1)*c
> gap> d := B.d;
> (1)*d
> gap> ExtRepOfObj(a*(b*a));
> [ 0, [ [ 1, 1, 2, 1, 1, 1 ], 1 ] ]
> gap> ExtRepOfObj(c*(d*c));
> [ 0, [ [ 1, [ 2, 1 ] ], 1 ] ]
> gap> IsAssociativeElement(a);
> false
> gap> IsAssociativeElement(c);
> false
> gap> CategoriesOfObject(a) = CategoriesOfObject(c);
> true

Associativity is a property of domains not of single elements,
the filter `IsAssociativeElement' just expresses the technical property
that any magma created from a collection of such elements
will be associative.

For example, this holds for permutations, and it would be possible
to use this also for elements of free associative algebras.
(These algebras are created with `FreeMagmaRing',
so changing this function is the natural way to achieve this;
we will consider this for the next GAP version.)

However, one cannot rely on the fact that `IsAssociativeElement' is set
for elements in domains that turn out to be associative.
For example, if one constructs an algebra A, say,
from a multiplication table,
and then forms a subalgebra B of A
then B may be associative whereas A is not,
and the elements in B lie also in A.

For the special case of an element in a free algebra or in a free
associative algebra, it is actually possible to determine whether
the ``full algebra'' is associative or nonassociative,
from inspecting certain filters in certain family objects.
But it seems to be easier to ask the element itself, as follows.

    gap> A:= FreeAlgebra( Rationals, 2 );; x:= A.1;;
    gap> x*(x*x) = (x*x)*x;                        
    false
    gap> A:= FreeAssociativeAlgebra( Rationals, 2 );; x:= A.1;;
    gap> x*(x*x) = (x*x)*x;
    true

(May I ask where this problem arises?)

All the best,
Thomas


_______________________________________________
Support mailing list
Support at gap-system.org
http://mail.gap-system.org/mailman/listinfo/support






More information about the Forum mailing list