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