Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  ghomfp.gd   Sprache: unbekannt

 
#############################################################################
##
##  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
##

############################################################################
##
#R  IsFromFpGroupGeneralMapping(<map>)
#R  IsFromFpGroupHomomorphism(<map>)
##
##  <ManSection>
##  <Filt Name="IsFromFpGroupGeneralMapping" Arg='map' Type='Representation'/>
##  <Filt Name="IsFromFpGroupHomomorphism" Arg='map' Type='Representation'/>
##
##  <Description>
##  is the representation of mappings from an fp group.
##  </Description>
##  </ManSection>
##
DeclareCategory( "IsFromFpGroupGeneralMapping", IsGroupGeneralMapping
  # we want all methods for homs from fp groups to be better. This (slight
  # hack) increases the rank of the category of such mappings.
  and NewFilter("Extrarankfilter",10));
DeclareSynonym("IsFromFpGroupHomomorphism",
  IsFromFpGroupGeneralMapping and IsMapping);

############################################################################
##
#R  IsFromFpGroupGeneralMappingByImages(<map>)
#R  IsFromFpGroupHomomorphismByImages(<map>)
##
##  <#GAPDoc Label="IsFromFpGroupGeneralMappingByImages">
##  <ManSection>
##  <Filt Name="IsFromFpGroupGeneralMappingByImages" Arg='map'
##   Type='Representation'/>
##  <Filt Name="IsFromFpGroupHomomorphismByImages" Arg='map'
##   Type='Representation'/>
##
##  <Description>
##  is the representation of mappings from an fp group.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareRepresentation( "IsFromFpGroupGeneralMappingByImages",
      IsFromFpGroupGeneralMapping and IsGroupGeneralMappingByImages,
      [ "generators", "genimages" ] );
DeclareSynonym("IsFromFpGroupHomomorphismByImages",
  IsFromFpGroupGeneralMappingByImages and IsMapping);

############################################################################
##
#R  IsFromFpGroupStdGensGeneralMappingByImages(<map>)
#R  IsFromFpGroupStdGensHomomorphismByImages(<map>)
##
##  <#GAPDoc Label="IsFromFpGroupStdGensGeneralMappingByImages">
##  <ManSection>
##  <Filt Name="IsFromFpGroupStdGensGeneralMappingByImages" Arg='map'
##   Type='Representation'/>
##  <Filt Name="IsFromFpGroupStdGensHomomorphismByImages" Arg='map'
##   Type='Representation'/>
##
##  <Description>
##  is the representation of total mappings from an fp group that give images of
##  the standard generators.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareRepresentation( "IsFromFpGroupStdGensGeneralMappingByImages",
      IsFromFpGroupGeneralMappingByImages, [ "generators", "genimages" ] );
DeclareSynonym("IsFromFpGroupStdGensHomomorphismByImages",
  IsFromFpGroupStdGensGeneralMappingByImages and IsMapping);


############################################################################
##
#R  IsToFpGroupGeneralMappingByImages(<map>)
#R  IsToFpGroupHomomorphismByImages(<map>)
##
##  <ManSection>
##  <Filt Name="IsToFpGroupGeneralMappingByImages" Arg='map' Type='Representation'/>
##  <Filt Name="IsToFpGroupHomomorphismByImages" Arg='map' Type='Representation'/>
##
##  <Description>
##  </Description>
##  </ManSection>
##
DeclareRepresentation( "IsToFpGroupGeneralMappingByImages",
      IsGroupGeneralMappingByImages,
      [ "generators", "genimages" ] );
DeclareSynonym("IsToFpGroupHomomorphismByImages",
  IsToFpGroupGeneralMappingByImages and IsMapping);

