<?xml version="1.0" encoding="UTF-8"?>
<!-- This is an automatically generated file. -->
<Chapter Label="Chapter_Compatibility">
<Heading>Compatibility</Heading>
<P/>
<Section Label="Section_condition_C">
<Heading>The compatibility condition (C)</Heading>
A subgroup <Math>F\le\mathrm{Aut}(B_{d,k})</Math> satifies the compatibility condition (C) if and only if <Math>\mathrm{U}_{k}(F)</Math> is locally action isomorphic to <Math>F</Math>, see <Cite Key="Tor20" Where="Proposition 3.8"/>. The term <E>compatibility</E> comes from the following translation of this condition into properties of the <Math>(k-1)</Math>-local actions of elements of <Math>F</Math>: The group <Math>F</Math> satisfies (C) if and only if <Display>\forall \alpha\in F\ \forall\omega\in\Omega\ \exists\beta\in F:\ \sigma_{k-1}(\alpha,b)=\sigma_{k-1}(\beta,b_{\omega}),\ \sigma_{k-1}(\alpha,b_{\omega})=\sigma_{k-1}(\beta,b).</Display>
</Section>
<Section Label="Section_compatible_elements">
<Heading>Compatible elements</Heading>
This section is concerned with testing compatibility of two given elements (see <Ref Func="AreCompatibleBallElements"/>) and finding an/all elements that is/are compatible with a given one (see <Ref Func="CompatibleBallElement"/>, <Ref Func="CompatibilitySet"/>).
<ManSection>
<Func Arg="d,k,aut1,aut2,dir" Name="AreCompatibleBallElements" />
<Returns> <K>true</K> if <A>aut1</A> and <A>aut2</A> are compatible with each other in direction <A>dir</A>, and <K>false</K> otherwise.
</Returns>
<Description>
The arguments of this method are a degree <A>d</A> <Math>\in\mathbb{N}_{\ge 3}</Math>, a radius <A>k</A> <Math>\in\mathbb{N}</Math>, two automorphisms <A>aut1</A>, <A>aut2</A> <Math>\in\mathrm{Aut}(B_{d,k})</Math>, and a direction <A>dir</A> <Math>\in</Math><C>[1..d]</C>.
<P/>
</Description>
</ManSection>
<P/>
<Example><![CDATA[
gap> AreCompatibleBallElements(3,1,(1,2),(1,2,3),1);
true
gap> AreCompatibleBallElements(3,1,(1,2),(1,2,3),2);
false
]]></Example>
<P/>
<Example><![CDATA[
gap> a:=(1,3,5)(2,4,6);; a in AutBall(3,2);
true
gap> LocalAction(1,3,2,a,[]); LocalAction(1,3,2,a,[1]);
(1,2,3)
(1,2)
gap> b:=(1,4)(2,3);; b in AutBall(3,2);
true
gap> LocalAction(1,3,2,b,[]); LocalAction(1,3,2,b,[1]);
(1,2)
(1,2,3)
gap> AreCompatibleBallElements(3,2,a,b,1);
true
gap> AreCompatibleBallElements(3,2,a,b,3);
false
]]></Example>
<ManSection>
<Func Arg="F,aut,dir" Name="CompatibleBallElement" />
<Returns> an element of <A>F</A> that is compatible with <A>aut</A> in direction <A>dir</A> if one exists, and <K>fail</K> otherwise.
</Returns>
<Description>
The arguments of this method are a local action <A>F</A> <Math>\le\mathrm{Aut}(B_{d,k})</Math>, an element <A>aut</A> <Math>\in</Math> <A>F</A>, and a direction <A>dir</A> <Math>\in</Math><C>[1..d]</C>.
<P/>
</Description>
</ManSection>
<P/>
<Example><![CDATA[
gap> mt:=RandomSource(IsMersenneTwister,1);;
gap> a:=Random(mt,AutBall(5,1)); dir:=Random(mt,[1..5]);
(1,2,5,4,3)
4
gap> CompatibleBallElement(AutBall(5,1),a,dir);
(1,2,5,4,3)
]]></Example>
<P/>
<Example><![CDATA[
gap> a:=(1,3,5)(2,4,6);; a in AutBall(3,2);
true
gap> CompatibleBallElement(AutBall(3,2),a,1);
(1,4,2,3)
]]></Example>
<ManSection Label="CompatibilitySet">
<Heading>CompatibilitySet</Heading>
<Oper Arg="F,aut,dir" Name="CompatibilitySet" Label="for F, aut, dir"/>
<Oper Arg="F,aut,dirs" Name="CompatibilitySet" Label="for F, aut, dirs"/>
<Description>
<P/>
<List>
<Mark>for the arguments <A>F</A>, <A>aut</A>, <A>dir</A></Mark>
<Item>
Returns: the list of elements of <A>F</A> that are compatible with <A>aut</A> in direction <A>dir</A>.
<P/>
The arguments of this method are a local action <A>F</A> of <Math>\le\mathrm{Aut}(B_{d,k})</Math>, an automorphism <A>aut</A> <Math>\in F</Math>, and a direction <A>dir</A> <Math>\in</Math><C>[1..d]</C>.
</Item>
<Mark>for the arguments <A>F</A>, <A>aut</A>, <A>dirs</A></Mark>
<Item>
Returns: the list of elements of <A>F</A> that are compatible with <A>aut</A> in all directions of <A>dirs</A>.
<P/>
The arguments of this method are a local action <A>F</A> of <Math>\le\mathrm{Aut}(B_{d,k})</Math>, an automorphism <A>aut</A> <Math>\in F</Math>, and a sublist of directions <A>dirs</A> <Math>\subseteq</Math><C>[1..d]</C>.
</Item>
</List>
<P/>
</Description>
</ManSection>
<P/>
<Example><![CDATA[
gap> F:=LocalAction(4,1,TransitiveGroup(4,3));
D(4)
gap> G:=LocalAction(4,1,SymmetricGroup(4));
Sym( [ 1 .. 4 ] )
gap> aut:=(1,3);; aut in F;
true
gap> CompatibilitySet(G,aut,1);
RightCoset(Sym( [ 2 .. 4 ] ),(1,3))
gap> CompatibilitySet(F,aut,1);
RightCoset(Group([ (2,4) ]),(1,3))
gap> CompatibilitySet(F,aut,[1,3]);
RightCoset(Group([ (2,4) ]),(1,3))
gap> CompatibilitySet(F,aut,[1,2]);
RightCoset(Group(()),(1,3))
]]></Example>
<P/>
<ManSection>
<Func Arg="d,k,auts" Name="AssembleAutomorphism" />
<Returns> the automorphism <Math>(</Math><C>aut</C><Math>,(</Math><A>auts</A><Math>[</Math><C>i</C><Math>])_{i=1}^{d})</Math> of <Math>B_{d,k+1}</Math>, where <C>aut</C> is implicit in <Math>(</Math><A>auts</A><Math>[</Math><C>i</C><Math>])_{i=1}^{d}</Math>.
</Returns>
<Description>
The arguments of this method are a degree <A>d</A> <Math>\in\mathbb{N}_{\ge 3}</Math>, a radius <A>k</A> <Math>\in\mathbb{N}</Math>, and a list <A>auts</A> of <A>d</A> automorphisms <Math>(</Math><A>auts</A><Math>[</Math><C>i</C><Math>])_{i=1}^{d}</Math> of <Math>B_{d,k}</Math> which comes from an element <Math>(</Math><C>aut</C><Math>,(</Math><A>auts</A><Math>[</Math><C>i</C><Math>])_{i=1}^{d})</Math> of <Math>\mathrm{Aut}(B_{d,k+1})</Math>.
<P/>
</Description>
</ManSection>
<P/>
<Example><![CDATA[
gap> mt:=RandomSource(IsMersenneTwister,1);;
gap> aut:=Random(mt,AutBall(3,2));
(1,4,5,2,3,6)
gap> auts:=[];;
gap> for i in [1..3] do auts[i]:=CompatibleBallElement(AutBall(3,2),aut,i); od;
gap> auts;
[ (1,4,6,2,3,5), (1,3,6,2,4,5), (1,5)(2,6) ]
gap> a:=AssembleAutomorphism(3,2,auts);
(1,7,9,3,5,11)(2,8,10,4,6,12)
gap> a in AutBall(3,3);
true
gap> LocalAction(2,3,3,a,[]);
(1,4,5,2,3,6)
]]></Example>
</Section>
<Section Label="Chapter_Compatibility_Section_Compatible_subgroups">
<Heading>Compatible subgroups</Heading>
Using the methods of Section <Ref Sect="Section_compatible_elements"/>, this section provides methods to test groups for the compatibility condition and search for compatible subgroups inside a given group, e.g. <Math>\mathrm{Aut}(B_{d,k})</Math>, or with a certain image under some projection.
<ManSection>
<Attr Arg="F" Name="MaximalCompatibleSubgroup" Label="for IsLocalAction"/>
<Returns>The local action <Math>C(</Math><A>F</A><Math>)\le\mathrm{Aut}(B_{d,k})</Math>, which is the maximal compatible subgroup of <A>F</A>.
</Returns>
<Description>
The argument of this attribute is a local action <A>F</A> <Math>\le\mathrm{Aut}(B_{d,k})</Math> (see <Ref Filt="IsLocalAction" Label="for IsPermGroup"/>).
<P/>
</Description>
</ManSection>
<P/>
<Example><![CDATA[
gap> F:=LocalAction(3,1,Group((1,2)));
Group([ (1,2) ])
gap> MaximalCompatibleSubgroup(F);
Group([ (1,2) ])
gap> G:=LocalAction(3,2,Group((1,2)));
Group([ (1,2) ])
gap> MaximalCompatibleSubgroup(G);
Group(())
]]></Example>
<ManSection>
<Prop Arg="F" Name="SatisfiesC" Label="for IsLocalAction"/>
<Returns><K>true</K> if <A>F</A> satisfies the compatibility condition (C), and <K>false</K> otherwise.
</Returns>
<Description>
The argument of this property is a local action <A>F</A> <Math>\le\mathrm{Aut}(B_{d,k})</Math> (see <Ref Filt="IsLocalAction" Label="for IsPermGroup"/>).
<P/>
</Description>
</ManSection>
<P/>
<Example><![CDATA[
gap> D:=LocalActionDelta(3,SymmetricGroup(3));
Group([ (1,3,6)(2,4,5), (1,3)(2,4), (1,2)(3,4)(5,6) ])
gap> SatisfiesC(D);
true
]]></Example>
<ManSection>
<Func Arg="F" Name="CompatibleSubgroups" />
<Returns>the list of all compatible subgroups of <A>F</A>.
</Returns>
<Description>
The argument of this method is a local action <A>F</A> <Math>\le\mathrm{Aut}(B_{d,k})</Math>. This method calls <C>AllSubgroups</C> on <Math>F</Math> and is therefore slow. Use for instructional purposes on small examples only, and use <Ref Attr="ConjugacyClassRepsCompatibleSubgroups" Label="for IsLocalAction"/> or <Ref Func="ConjugacyClassRepsCompatibleGroupsWithProjection"/> for computations.
<P/>
</Description>
</ManSection>
<P/>
<Example><![CDATA[
gap> G:=LocalActionGamma(3,SymmetricGroup(3));
Group([ (1,4,5)(2,3,6), (1,3)(2,4)(5,6) ])
gap> list:=CompatibleSubgroups(G);
[ Group(()), Group([ (1,2)(3,5)(4,6) ]), Group([ (1,3)(2,4)(5,6) ]),
Group([ (1,6)(2,5)(3,4) ]), Group([ (1,4,5)(2,3,6) ]),
Group([ (1,4,5)(2,3,6), (1,3)(2,4)(5,6) ]) ]
gap> Size(list);
6
gap> Size(AllSubgroups(SymmetricGroup(3)));
6
]]></Example>
<ManSection>
<Attr Arg="F" Name="ConjugacyClassRepsCompatibleSubgroups" Label="for IsLocalAction"/>
<Returns>a list of compatible representatives of conjugacy classes of <A>F</A> that contain a compatible subgroup.
</Returns>
<Description>
The argument of this method is a local action <A>F</A> of <Math>\mathrm{Aut}(B_{d,k})</Math>.
<P/>
</Description>
</ManSection>
<P/>
<Example><![CDATA[
gap> ConjugacyClassRepsCompatibleSubgroups(AutBall(3,2));
[ Group(()), Group([ (1,2)(3,5)(4,6) ]), Group([ (1,4,5)(2,3,6) ]),
Group([ (3,5)(4,6), (1,2) ]), Group([ (1,2)(3,5)(4,6), (1,3,6)(2,4,5) ]),
Group([ (3,5)(4,6), (1,3,5)(2,4,6), (1,2)(3,4)(5,6) ]),
Group([ (1,2)(3,5)(4,6), (1,3,5)(2,4,6), (1,2)(5,6), (1,2)(3,4) ]),
Group([ (3,5)(4,6), (1,3,5)(2,4,6), (1,2)(5,6), (1,2)(3,4) ]),
Group([ (5,6), (3,4), (1,2), (1,3,5)(2,4,6), (3,5)(4,6) ]) ]
]]></Example>
<ManSection>
<Func Arg="l,F" Name="ConjugacyClassRepsCompatibleGroupsWithProjection" />
<Returns> a list of compatible representatives of conjugacy classes of <Math>\mathrm{Aut}(B_{d,l})</Math> that contain a compatible group which projects to <A>F</A> <Math>\le\mathrm{Aut}(B_{d,r})</Math>.
</Returns>
<Description>
The arguments of this method are a radius <A>l</A> <Math>\in\mathbb{N}</Math>, and a local action <A>F</A> <Math>\le\mathrm{Aut}(B_{d,k})</Math> for some <Math>k\le l</Math>.
<P/>
</Description>
</ManSection>
<P/>
<Example><![CDATA[
gap> S3:=LocalAction(3,1,SymmetricGroup(3));
Sym( [ 1 .. 3 ] )
gap> ConjugacyClassRepsCompatibleGroupsWithProjection(2,S3);
[ Group([ (1,2)(3,5)(4,6), (1,4,5)(2,3,6) ]),
Group([ (1,2)(3,4)(5,6), (1,2)(3,5)(4,6), (1,4,5)(2,3,6) ]),
Group([ (3,4)(5,6), (1,2)(3,4), (1,4,5)(2,3,6), (3,5,4,6) ]),
Group([ (3,4)(5,6), (1,2)(3,4), (1,4,5)(2,3,6), (3,5)(4,6) ]),
Group([ (3,4)(5,6), (1,2)(3,4), (1,4,5)(2,3,6), (5,6), (3,5,4,6) ]) ]
gap> A3:=LocalAction(3,1,AlternatingGroup(3));
Alt( [ 1 .. 3 ] )
gap> ConjugacyClassRepsCompatibleGroupsWithProjection(2,A3);
[ Group([ (1,4,5)(2,3,6) ]) ]
]]></Example>
<P/>
<Example><![CDATA[
gap> F:=SymmetricGroup(3);;
gap> rho:=SignHomomorphism(F);;
gap> H1:=LocalActionPi(2,3,F,rho,[0,1]);;
gap> H2:=LocalActionPi(2,3,F,rho,[1]);;
gap> Size(ConjugacyClassRepsCompatibleGroupsWithProjection(3,H1));
2
gap> Size(ConjugacyClassRepsCompatibleGroupsWithProjection(3,H2));
4
]]></Example>
</Section>
</Chapter>
¤ Dauer der Verarbeitung: 0.4 Sekunden
¤
*© Formatika GbR, Deutschland
|
|