GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
############################################################################# ## #W isom.gi Alnuth - ALgebraic NUmber THeory Bjoern Assmann ## ############################################################################# ## #F IsomorphismOfMultGroupByFieldEl( F, elms ) ## IsomorphismOfMultGroupByFieldEl := function( F, elms ) local gens, rels, H, nat,CPCS,G; # calculate a constructive pc-sequence CPCS := CPCSOfGroupByFieldElements( F, elms ); H := PCPOfGroupByFieldElementsByCPCS( F, CPCS ); # new generating set for <elms> G := GroupByGenerators(CPCS.gens); nat := GroupHomomorphismByImagesNC( G, H, CPCS.gens, AsList(Pcp(H)) ); # add infos SetIsBijective( nat, true ); SetIsMultGroupByFieldElemsIsomorphism( nat, true ); nat!.CPCS := CPCS; nat!.field := F; return nat; end; ############################################################################# ## #M Create isom to pcp group ## InstallOtherMethod( IsomorphismPcpGroup, "for matrix fields", true, [IsNumberFieldByMatrices, IsCollection], 0, function( F, elms ) return IsomorphismOfMultGroupByFieldEl( F, elms ); end); InstallOtherMethod( IsomorphismPcpGroup, "for fields def. by polynomial", true, [IsNumberField and IsAlgebraicExtension, IsCollection], 0, function( F, elms ) return IsomorphismOfMultGroupByFieldEl( F, elms ); end); ############################################################################# ## #M Images under group by field elems isom ## InstallMethod( ImagesRepresentative, "for group by field elems isom", FamSourceEqFamElm, [IsGroupGeneralMappingByImages and IsMultGroupByFieldElemsIsomorphism, IsMultiplicativeElementWithInverse], 0, function( nat, h ) local F, H, e, CPCS; F := nat!.field; CPCS := nat!.CPCS; H := Range( nat ); e := ExpVectorOfGroupByFieldElements( F, CPCS,h ); if e=fail then return fail; fi; return MappedVector( e, Pcp(H) ); end);