############################################################################
##
#P  IsWordDecompHomomorphism(<map>)
##
##  <ManSection>
##  <Prop Name="IsWordDecompHomomorphism" Arg='map'/>
##
##  <Description>
##  these homomorphism contain a component <C>!.decompinfo</C> that provides
##  functionality to decompose a word into generators. They are primarily
##  used for <C>IsomorphismFpGroupBy...Series</C>.
##  </Description>
##  </ManSection>
##
DeclareProperty( "IsWordDecompHomomorphism",IsGroupGeneralMappingByImages);

#############################################################################
##
#A  CosetTableFpHom(<hom>)
##
##  <ManSection>
##  <Attr Name="CosetTableFpHom" Arg='hom'/>
##
##  <Description>
##  returns an augmented coset table for an homomorphism from an fp group,
##  corresponding to the !.generators component. The component
##  <C>.secondaryImages</C> of this table will give the images of all (primary
##  and secondary) subgroup generators under <A>hom</A>.
##  <P/>
##  As we might want to add further entries to the table, it is a mutable
##  attribute.
##  </Description>
##  </ManSection>
##
DeclareAttribute("CosetTableFpHom",IsGeneralMapping,"mutable");

#############################################################################
##
#F  SecondaryImagesAugmentedCosetTable(<aug>,<gens>,<genimages>)
##
##  <ManSection>
##  <Func Name="SecondaryImagesAugmentedCosetTable" Arg='aug,gens,genimages'/>
##
##  <Description>
##  returns a list of images of the secondary generators, based on the
##  components <C>homgens</C> and <C>homgenims</C> in the augmented coset table <A>aug</A>.
##  </Description>
##  </ManSection>
##
DeclareGlobalFunction("SecondaryImagesAugmentedCosetTable");

#############################################################################
##
#F  TrySecondaryImages(<aug>)
##
##  <ManSection>
##  <Func Name="TrySecondaryImages" Arg='aug'/>
##
##  <Description>
##  sets a component <C>secondaryImages</C> in the augmented coset table (seeded
##  to a ShallowCopy of the primary images) if having all these images
##  cannot become too memory extensive. (Call this function for augmented
##  coset tables for homomorphisms once -- the other functions make use of
##  the <C>secondaryImages</C> component if existing.)
##  </Description>
##  </ManSection>
##
DeclareGlobalFunction("TrySecondaryImages");

#############################################################################
##
#F  KuKGenerators( <G>, <beta>, <alpha> )
##
##  <#GAPDoc Label="KuKGenerators">
##  <ManSection>
##  <Func Name="KuKGenerators" Arg='G, beta, alpha'/>
##
##  <Description>
##  <Index>Krasner-Kaloujnine theorem</Index>
##  <Index>Wreath product embedding</Index>
##  If <A>beta</A> is a homomorphism from <A>G</A> into a transitive
##  permutation group, <M>U</M> the full preimage of the point stabilizer and
##  <A>alpha</A> a homomorphism defined on (a superset) of <M>U</M>,
##  this function returns images of the generators of <A>G</A> when mapping
##  to the wreath product <M>(U <A>alpha</A>) \wr (<A>G</A> <A>beta</A>)</M>.
##  (This is the Krasner-Kaloujnine embedding theorem.)
##  <Example><![CDATA[
##  gap> g:=Group((1,2,3,4),(1,2));;
##  gap> hom:=GroupHomomorphismByImages(g,Group((1,2)),
##  > GeneratorsOfGroup(g),[(1,2),(1,2)]);;
##  gap> u:=PreImage(hom,Stabilizer(Image(hom),1));
##  Group([ (2,3,4), (1,2,4) ])
##  gap> hom2:=GroupHomomorphismByImages(u,Group((1,2,3)),
##  > GeneratorsOfGroup(u),[ (1,2,3), (1,2,3) ]);;
##  gap> KuKGenerators(g,hom,hom2);
##  [ (1,4)(2,5)(3,6), (1,6)(2,4)(3,5) ]
##  ]]></Example>
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareGlobalFunction("KuKGenerators");

