# 8.25 IsEquivalentOperation

`IsEquivalentOperation( G, D, H, E )`
`IsEquivalentOperation( G, D, H, E, operationH )`
`IsEquivalentOperation( G, D, operationG, H, E )`
`IsEquivalentOperation( G, D, operationG, H, E, operationH )`

`IsEquivalentOperation` returns `true` if G operates on D in like H operates on E, and `false` otherwise.

The operations of G on D and H on E are equivalent if they have the same number of generators and there is a permutation F of the elements of E such that for every generator g of G and the corresponding generator h of H we have Position( D, D_i^g ) = Position( F, F_i^h ). Note that this assumes that the mapping defined by mapping G.generators to H.generators is a homomorphism (actually an isomorphism of factor groups of G and H represented by the respective operation).

`IsEquivalentOperation` accepts functions operationG and operationH of two arguments d and g as optional third and sixth arguments, which Other Operations).

```    gap> g := Group( (1,2)(4,5), (1,2,3)(4,5,6) );;
gap> h := Group( (2,3)(4,5), (1,2,3)(4,5,6) );;
gap> IsEquivalentOperation( g, [1..6], h, [1..6] );
true
gap> h := Group( (1,2), (1,2,3) );;
gap> IsEquivalentOperation(g,[[1,4],[2,5],[3,6]],OnPairs,h,[1..3]);
true
gap> h := Group( (1,2), (1,2,3)(4,5,6) );;
gap> IsEquivalentOperation( g, [1..6], h, [1..6] );
false
gap> h := Group( (1,2,3)(4,5,6), (1,2)(4,5) );;
gap> IsEquivalentOperation( g, [1..6], h, [1..6] );
false    # the generators must correspond ```

`IsEquivalentOperation` calls
`G.operations.IsEquivalentOperation(G,D,oprG,H,E,oprH)` and returns the value. Note that the third and sixth argument are not optional for functions called this way.

The default function called this way is `GroupOps.IsEquivalentOperation`, which tries to rearrange E so that the above condition is satisfied. This is done one orbit of G at a time, and for each such orbit all the orbits of H of the same length are tried to see if there is one which can be rearranged as necessary. Special categories of groups overlay this function with more efficient ones.

GAP 3.4.4
April 1997