> < ^ Date: Tue, 27 Jul 1993 07:51:57 +0200
> ^ From: Philip Osterlund <osterlu@s5.math.umn.edu >
> ^ Subject: Redefining "+, -, *, =," etc.

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
```

> < [top]