[Up] [Previous] [Next] [Index]

# 8 Specific methods

### Sections

This chapter describes methods of LOOPS that apply to some special loops, mostly Bol and Moufang loops.

## 8.1 Core methods for Bol loops

Let L be a left Bol loop such that the mapping xx2 is a permutation of L. Define a new operation * on L by x*y = (x(y2x))1/2. Then Bruck showed that (L,*) is a left Bruck loop, called the assoicated left Bruck loop. (In fact, Bruck used the isomorphic operation x*y = x1/2(yx1/2) instead. Our approach is more natural, since the associated left Bruck loop to a left Bruck loop L is identical to L then.) The associated left Bruck loop of L is returned via

• AssociatedLeftBruckLoop( L ) A

## 8.2 Moufang modifications

Ale\vs Drápal discovered two prominent families of extensions of Moufang loops. It turns out that these extensions can be used to obtain all nonassociative Moufang loops of order at most 64. We call these two constructions Moufang modifications. The library of Moufang loops included with LOOPS is based on Moufang modifications. We describe the two modifications briefly here. See DrVo for details.

Assume that L is a Moufang loop with normal subloop S such that L/S is a cyclic group of order 2m. Let hSZ(L). Let α be a generator of L/S and write L = ∪iM αi, where M={−m+1, ..., m}. Let σ:ZM be defined by σ(i)=0 if iM, σ(i)=1 if i > m, and σ(i)=−1 if i < −m+1. Introduce a new multiplication ∗ on L defined by
 x∗y = xyhσ(i+j),
where x ∈ αi, y ∈ αj, iM, jM. Then (L,∗) is a Moufang loop, a cyclic modification of L.

When L, S, α, h are as above and when a is any element of α, the corresponding cyclic modification is obtained via

• LoopByCyclicModification( L, S, a, h ) F

Now assume that L is a Moufang loop with normal subloop S such that L/S is a dihedral group of order 4m, with m ≥ 1. Let M and σ be defined as in the cyclic case. Let β, γ ∈ L/S be two involutions of L/S such that α = βγ generates a cyclic subgroup of L/S of order 2m. Let e ∈ β and f ∈ γ be arbitrary. Then L can be written as a disjoint union L=∪iMieαi), and also L=∪iMi∪αif. Let G0=∪iMαi, and G1=L\G0. Let hSN(L)∩Z(G0). Introduce a new multiplication ∗ on L defined by
 x∗y = xyh(−1)rσ(i+j),
where x ∈ αieαi, y ∈ αj∪αjf, iM, jM, yGr, r ∈ {0,1}. Then (L,∗) is a Moufang loop, a dihedral modification of L.

When L, S, e, f and h are as above, the corresponding dihedral modification is obtained via

• LoopByDihedralModification( L, S, e, f, h ) F

In order to apply the cyclic and dihedral modifications, it is beneficial to have access to a class of nonassociative Moufang loops. The following construction is due to Chein:

Let G be a group. Let [ˉ(G)]={[ˉ(g)];  gG} be a set of new elements. Define multiplication ∗ on L=G∪[ˉ(G)] by
 g∗h = gh, g∗ h = hg ,\ g ∗h = gh−1 ,\ g ∗ h =h−1g,
where g, hG. Then L=M(G,2) is a Moufang loop that is nonassociative if and only if G is nonabelian.

The loop M(G,2) can be obtained from a finite group G with

• LoopMG2( G ) F

## 8.3 Triality for Moufang loops

Let G be a group and σ, ρ be automorphisms of G, satisfying σ2 = ρ3 = (σρ)2 = 1. We write the automorphisms of a group as exponents and [g,σ] for g−1gσ. We say that the triple (G,ρ,σ) is a group with triality if [g, σ] [g,σ]ρ [g,σ]ρ2 = 1 holds for all gG. It is known that one can associate a group with triality (G,ρ,σ) in a canonical way with a Moufang loop L. See NaVo2003 for more details.

For any Moufang loop L, we can calculate the triality group as a permutation group acting on 3|L| points. If the multiplication group of L is polycyclic, then we can also represent the triality group as a pc group. In both cases, the automorphisms σ and ρ are in the same family as the elements of G.

Given a Moufang loop L, the function

• TrialityPermGroup( L ) F

returns a record [G, ρ, σ], where G is the group with triality associated with L, and ρ, σ are the corresponding triality automorphisms.

The function

• TrialityPcGroup( L ) F

differs from TrialityPermGroup only in that G is returned as a pc group.

## 8.4 Realizing groups as multiplication groups of loops

The following commands look for loops such that the multiplication group is contained in a given transitive permutation group G.

The resulting loops are given by their right sections.

• AllLoopTablesInGroup( G[, depth[, infolevel]] ) O
• AllProperLoopTablesInGroup( G[, depth[, infolevel]] ) O
• OneLoopTableInGroup( G[, depth[, infolevel]] ) O
• OneProperLoopTableInGroup( G[, depth[, infolevel]] ) O
• AllLoopsWithMltGroup( G[, depth[, infolevel]] ) O
• OneLoopWithMltGroup( G[, depth[, infolevel]] ) O

One can speed up the search by setting the argument depth higher, the price is much higher memory consumption. depth is optimally chosen if in the permutation group G, there are not many permutations fixing depth elements. You can omit the argument depth or set it equal to 2 with little harm.

The parameter infolevel determines the amount of information you get during the search. With infolevel=0, no information is provided. With infolevel=1, you get the information on timing and hits. With infolevel=2, the results are printed, as well.

gap> g:=PGL(3,3);
Group([ (6,7)(8,11)(9,13)(10,12), (1,2,5,7,13,3,8,6,10,9,12,4,11) ])
gap> a:=AllLoopTablesInGroup(g,3,0);; Size(a);
56
gap> a:=AllLoopsWithMltGroup(g,3,0);; Size(a);
52

[Up] [Previous] [Next] [Index]

loops manual
July 2012