############################################################################# ## ## This file is part of GAP, a system for computational discrete algebra. ## This file's authors include Alexander Hulpke. ## ## Copyright of GAP belongs to its developers, whose names are too numerous ## to list here. Please refer to the COPYRIGHT file for details. ## ## SPDX-License-Identifier: GPL-2.0-or-later ## ## This file contains the operations for the computation of complements in ## 'white box groups' ##
BindGlobal("COCohomologyAction",function(oc,actgrp,auts,orbs)
local b, mats, orb, com, stabilizer, i,coc,u; if not IsBound(oc.complement) then
return []; fi;if bactorspace)0
.=Zero;
return := if (c.)ength(.factorspacejava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 24 ifjava.lang.StringIndexOutOfBoundsException: Range [0, 11) out of bounds for length 0
urec:=oZ(.),stabilizer:actgrp),
bas:=b); if orbs then
.1:[local,N, , ,factorpres com,comgens,cenocrels,pcgs, 1;
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 13 fi;
Info(2
Characteristic:failjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
if :=List(s,x->ClosureGroup,);
s:=[TrivialSubgroup); fi s:[[1]java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
mats: Size()Size(Last()
orb(ss,);
=[]java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
iinorbdo
coc:=i.vector*b.factorspace; #u:=oc.cocycleToComplement(coc);
u=cocycle:cjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24 elsejava.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 46
=i.; iforbs uq:magesSourceh;
q:=q:java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 12
fpi:q); # build a series only down to K
return rec(com: h:=List(s,x->ClosureGroup(K,x) :[((fpi)java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51 end;
BindGlobal >PreImagesRepresentativefpi)]fori h{2...h] Assert1ForAll[]i-ImagehPreImagesRepresentative(,i)i);
local # #T transfer probably to better group (later, AgCase)
h:NaturalHomomorphismByNormalSubgroup(N)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
l, java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 0
G
:rg]2
compute a series
(N then
s:[,TrivialSubgroupN]java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
InfoInfoComplement,2" sso far
: ((([2], generators"java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 fi; if Length(arg)=2then
K:; # compute complements else
K:=arg[3];
java.lang.StringIndexOutOfBoundsException: Range [13, 11) out of bounds for length 35 # initialize
s=h1 =java.lang.StringIndexOutOfBoundsException: Range [33, 34) out of bounds for length 33
i h{[.)java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17 if Sizeocrjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
(java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
(java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 39
od;
ins[])java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
Info(InfoComplement,1,"Series of 1],>ize([]/(1);
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# construct a presentation:=;
h:= cocycle:= forjin 1.(com]=);
# AH still: Try to find a more simple presentation if available.
java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
java.lang.StringIndexOutOfBoundsException: Range [15, 5) out of bounds for length 38 else
fZero(.oneCocycles); fi)
fpiif < Info(InfoComplement,2,"fuse ",Length(v)," classes; working in dim ",
sentation#
Length(# Assert(3,z in AsList(v))-P :ocr# for k in [1..Length(
factorpres=(# # Assert(2,z in ocr.oneCocycles);
# if IsBound(l.heads[ [-1])java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
List(GeneratorsOfGroupif if Length(l)<>Length(k) then Error("differ!");fi;
- =.),
Assert else # initialize
com:=[G];
comgens:=[List(factorpres[3java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
cen:=[s InfoComplement,no java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 48
ocrels:=falsejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
# step down for i in [
Info(InfoComplement,1java.lang.StringIndexOutOfBoundsException: Range [0, 9) out of bounds for length 1
we know the afterjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 fpcgs:=Pcgs(s[i-1]); # the factor pcgs #fpcgs:=fpcgs mod InducedPcgsByGenerators(fpcgs,GeneratorsOfGroup(s[i])); :=cr.
fpcgs:#
# java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ncomgens:=[];
ncen# Assert(2,z in ocr.# # sift z all# z:=z-z[k]*l.subspace[-l.heads[k]];
.L(# od;
# z end;
gens:[;
nlcen:# if Length(l)<>Length(k) then Error("differ!");fi; # compute complements
ocr:=rec(group v=vCanonicalRightCosetElements[]jj)afu;
java.lang.StringIndexOutOfBoundsException: Range [8, 1) out of bounds for length 11
Info(InfoComplement"complements")
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
); if ocrels<false
ocr.
Assert(ForAll(cr.elators,
ncomgens=Concatenation(ncomgens,nlcomgens);
;
[1))
java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 9
OCOneCocycles(ocr,true);
relatorsjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
if =Normalizer(q,ClosureGroupsi]java.lang.StringIndexOutOfBoundsException: Range [41, 5) out of bounds for length 5 for trivial case:
fDimensionocr.)Dimension(ocr. =x (i,^;;
:=java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 37
:=(ocr.oneCocycles-> )s] then
complement=ocr.omplement); else l:=BaseSteinitzVectors(BasisVectors(Basis(ocr.oneCocycles)),
# andcohomology. # # v:=Enumerator(VectorSpace(LeftActingDomain(ocr.oneCocycles), # l.factorspace,Zero(ocr.oneCocycles))); # # dimran:=[1..Length(v[1])]; # # # fuse # Info(InfoComplement,2,"fuse ",Length(v)," classes; working in dim ", # Dimension(ocr.oneCocycles),"/",Dimension(ocr.oneCoboundaries)); # # opfun:=function(z,g) # Assert(3,z in AsList(v)); # z:=ocr.cocycleToList(z); # for k in [1..Length(z)] do # z[k]:=Inverse(ocr.complementGens[k])*(ocr.complementGens[k]*z[k])^g; # od; # Assert(2,ForAll(z,k->k in s[i-1])); # z:=ocr.listToCocycle(z); # Assert(2,z in ocr.oneCocycles); # # sift z # for k in dimran do # if IsBound(l.heads[k]) and l.heads[k]<0 then # z:=z-z[k]*l.subspace[-l.heads[k]]; # fi; # od; # Assert(1,z in AsList(v)); # return z; # end; # # k:=ExternalOrbitsStabilizers(cen[j],v,opfun);
l:=ComplementClassesRepresentativesSolvableWBG)); # if Length(l)<>Length(k) then Error("differ!");fi; fi;
Info(InfoComplement,2,"splits in ",Length(l)," complements"); else
l:=[];
Info(InfoComplement,2,"no complements"); fi;
for k in l do
q:=k.stabilizer;
k:=ocr.cocycleToComplement(k.cocycle);
Assert(3,Length(GeneratorsOfGroup(k))
=Length(MappingGeneratorsImages(fpi)[2])); # correct stabilizer to obtain centralizer
v:=Normalizer(q,ClosureGroup(s[i],k));
afu:=function(x,g) return CanonicalRightCosetElement(s[i],x^g);end; for jj in GeneratorsOfGroup(k) do if ForAny(GeneratorsOfGroup(v),x->not Comm(x,jj) in s[i]) then # we are likely very close as we centralized in the higher level # and stabilize the cohomology. Thus a plain stabilizer # calculation ought to work.
v:=Stabilizer(v,CanonicalRightCosetElement(s[i],jj),afu); fi;
od;
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.12Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.