Quelle _Chapter_Cosets_of_PcpGroups.xml
Sprache: XML
<?xmlversion="1.0"encoding="UTF-8"?>
<!-- This is an automatically generated file. -->
<Chapter Label="Chapter_Cosets_of_PcpGroups">
<Heading>Cosets of PcpGroups</Heading>
&GAP; is well-equipped to deal with <Emph>finite</Emph> cosets. However, if a coset
is infinite, methods may not be available, may be faulty, or may run
forever. The &PACKAGENAME; package provides additional methods for
existing functions that can deal with infinite cosets of PcpGroups.
<P/>
The only completely new functions are
<Ref Func="DoubleCosetIndex" Style="Number"/> and its <C>NC</C> version.
<Section Label="Chapter_Cosets_of_PcpGroups_Section_Right_cosets">
<Heading>Right cosets</Heading>
Calculating the intersection of two right cosets <Math>Hx</Math> and <Math>Ky</Math> can be
reduced to calculating the intersection <Math>H \cap K</Math> and verifying whether
<Math>xy^{-1} \in HK</Math> (see <Ref Oper="\in"
Label="for an element and a double coset of a PcpGroup" Style="Number"/>).
<ManSection Label="AutoDoc_generated_group13">
<Func Arg="C1, C2, ..." Name="Intersection" Label="of right cosets of a PcpGroup"/>
<Func Arg="L" Name="Intersection" Label="of a list of right cosets of a PcpGroup"/>
<Returns>the intersection of the right cosets <A>C1</A>, <A>C2</A>, ...
</Returns>
<Description>
Alternatively, this function also accepts a single list of right cosets
<A>L</A> as argument.
<P/>
This intersection is always a right coset, or the empty list.
<P/>
</Description>
</ManSection>
<Example><![CDATA[
gap> G := ExamplesOfSomePcpGroups( 5 );;
gap> H := Subgroup( G, [ G.1*G.2^-1*G.3^-1*G.4^-1, G.2^-1*G.3*G.4^-2 ] );;
gap> K := Subgroup( G, [ G.1*G.3^-2*G.4^2, G.1*G.4^4 ] );;
gap> x := G.1*G.3^-1;;
gap> y := G.1*G.2^-1*G.3^-2*G.4^-1;;
gap> z := G.1*G.2*G.3*G.4^2;;
gap> Hx := RightCoset( H, x );;
gap> Ky := RightCoset( K, y );;
gap> Intersection( Hx, Ky );
RightCoset(<group with 2 generators>,<object>)
gap> Kz := RightCoset( K, z );;
gap> Intersection( Hx, Kz );
[ ]
]]></Example>
Algorithms designed for computing with twisted conjugacy classes can be
leveraged to do computations involving double cosets, see
<Cite Key='tert25-a' Where='Sec. 9'/> for a description on this. When the
&PACKAGENAME; package is loaded, it does this automatically, and the
functions below should then work for PcpGroups, even if they are infinite.
<ManSection Label="AutoDoc_generated_group14">
<Heading>\in</Heading>
<Oper Arg="g, D" Name="\in" Label="for an element and a double coset of a PcpGroup"/>
<Returns><K>true</K> if <A>g</A> is an element of <A>D</A>, otherwise <K>false</K>.
</Returns>
<Description>
<P/>
</Description>
</ManSection>
<ManSection Label="AutoDoc_generated_group15">
<Heading>Size</Heading>
<Oper Arg="D" Name="Size" Label="of a double coset of a PcpGroup"/>
<Returns>the number of elements in <A>D</A>.
</Returns>
<Description>
<P/>
</Description>
</ManSection>
<ManSection Label="AutoDoc_generated_group16">
<Heading>List</Heading>
<Func Arg="D" Name="List" Label="of a double coset of a PcpGroup"/>
<Returns>a list containing the elements of <A>D</A>.
</Returns>
<Description>
If <A>D</A> is infinite, this will run forever. It is recommended to first
test the finiteness of <A>D</A> using
<Ref Attr="Size" Label="of a double coset of a PcpGroup" Style="Number"/>.
</Description>
</ManSection>
<ManSection Label="AutoDoc_generated_group17">
<Heading>\=</Heading>
<Oper Arg="C, D" Name="\=" Label="for double cosets of a PcpGroup"/>
<Returns><K>true</K> if <A>C</A> and <A>D</A> are the same double coset, otherwise <K>false</K>.
</Returns>
<Description>
<P/>
</Description>
</ManSection>
<ManSection Label="AutoDoc_generated_group18">
<Heading>DoubleCosets</Heading>
<Func Arg="G, H, K" Name="DoubleCosets" Label="for PcpGroups"/>
<Oper Arg="G, H, K" Name="DoubleCosetsNC" Label="for PcpGroups"/>
<Returns>a duplicate-free list of all <C>(<A>H</A>,<A>K</A>)</C>-double cosets in <A>G</A> if there are finitely many, otherwise <K>fail</K>.
</Returns>
<Description>
The groups <A>H</A> and <A>K</A> must be subgroups of the group <A>G</A>.
The <C>NC</C> version does not check whether this is the case.
<P/>
</Description>
</ManSection>
<ManSection Label="AutoDoc_generated_group19">
<Heading>DoubleCosetRepsAndSizes</Heading>
<Oper Arg="G, H, K" Name="DoubleCosetRepsAndSizes" Label="for PcpGroups"/>
<Returns>a list containing pairs of the form <C>[ r, n ]</C>, where <C>r</C> is a representative and <C>n</C> is the size of a double coset.
</Returns>
<Description>
While for finite groups this function is supposed to be faster than
<Ref Oper="DoubleCosetsNC" Label="for PcpGroups" Style="Number"/>, for
PcpGroups it is usually <Emph>slower</Emph>.
</Description>
</ManSection>
<ManSection Label="AutoDoc_generated_group20">
<Heading>DoubleCosetIndex</Heading>
<Func Arg="G, H, K" Name="DoubleCosetIndex" />
<Oper Arg="G, H, K" Name="DoubleCosetIndexNC" />
<Returns>the double coset index of the pair (<A>H</A>,<A>K</A>).
</Returns>
<Description>
The groups <A>H</A> and <A>K</A> must be subgroups of the group <A>G</A>.
The <C>NC</C> version does not check whether this is the case.
<P/>
</Description>
</ManSection>
<Example><![CDATA[
gap> HxK := DoubleCoset( H, x, K );;
gap> HyK := DoubleCoset( H, y, K );;
gap> HzK := DoubleCoset( H, z, K );;
gap> y in HxK;
true
gap> z in HxK;
false
gap> HxK = HyK;
true
gap> HxK = HzK;
false
gap> DoubleCosets( G, H, K );
[ DoubleCoset(<group with 2 generators>,<object>,<group with 2 generators>),
DoubleCoset(<group with 2 generators>,<object>,<group with 2 generators>) ]
gap> DoubleCosetIndex( G, H, K );
2
]]></Example>
</Section>
</Chapter>
¤ Dauer der Verarbeitung: 0.12 Sekunden
(vorverarbeitet)
¤
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 ist noch experimentell.