#############################################################################
##
#A  IsomorphismSimplifiedFpGroup( <G> )
##
##  <#GAPDoc Label="IsomorphismSimplifiedFpGroup">
##  <ManSection>
##  <Attr Name="IsomorphismSimplifiedFpGroup" Arg='G'/>
##
##  <Description>
##  applies Tietze transformations to a copy of the presentation of the
##  given finitely presented group <A>G</A> in order to reduce it
##  with respect to the number of generators, the number of relators,
##  and the relator lengths.
##  <P/>
##  The operation returns an isomorphism with source <A>G</A>, range a group
##  <A>H</A> isomorphic to <A>G</A>, so that the presentation of <A>H</A> has
##  been simplified using Tietze transformations.
##  <Example><![CDATA[
##  gap> f:=FreeGroup(3);;
##  gap> g:=f/[f.1^2,f.2^3,(f.1*f.2)^5,f.1/f.3];
##  <fp group on the generators [ f1, f2, f3 ]>
##  gap> hom:=IsomorphismSimplifiedFpGroup(g);
##  [ f1, f2, f3 ] -> [ f1, f2, f1 ]
##  gap> Range(hom);
##  <fp group on the generators [ f1, f2 ]>
##  gap> RelatorsOfFpGroup(Range(hom));
##  [ f1^2, f2^3, (f1*f2)^5 ]
##  gap> RelatorsOfFpGroup(g);
##  [ f1^2, f2^3, (f1*f2)^5, f1*f3^-1 ]
##  ]]></Example>
##  <P/>
##  <Ref Attr="IsomorphismSimplifiedFpGroup"/> uses Tietze transformations
##  to simplify the presentation, see <Ref Sect="SimplifiedFpGroup"/>.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareAttribute("IsomorphismSimplifiedFpGroup",IsSubgroupFpGroup);

#############################################################################
##
#A  EpimorphismFromFreeGroup( <G> )
##
##  <#GAPDoc Label="EpimorphismFromFreeGroup">
##  <ManSection>
##  <Attr Name="EpimorphismFromFreeGroup" Arg='G'/>
##
##  <Description>
##  For a group <A>G</A> with a known generating set, this attribute returns
##  a homomorphism from a free group that maps the free generators to the
##  generators of <A>G</A>.
##  <P/>
##  The option <C>names</C> can be used to prescribe a (print) name
##  for the free generators.
##  <P/>
##  The following example shows how to decompose elements of <M>S_4</M> in the
##  generators <C>(1,2,3,4)</C> and <C>(1,2)</C>:
##  <P/>
##  <Example><![CDATA[
##  gap> g:=Group((1,2,3,4),(1,2));
##  Group([ (1,2,3,4), (1,2) ])
##  gap> hom:=EpimorphismFromFreeGroup(g:names:=["x","y"]);
##  [ x, y ] -> [ (1,2,3,4), (1,2) ]
##  gap> PreImagesRepresentative(hom,(1,4));
##  y^-1*x^-1*(x^-1*y^-1)^2*x
##  ]]></Example>
##  <P/>
##  The following example stems from a real request to the &GAP; Forum.
##  In September 2000 a &GAP; user working with puzzles wanted to express the
##  permutation <C>(1,2)</C> as a word as short as possible in particular
##  generators of the symmetric group <M>S_{16}</M>.
##  <P/>
##  <Example><![CDATA[
##  gap> perms := [ (1,2,3,7,11,10,9,5), (2,3,4,8,12,11,10,6),
##  >   (5,6,7,11,15,14,13,9), (6,7,8,12,16,15,14,10) ];;
##  gap> puzzle := Group( perms );;Size( puzzle );
##  20922789888000
##  gap> hom:=EpimorphismFromFreeGroup(puzzle:names:=["a", "b", "c", "d"]);;
##  gap> word := PreImagesRepresentative( hom, (1,2) );
##  a^-1*c*b*c^-1*a*b^-1*a^-2*c^-1*a*b^-1*c*b
##  gap> Length( word );
##  13
##  ]]></Example>
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareAttribute("EpimorphismFromFreeGroup",IsGroup);

