Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NC versions of PreImages, PreImagesSet, PreImagesElm and PreImagesRepresentative #5073

Open
wants to merge 22 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
methods for PreImRep renamed PreImRepNC
  • Loading branch information
cdwensley committed Dec 2, 2023
commit b9bf2218a8ea8152987cf82f3d653c6380b11a85
20 changes: 10 additions & 10 deletions lib/alghom.gi
Original file line number Diff line number Diff line change
Expand Up @@ -579,26 +579,26 @@ InstallMethod( ImagesRepresentative,

#############################################################################
##
#M PreImagesRepresentative( <map>, <elm> ) . . . . . . for algebra g.m.b.i.
#M PreImagesRepresentativeNC( <map>, <elm> ) . . . . . for algebra g.m.b.i.
##
InstallMethod( PreImagesRepresentative,
InstallMethod( PreImagesRepresentativeNC,
"for algebra g.m.b.i., and element",
FamRangeEqFamElm,
[ IsGeneralMapping and IsAlgebraGeneralMappingByImagesDefaultRep,
IsObject ],
function( map, elm )
return PreImagesRepresentative( AsLeftModuleGeneralMappingByImages(map),
elm );
return PreImagesRepresentativeNC(
AsLeftModuleGeneralMappingByImages(map), elm );
end );

InstallMethod( PreImagesRepresentative,
InstallMethod( PreImagesRepresentativeNC,
"for algebra g.m.b.i. knowing inverse, and element",
FamRangeEqFamElm,
[ IsGeneralMapping and IsAlgebraGeneralMappingByImagesDefaultRep
and HasInverseGeneralMapping,
IsObject ],
function( map, elm )
return ImagesRepresentative( InverseGeneralMapping(map), elm );
return ImagesRepresentative( InverseGeneralMapping(map), elm );
end );


Expand Down Expand Up @@ -917,7 +917,7 @@ InstallMethod( ImagesRepresentative,

#############################################################################
##
#M PreImagesRepresentative( <ophom>, <mat> )
#M PreImagesRepresentativeNC( <ophom>, <mat> )
##
BindGlobal( "PreImagesRepresentativeOperationAlgebraHomomorphism", function( ophom, mat )
if not IsBound( ophom!.basisImage ) then
Expand All @@ -930,7 +930,7 @@ BindGlobal( "PreImagesRepresentativeOperationAlgebraHomomorphism", function( oph
return mat;
end );

InstallMethod( PreImagesRepresentative,
InstallMethod( PreImagesRepresentativeNC,
"for an operation algebra homomorphism, and an element",
FamRangeEqFamElm,
[ IsOperationAlgebraHomomorphismDefaultRep, IsMatrix ],
Expand Down Expand Up @@ -1092,9 +1092,9 @@ InstallMethod( ImagesRepresentative,

#############################################################################
##
#M PreImagesRepresentative( <ophom>, <mat> )
#M PreImagesRepresentativeNC( <ophom>, <mat> )
##
InstallMethod( PreImagesRepresentative,
InstallMethod( PreImagesRepresentativeNC,
"for an alg. hom. from f. p. algebra, and an element",
FamRangeEqFamElm,
[ IsAlgebraHomomorphismFromFpRep, IsMatrix ],
Expand Down
12 changes: 6 additions & 6 deletions lib/fldabnum.gi
Original file line number Diff line number Diff line change
Expand Up @@ -1918,9 +1918,9 @@ InstallMethod( PreImageElm,

#############################################################################
##
#M PreImagesElm( <aut>, <cyc> ) . . . . . . for autom. of ab. number fields
#M PreImagesElmNC( <aut>, <cyc> ) . . . . . for autom. of ab. number fields
##
InstallMethod( PreImagesElm,
InstallMethod( PreImagesElmNC,
"for ANF automorphism and scalar",
FamRangeEqFamElm,
[ IsFieldHomomorphism and IsANFAutomorphismRep, IsScalar ],
Expand All @@ -1932,9 +1932,9 @@ InstallMethod( PreImagesElm,

#############################################################################
##
#M PreImagesSet( <aut>, <field> ) . . . . . for autom. of ab. number fields
#M PreImagesSetNC( <aut>, <field> ) . . . . for autom. of ab. number fields
##
InstallMethod( PreImagesSet,
InstallMethod( PreImagesSetNC,
"for ANF automorphism and scalar",
CollFamRangeEqFamElms,
[ IsFieldHomomorphism and IsANFAutomorphismRep, IsField ],
Expand All @@ -1945,9 +1945,9 @@ InstallMethod( PreImagesSet,

#############################################################################
##
#M PreImagesRepresentative( <aut>, <cyc> ) . for autom. of ab. number fields
#M PreImagesRepresentativeNC( <aut>, <cyc> ) for autom. of ab. number fields
##
InstallMethod( PreImagesRepresentative,
InstallMethod( PreImagesRepresentativeNC,
"for ANF automorphism and scalar",
FamRangeEqFamElm,
[ IsFieldHomomorphism and IsANFAutomorphismRep, IsScalar ],
Expand Down
32 changes: 15 additions & 17 deletions lib/ghom.gi
Original file line number Diff line number Diff line change
Expand Up @@ -261,9 +261,9 @@ end );

#############################################################################
##
#M PreImagesRepresentative( <hom>, <elm> ) . . . . . . . . . . . via images
#M PreImagesRepresentativeNC( <hom>, <elm> ) . . . . . . . . . . via images
##
InstallMethod( PreImagesRepresentative, "for PBG-Hom", FamRangeEqFamElm,
InstallMethod( PreImagesRepresentativeNC, "for PBG-Hom", FamRangeEqFamElm,
[ IsPreimagesByAsGroupGeneralMappingByImages,
IsMultiplicativeElementWithInverse ], 0,
function( hom, elm )
Expand All @@ -272,7 +272,7 @@ function( hom, elm )
# group
return ImagesRepresentative( RestrictedInverseGeneralMapping( hom ), elm );
else
return PreImagesRepresentative( AsGroupGeneralMappingByImages( hom ), elm );
return PreImagesRepresentativeNC( AsGroupGeneralMappingByImages( hom ), elm );
fi;
end );

Expand Down Expand Up @@ -883,19 +883,17 @@ InstallMethod( ImagesRepresentative,

#############################################################################
##
#M PreImagesRepresentative( <hom>, <elm> ) . . . . . . . . . . . . for GHBI
#M PreImagesRepresentativeNC( <hom>, <elm> ) . . . . . . . . . . . for GHBI
##
InstallMethod( PreImagesRepresentative,
"for GHBI and mult.-elm.-with-inverse",
FamRangeEqFamElm,
[ IsGroupGeneralMappingByImages,
IsMultiplicativeElementWithInverse ], 0,
function( hom, elm )
if IsBound( hom!.images ) and elm in hom!.images then
return hom!.elements[ Position( hom!.images, elm ) ];
else
return ImagesRepresentative( RestrictedInverseGeneralMapping( hom ), elm );
fi;
InstallMethod( PreImagesRepresentativeNC,
"for GHBI and mult.-elm.-with-inverse", FamRangeEqFamElm,
[ IsGroupGeneralMappingByImages, IsMultiplicativeElementWithInverse ], 0,
function( hom, elm )
if IsBound( hom!.images ) and elm in hom!.images then
return hom!.elements[ Position( hom!.images, elm ) ];
else
return ImagesRepresentative( RestrictedInverseGeneralMapping( hom ), elm );
fi;
end );


Expand Down Expand Up @@ -1227,9 +1225,9 @@ InstallMethod( ImagesSet,

#############################################################################
##
#M PreImagesRepresentative( <hom>, <g> ) . . . . for conjugator isomorphism
#M PreImagesRepresentativeNC( <hom>, <g> ) . . . for conjugator isomorphism
##
InstallMethod( PreImagesRepresentative,
InstallMethod( PreImagesRepresentativeNC,
"for conjugator isomorphism",
FamRangeEqFamElm,
[ IsConjugatorIsomorphism, IsMultiplicativeElementWithInverse ], 0,
Expand Down
14 changes: 7 additions & 7 deletions lib/ghomfp.gi
Original file line number Diff line number Diff line change
Expand Up @@ -527,9 +527,9 @@ end);

#############################################################################
##
#M PreImagesSet( <hom>, <u> )
#M PreImagesSetNC( <hom>, <u> )
##
InstallMethod( PreImagesSet, "map from (sub)group of fp group",
InstallMethod( PreImagesSetNC, "map from (sub)group of fp group",
CollFamRangeEqFamElms,
[ IsFromFpGroupHomomorphism,IsGroup ],0,
function(hom,u)
Expand Down Expand Up @@ -715,9 +715,9 @@ end);

#############################################################################
##
#M PreImagesRepresentative
#M PreImagesRepresentativeNC
##
InstallMethod( PreImagesRepresentative,
InstallMethod( PreImagesRepresentativeNC,
"hom. to standard generators of fp group, using 'MappedWord'",
FamRangeEqFamElm,
[IsToFpGroupHomomorphismByImages,IsMultiplicativeElementWithInverse],
Expand Down Expand Up @@ -1268,7 +1268,7 @@ local v,aiu,aiv,G,primes,irrel,ma,mau,a,k,gens,imgs,q,dec,deco,piv,co;
fi;

gens:=SmallGeneratingSet(a);
imgs:=List(gens,x->Image(mau,Image(hom,PreImagesRepresentative(ma,x))));
imgs:=List(gens,x->Image(mau,Image(hom,PreImagesRepresentativeNC(ma,x))));
q:=GroupHomomorphismByImages(a,Image(mau),gens,imgs);
k:=KernelOfMultiplicativeGeneralMapping(q);

Expand All @@ -1279,7 +1279,7 @@ local v,aiu,aiv,G,primes,irrel,ma,mau,a,k,gens,imgs,q,dec,deco,piv,co;
dec:=EpimorphismFromFreeGroup(Group(gens));
deco:=function(x)
local i;
x:=ExponentSums(PreImagesRepresentative(dec,x));
x:=ExponentSums(PreImagesRepresentativeNC(dec,x));
for i in [1..Length(aiv)] do
x[i]:=x[i] mod aiv[i];
od;
Expand Down Expand Up @@ -1316,7 +1316,7 @@ local hom,pcgs,impcgs;
impcgs:=FamilyPcgs(Image(hom,M));
pcgs:=PcgsByPcSequenceCons(IsPcgsDefaultRep,IsModuloPcgsFpGroupRep,
ElementsFamily(FamilyObj(M)),
List(impcgs,i->PreImagesRepresentative(hom,i)),
List(impcgs,i->PreImagesRepresentativeNC(hom,i)),
[]
);
pcgs!.hom:=hom;
Expand Down
8 changes: 4 additions & 4 deletions lib/ghompcgs.gi
Original file line number Diff line number Diff line change
Expand Up @@ -503,9 +503,9 @@ end);

#############################################################################
##
#M PreImagesRepresentative( <hom>, <elm> ) . . . . . . . . . . . via images
#M PreImagesRepresentativeNC( <hom>, <elm> ) . . . . . . . . . . via images
##
InstallMethod( PreImagesRepresentative, "method for pcgs hom",
InstallMethod( PreImagesRepresentativeNC, "method for pcgs hom",
FamRangeEqFamElm,
[ IsToPcGroupHomomorphismByImages,IsMultiplicativeElementWithInverse ], 0,
function( hom, elm )
Expand Down Expand Up @@ -623,9 +623,9 @@ end );

#############################################################################
##
#M PreImagesRepresentative( <hom>, <elm> ) . . . . . . . . . . via depth map
#M PreImagesRepresentativeNC( <hom>, <elm> ) . . . . . . . . . via depth map
##
InstallMethod( PreImagesRepresentative, FamRangeEqFamElm,
InstallMethod( PreImagesRepresentativeNC, FamRangeEqFamElm,
[ IsPcgsToPcgsHomomorphism,IsMultiplicativeElementWithInverse ], 0,
function( hom, elm )
local exp;
Expand Down
38 changes: 19 additions & 19 deletions lib/ghomperm.gi
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@

#############################################################################
##
#M PreImagesSet( <map>, <elms> ) . for s.p. gen. mapping resp. mult. & inv.
#M PreImagesSetNC( <map>, <elms> ) for s.p. gen. mapping resp. mult. & inv.
##
InstallMethod( PreImagesSet,
InstallMethod( PreImagesSetNC,
"method for permgroup homs",
CollFamRangeEqFamElms,
[ IsPermGroupHomomorphism, IsGroup ],
Expand All @@ -22,7 +22,7 @@ local genpreimages, pre,kg,sz,ol,orb,pos,dom,one;
genpreimages:=GeneratorsOfMagmaWithInverses( elms );

genpreimages:= List(genpreimages,
gen -> PreImagesRepresentative( map, gen ) );
gen -> PreImagesRepresentativeNC( map, gen ) );
if fail in genpreimages then
TryNextMethod();
fi;
Expand Down Expand Up @@ -1152,7 +1152,7 @@ local r, fgens, gens, kg;
fi;
fgens:=ShallowCopy(GeneratorsOfGroup(r));
gens:=List(fgens,
i->PreImagesRepresentative(hom2,PreImagesRepresentative(hom1,i)));
i->PreImagesRepresentativeNC(hom2,PreImagesRepresentativeNC(hom1,i)));
kg:=GeneratorsOfGroup(KernelOfMultiplicativeGeneralMapping(hom2));
Append(gens,kg);
Append(fgens,List(kg,i->One(r)));
Expand All @@ -1162,13 +1162,13 @@ end);

#############################################################################
##
#M PreImagesRepresentative( <hom>, <elm> ) . . . . . . for perm group range
#M PreImagesRepresentativeNC( <hom>, <elm> ) . . . . . for perm group range
##
InstallMethod( PreImagesRepresentative, FamRangeEqFamElm,
InstallMethod( PreImagesRepresentativeNC, FamRangeEqFamElm,
[ IsToPermGroupGeneralMappingByImages,
IsMultiplicativeElementWithInverse ], 0,
function( hom, elm )
return ImagesRepresentative( RestrictedInverseGeneralMapping( hom ), elm );
function( hom, elm )
return ImagesRepresentative( RestrictedInverseGeneralMapping( hom ), elm );
end );

#############################################################################
Expand Down Expand Up @@ -1562,10 +1562,10 @@ InstallMethod( ImagesSource,"constituent homomorphism",true,

#############################################################################
##
#M PreImagesRepresentative( <hom>, <elm> )
#M PreImagesRepresentativeNC( <hom>, <elm> )
##
InstallMethod( PreImagesRepresentative,"constituent homomorphism",
FamRangeEqFamElm,[IsConstituentHomomorphism,IsPerm], 0,
InstallMethod( PreImagesRepresentativeNC, "constituent homomorphism",
FamRangeEqFamElm, [IsConstituentHomomorphism,IsPerm], 0,
function( hom, elm )
local D,DP;
if not HasStabChainMutable(Source(hom)) then
Expand All @@ -1579,9 +1579,9 @@ end);

#############################################################################
##
#M PreImagesSet( <hom>, <I> ) . . . . . . . . . . . . . . . . for const hom
#M PreImagesSetNC( <hom>, <I> ) . . . . . . . . . . . . . . . . for const hom
##
InstallMethod( PreImagesSet, "constituent homomorphism",CollFamRangeEqFamElms,
InstallMethod( PreImagesSetNC, "constituent homomorphism",CollFamRangeEqFamElms,
[ IsConstituentHomomorphism, IsPermGroup ], 0,
function( hom, I )
local H, # preimage of <I>, result
Expand All @@ -1594,7 +1594,7 @@ InstallMethod( PreImagesSet, "constituent homomorphism",CollFamRangeEqFamElms,
# create the preimage group
H := EmptyStabChain( [ ], One( Source( hom ) ) );
S := ConjugateStabChain( StabChainMutable( I ), H, x ->
PreImagesRepresentative( hom, x ), hom!.conperm ^ -1 );
PreImagesRepresentativeNC( hom, x ), hom!.conperm ^ -1 );
T := H;
while IsBound( T.stabilizer ) do
AddGeneratorsExtendSchreierTree( T, GeneratorsOfGroup( K ) );
Expand Down Expand Up @@ -1817,9 +1817,9 @@ end );

#############################################################################
##
#M PreImagesRepresentative( <hom>, <elm> ) . . . . . . . . . for blocks hom
#M PreImagesRepresentativeNC( <hom>, <elm> ) . . . . . . . . for blocks hom
##
InstallMethod( PreImagesRepresentative, "blocks homomorphism",
InstallMethod( PreImagesRepresentativeNC, "blocks homomorphism",
FamRangeEqFamElm,
[ IsBlocksHomomorphism, IsMultiplicativeElementWithInverse ], 0,
function( hom, elm )
Expand Down Expand Up @@ -1869,9 +1869,9 @@ end) ;

#############################################################################
##
#M PreImagesSet( <hom>, <I> ) . . . . . . . . . . . . . . . for blocks hom
#M PreImagesSetNC( <hom>, <I> ) . . . . . . . . . . . . . . for blocks hom
##
InstallMethod( PreImagesSet, CollFamRangeEqFamElms,
InstallMethod( PreImagesSetNC, CollFamRangeEqFamElms,
[ IsBlocksHomomorphism, IsPermGroup ], 0,
function( hom, I )
local H; # preimage of <I> under <hom>, result
Expand Down Expand Up @@ -1905,7 +1905,7 @@ InstallGlobalFunction( PreImageSetStabBlocksHomomorphism, function( hom, I )
H := PreImageSetStabBlocksHomomorphism( hom, I.stabilizer );
ChangeStabChain( H, [ pnt ], false );
for gen in I.generators do
pre := PreImagesRepresentative( hom, gen );
pre := PreImagesRepresentativeNC( hom, gen );
if not IsBound( H.translabels[ pnt ^ pre ] ) then
AddGeneratorsExtendSchreierTree( H, [ pre ] );
fi;
Expand Down
12 changes: 6 additions & 6 deletions lib/gprdmat.gi
Original file line number Diff line number Diff line change
Expand Up @@ -143,9 +143,9 @@ end);

#############################################################################
##
#M PreImagesRepresentative(<emb>,<g>) . . . . . . . . . . . of embedding
#M PreImagesRepresentativeNC(<emb>,<g>) . . . . . . . . . . . of embedding
##
InstallMethod(PreImagesRepresentative,"matrix direct product embedding",
InstallMethod(PreImagesRepresentativeNC,"matrix direct product embedding",
FamRangeEqFamElm,
[ IsEmbeddingDirectProductMatrixGroup,
IsMultiplicativeElementWithInverse ],
Expand Down Expand Up @@ -206,9 +206,9 @@ end);

#############################################################################
##
#M PreImagesRepresentative(<prj>,<g>) . . . . . . . . . . . of projection
#M PreImagesRepresentativeNC(<prj>,<g>) . . . . . . . . . . . of projection
##
InstallMethod(PreImagesRepresentative,"matrix direct product projection",
InstallMethod(PreImagesRepresentativeNC,"matrix direct product projection",
FamRangeEqFamElm,
[ IsProjectionDirectProductMatrixGroup,
IsMultiplicativeElementWithInverse ],0,
Expand Down Expand Up @@ -367,9 +367,9 @@ end);

#############################################################################
##
#M PreImagesRepresentative( <emb>, <g> ) . . . . . . . . . . . of embedding
#M PreImagesRepresentativeNC( <emb>, <g> ) . . . . . . . . . . of embedding
##
InstallMethod( PreImagesRepresentative,
InstallMethod( PreImagesRepresentativeNC,
"imprim matrix wreath product embedding", FamRangeEqFamElm,
[ IsEmbeddingImprimitiveWreathProductMatrixGroup,
IsMultiplicativeElementWithInverse ], 0,
Expand Down
Loading