[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