#############################################################################
##
#F  LargerQuotientBySubgroupAbelianization( <hom>,<U> )
##
##  <#GAPDoc Label="LargerQuotientBySubgroupAbelianization">
##  <ManSection>
##  <Func Name="LargerQuotientBySubgroupAbelianization" Arg='hom, U'/>
##
##  <Description>
##  Let <A>hom</A> a homomorphism from a finitely presented group <M>G</M>
##  to a finite group <M>H</M> and <M><A>U</A> \leq H</M>.
##  This function will –if it exists– return a subgroup
##  <M>S \leq <A>G</A></M>, such that the core of <M>S</M> is properly
##  contained in the kernel of <A>hom</A> as well as in the derived subgroup
##  of <M>V</M>,
##  where <M>V</M> is the pre-image of <A>U</A> under <A>hom</A>.
##  Thus <M>S</M> exposes a larger quotient of <M>G</M>.
##  If no such subgroup exists, <K>fail</K> is returned.
##  <Example><![CDATA[
##  gap> f:=FreeGroup("x","y","z");;
##  gap> g:=f/ParseRelators(f,"x^3=y^3=z^5=(xyx^2y^2)^2=(xz)^2=(yz^3)^2=1");
##  <fp group on the generators [ x, y, z ]>
##  gap> l:=LowIndexSubgroupsFpGroup(g,6);;
##  gap> List(l,IndexInWholeGroup);
##  [ 1, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6 ]
##  gap> q:=DefiningQuotientHomomorphism(l[6]);;p:=Image(q);Size(p);
##  Group([ (4,5,6), (1,2,3)(4,6,5), (2,4,6,3,5) ])
##  360
##  gap> s:=LargerQuotientBySubgroupAbelianization(q,SylowSubgroup(p,3));
##  Group(<fp, no generators known>)
##  gap> Size(Image(DefiningQuotientHomomorphism(s)));
##  193273528320
##  ]]></Example>
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareGlobalFunction("LargerQuotientBySubgroupAbelianization");

#############################################################################
##
#F  ProcessEpimorphismToNewFpGroup( <hom> )
##
##  <#GAPDoc Label="ProcessHomomorphismToNewFpGroup">
##  <ManSection>
##  <Func Name="LargerQuotientBySubgroupAbelianization" Arg='hom'/>
##
##  <Description>
##  Let <A>hom</A> a homomorphism from a group <A>G</A> to a newly created
##  finitely presented group <A>F</A> (in which no calculation yet has taken
##  place) such that the inverse of <A>hom</A> can be applied to elements of
##  $F$. This function endows <A>F</A> (or, more
##  correctly, its elements family) with information (in the form of an
##  <C>FPFaithHom</C>) about <A>G</A> that can be
##  used to obtain a faithful representation for <A>F</A>. This can be in the
##  form of <A>G</A> itself being a permutation/matrix or fp group. It also can
##  be if <A>G</A> is finitely presented but (its family) has an
##  <C>FPFaithHom</A>. (However it will not apply if <A>G</A> is a subgroup
##  of an fp group.) The result of this is make higher level calculations in
##  <A>F</A> more efficient.
##  This is an internal function that does not test its arguments and the
##  result is undefined if calling the function on any other object.
##  </Description>
##  </ManSection>
##  <#/GAPDoc>
##
DeclareGlobalFunction("ProcessEpimorphismToNewFpGroup");

#############################################################################
##
#M  InducedRepFpGroup(<hom>,<u> )
##
##  induce <hom> def. on <u> up to the full group
DeclareGlobalFunction("InducedRepFpGroup");

[ Dauer der Verarbeitung: 0.9 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge