This chapter was added in April 2018 for version 2.66 of XMod. Initially it describes crossed modules for free loop spaces. Further applications may arise in due course.
These functions have been used to produce examples for Ronald Brown's paper Crossed modules, and the homotopy 2-type of a free loop space [Bro18]. The relevant theorem in that paper is as follows.
Theorem 2.1 Let calM = (∂ : M -> P) be a crossed module of groups and let X = BcalM be the classifying space of calM. Then the components of LX, the free loop space on X, are determined by equivalence classes of elements a ∈ P where a,a' are equivalent if and only if there are elements m ∈ M, p ∈ P such that a'= p + a - ∂ m - p.
Further the homotopy 2-type of a component of LX given by a ∈ P is determined by the crossed module of groups LcalM[a] = (∂_a : M -> P(a)) where:
P(a) is the subgroup of the cat^1-group G = P ⋉ M such that ∂ m = [p,a] = -p-a+p+a;
∂_a(m) = (∂ m, m^-1m^a) for m ∈ M;
the action of P(a) on M is given by n^(p,m) = n^p for n ∈ M, (p,m) ∈ P(a).
In particular π_1(LX,a) is isomorphic to mathrmcokernel(∂_a), and π_2(LX,a) ≅ π_2(X,*)^bara}, the elements of π_2(X,*) fixed under the action of bara, the class of a in π_1(X,*).
There is an exact sequence π stackrelϕ-> π -> π_1(LX,a) -> C_bara}(π_1(X,*)) -> 1, in which π = π_2(X,*), and ϕ is the morphism m ↦ m^-1m^a.
‣ LoopClasses ( M ) | ( operation ) |
‣ LoopsXMod ( M, a ) | ( operation ) |
‣ AllLoopsXMod ( M ) | ( operation ) |
The operation LoopClasses
computes the equivalence classes [a] described above. These are all unions of conjugacy classes.
The operation LoopsXMod(M,a)
calculates the crossed module LcalM[a] described in the theorem.
The operation AllLoopsXMod(M)
returns a list of crossed modules, one for each equivalence class of elements [a] ⊆ P.
In the example below the automorphism crossed module X8
has M ≅ C_2^3 and P = PSL(3,2) is the automorphism group of M. There are 6 equivalence classes which, in this case, are identical with the conjugacy classes. For each LX calculated, the IdGroup
(2.8-1) is printed out.
gap> SetName( k8, "k8" ); gap> Y8 := XModByAutomorphismGroup( k8 );; gap> X8 := Image( IsomorphismPerm2DimensionalGroup( Y8 ) );; gap> SetName( X8, "X8" ); gap> Print( "X8: ", Size( X8 ), " : ", StructureDescription( X8 ), "\n" ); X8: [ 8, 168 ] : [ "C2 x C2 x C2", "PSL(3,2)" ] gap> classes := LoopClasses( X8 );; gap> List( classes, c -> Length(c) ); [ 1, 21, 56, 42, 24, 24 ] gap> LX := LoopsXMod( X8, (1,2)(5,6) );; gap> Size2d( LX ); [ 8, 64 ] gap> IdGroup( LX ); [ [ 8, 5 ], [ 64, 138 ] ] gap> SetInfoLevel( InfoXMod, 1 ); gap> LX8 := AllLoopsXMod( X8 );; #I LoopsXMod with a = (), IdGroup = [ [ 8, 5 ], [ 1344, 11686 ] ] #I LoopsXMod with a = (4,5)(6,7), IdGroup = [ [ 8, 5 ], [ 64, 138 ] ] #I LoopsXMod with a = (2,3)(4,6,5,7), IdGroup = [ [ 8, 5 ], [ 32, 6 ] ] #I LoopsXMod with a = (2,4,6)(3,5,7), IdGroup = [ [ 8, 5 ], [ 24, 13 ] ] #I LoopsXMod with a = (1,2,4,3,6,7,5), IdGroup = [ [ 8, 5 ], [ 56, 11 ] ] #I LoopsXMod with a = (1,2,4,5,7,3,6), IdGroup = [ [ 8, 5 ], [ 56, 11 ] ] gap> iso := IsomorphismGroups( Range( LX ), Range( LX8[2] ) );; gap> iso = fail; false
generated by GAPDoc2HTML