Dear Forum:
I would like to be able to create a domain in which I redefine addition
and multiplication. I was able to do so in version 3.1, but I'm having
difficulty in version 3.2. These are defined as functios, as shown below.
gap> G := SymmetricGroup(5);;
gap> a := AbstractGenerator("a");;b :=AbstractGenerator("b");;
gap> a5:= Group(a,b);;a5.relators := [a^2,b^3,(a*b)^5];;
gap> D := DirectProduct(G,a5);
Group( DirectProductElement( (1,5), IdWord ), DirectProductElement(
(2,5), IdWord ), DirectProductElement( (3,5), IdWord ), DirectProductElement(
(4,5
), IdWord ), DirectProductElement( (), a ), DirectProductElement( (), b ) )
gap> ops := D.identity.operations;
rec(
= := function ( a, b ) ... end,
< := function ( a, b ) ... end,
* := function ( a, b ) ... end,
/ := function ( a, b ) ... end,
mod := function ( a, b ) ... end,
^ := function ( a, b ) ... end,
Comm := function ( a, b ) ... end,
Print := function ( a ) ... end )
But I can't access these functions. The obvious guess is:
gap> ops.=;
Syntax error: record component name expected
ops.=;
^
What used to work is:
gap> ops.'=';
Syntax error: record component name expected
ops.'=';
^
Another possible guess is:
gap> ops."=";
Syntax error: record component name expected
ops."=";
^
Just to check that I'm looking at the right object:
gap> ops.Print;
function ( a ) ... end
Thanks for any suggestions.
-Philip Osterlund