[GAP Forum] Creating groups by a multiplication rule

Alexander Konovalov alexk at mcs.st-andrews.ac.uk
Wed Oct 31 10:36:52 GMT 2012


Dear Ivan,

On 31 Oct 2012, at 07:07, Могильных Иван Юрьевич wrote:

> Dear Gap forum,
> 
> I have a problem and I wonder if I can handle it with the help of GAP.
> Consider a collection G of elements of Z_2^15 (not a subgroup) of size 2048.
> Define an operation in the following manner: x*y=x+y^pi_x, where + is the
> ordinary addition in Z_2.
> Here pi_x is the permutation on {1..n} attached to the element x by some
> rule.
> Permutations can vary from one element to another.
> I have certain values for these permutation, such that (G,*) is a group.
> I want to realize this group in computer and carry out manipulations with
> it (for example, find subgroups of index 2).
> Can this be done using GAP?
> Any such group can be generated by a certain set of 35 elements.
> 
> So, generally speaking, the problem I faced was creating a group by some
> multiplication rule.
> According to the GAP documentation, it can be done using domains. However,
> I could not succeed in creating new domain with operation.
> I could not find an appropriate example, neither.
> I would be grateful, if someone helps me with any of the questions above.
> 
> Best wishes,
> Ivan Mogilnykh

In this sutuation, it may be worth to try ArithmeticElementCreator 
documented in the chapter "Examples of Extending the System" of the
Reference manual (enter ?ArithmeticElementCreator in GAP to see the
documentation). As the manual says,

"This function offers a simple interface to create new arithmetic 
elements by providing functions that perform addition, multiplication 
and so forth, conforming to the specification spec. 
ArithmeticElementCreator creates a new category, representation and 
family for the new arithmetic elements being defined, and returns a 
function which takes the "defining data" of an element and returns 
the corresponding new arithmetic element."

If you wish to have more control over the actions which are automated
by ArithmeticElementCreator, then look at Chapter "An Example – Residue 
Class Rings" of the reference manual. Also, my package Circle
<http://www.gap-system.org/Packages/circle.html> provides functionality 
for computations in adjoint groups of finite associative rings, and 
allows to construct circle objects w.r.t. the circle multiplication 
r*s=r+s+rs and create multiplicative groups, generated by such objects. 
It may serve as another example of extending the GAP system with new 
multiplicative objects.

Hope this helps,
Alexander








More information about the Forum mailing list