1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260
|
<Chapter Label="Pcp-groups - polycyclically presented groups">
<Heading>Pcp-groups - polycyclically presented groups</Heading>
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Pcp-elements -- elements of a pc-presented group">
<Heading>Pcp-elements -- elements of a pc-presented group</Heading>
A <E>pcp-element</E> is an element of a group defined by a consistent
pc-presentation given by a collector. Suppose that <M>g_1, \ldots, g_n</M>
are the defining generators of the collector. Recall that each element
<M>g</M> in this group can be written uniquely as a collected word <M>g_1^{e_1}
\cdots g_n^{e_n}</M> with <M>e_i \in &ZZ;</M> and <M>0 \leq e_i < r_i</M> for <M>i \in
I</M>. The integer vector <M>[e_1, \ldots, e_n]</M> is called the <E>exponent
vector</E> of <M>g</M>. The following functions can be used to define
pcp-elements via their exponent vector or via an arbitrary generator
exponent word as introduced in Chapter <Ref Chap="Collectors"/>.
<ManSection>
<Func Name="PcpElementByExponentsNC" Arg="coll, exp"/>
<Func Name="PcpElementByExponents" Arg="coll, exp"/>
<Description>
returns the pcp-element with exponent vector <A>exp</A>. The exponent vector
is considered relative to the defining generators of the pc-presentation.
</Description>
</ManSection>
<ManSection>
<Func Name="PcpElementByGenExpListNC" Arg="coll, word"/>
<Func Name="PcpElementByGenExpList" Arg="coll, word"/>
<Description>
returns the pcp-element with generators exponent list <A>word</A>. This list
<A>word</A> consists of a sequence of generator numbers and their corresponding
exponents and is of the form <M>[i_1, e_{i_1}, i_2, e_{i_2}, \ldots, i_r,
e_{i_r}]</M>. The
generators exponent list is considered relative to the defining generators
of the pc-presentation.
<P/>
These functions return pcp-elements in the category <C>IsPcpElement</C>.
Presently, the only representation implemented for this category
is <C>IsPcpElementRep</C>.
(This allows us to be a little sloppy right now. The basic set of
operations for <C>IsPcpElement</C> has not been defined yet. This is
going to happen in one of the next version, certainly as soon as the
need for different representations arises.)
</Description>
</ManSection>
<ManSection>
<Filt Name="IsPcpElement" Arg="obj" Type='Category'/>
<Description>
returns true if the object <A>obj</A> is a pcp-element.
</Description>
</ManSection>
<ManSection>
<Filt Name="IsPcpElementCollection" Arg="obj" Type='Category'/>
<Description>
returns true if the object <A>obj</A> is a collection of pcp-elements.
</Description>
</ManSection>
<ManSection>
<Filt Name="IsPcpElementRep" Arg="obj" Type='Representation'/>
<Description>
returns true if the object <A>obj</A> is represented as a pcp-element.
</Description>
</ManSection>
<ManSection>
<Filt Name="IsPcpGroup" Arg="obj" Type='Filter'/>
<Description>
returns true if the object <A>obj</A> is a group
and also a pcp-element collection.
</Description>
</ManSection>
</Section>
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="Methods for pcp-elements">
<Heading>Methods for pcp-elements</Heading>
Now we can describe attributes and functions for pcp-elements. The
four basic attributes of a pcp-element, <C>Collector</C>, <C>Exponents</C>,
<C>GenExpList</C> and <C>NameTag</C> are computed at the creation of the
pcp-element. All other attributes are determined at runtime.
<P/>
Let <A>g</A> be a pcp-element and <M>g_1, \ldots, g_n</M> a polycyclic generating
sequence of the underlying pc-presented group. Let <M>C_1, \ldots, C_n</M>
be the polycyclic series defined by <M>g_1, \ldots, g_n</M>.
<P/>
The <E>depth</E> of a non-trivial element <M>g</M> of a pcp-group (with respect
to the defining generators) is the integer <M>i</M> such that <M>g \in C_i
\setminus C_{i+1}</M>. The depth of the trivial element is defined to
be <M>n+1</M>. If <M>g\not=1</M> has depth <M>i</M> and <M>g_i^{e_i} \cdots g_n^{e_n}</M>
is the collected word for <M>g</M>, then <M>e_i</M> is the <E>leading exponent</E> of
<M>g</M>.
<P/>
If <M>g</M> has depth <M>i</M>, then we call <M>r_i = [C_i:C_{i+1}]</M> the <E>factor
order</E> of <M>g</M>. If <M>r < \infty</M>, then the smallest positive integer <M>l</M>
with <M>g^l \in C_{i+1}</M> is the called <E>relative order</E> of <M>g</M>. If
<M>r=\infty</M>, then the relative order of <M>g</M> is defined to be <M>0</M>. The
index <M>e</M> of <M>\langle g,C_{i+1}\rangle</M> in <M>C_i</M> is called <E>relative
index</E> of <M>g</M>. We have that <M>r = el</M>.
<P/>
We call a pcp-element <E>normed</E>, if its leading exponent is equal to
its relative index. For each pcp-element <M>g</M> there exists an integer
<M>e</M> such that <M>g^e</M> is normed.
<ManSection>
<Oper Name="Collector" Arg="g"/>
<Description>
the collector to which the pcp-element <A>g</A> belongs.
</Description>
</ManSection>
<ManSection>
<Oper Name="Exponents" Arg="g"/>
<Description>
returns the exponent vector of the pcp-element <A>g</A> with respect to the defining
generating set of the underlying collector.
</Description>
</ManSection>
<ManSection>
<Oper Name="GenExpList" Arg="g"/>
<Description>
returns the generators exponent list of the pcp-element <A>g</A> with respect to
the defining generating set of the underlying collector.
</Description>
</ManSection>
<ManSection>
<Oper Name="NameTag" Arg="g"/>
<Description>
the name used for printing the pcp-element <A>g</A>. Printing is done by
using the name tag and appending the generator number of <A>g</A>.
</Description>
</ManSection>
<ManSection>
<Oper Name="Depth" Arg="g"/>
<Description>
returns the depth of the pcp-element <A>g</A> relative to the defining
generators.
</Description>
</ManSection>
<ManSection>
<Oper Name="LeadingExponent" Arg="g"/>
<Description>
returns the leading exponent of pcp-element <A>g</A> relative to the
defining generators. If <A>g</A> is the identity element, the functions
returns 'fail'
</Description>
</ManSection>
<ManSection>
<Attr Name="RelativeOrder" Arg="g"/>
<Description>
returns the relative order of the pcp-element <A>g</A> with respect to the
defining generators.
</Description>
</ManSection>
<ManSection>
<Attr Name="RelativeIndex" Arg="g"/>
<Description>
returns the relative index of the pcp-element <A>g</A> with respect to the
defining generators.
</Description>
</ManSection>
<ManSection>
<Attr Name="FactorOrder" Arg="g"/>
<Description>
returns the factor order of the pcp-element <A>g</A> with respect to the
defining generators.
</Description>
</ManSection>
<ManSection>
<Func Name="NormingExponent" Arg="g"/>
<Description>
returns a positive integer <M>e</M> such that the pcp-element <A>g</A> raised to
the power of <M>e</M> is normed.
</Description>
</ManSection>
<ManSection>
<Func Name="NormedPcpElement" Arg="g"/>
<Description>
returns the normed element corresponding to the pcp-element <A>g</A>.
</Description>
</ManSection>
</Section>
<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->
<Section Label="pcpgroup">
<Heading>Pcp-groups - groups of pcp-elements</Heading>
A <E>pcp-group</E> is a group consisting of pcp-elements such that all
pcp-elements in the group share the same collector. Thus the group
<M>G</M> defined by a polycyclic presentation and all its subgroups are
pcp-groups.
<ManSection>
<Func Name="PcpGroupByCollector" Arg="coll"/>
<Func Name="PcpGroupByCollectorNC" Arg="coll"/>
<Description>
returns a pcp-group build from the collector <A>coll</A>.
<P/>
The function calls <Ref Func="UpdatePolycyclicCollector"/>
and checks the confluence (see
<Ref Func="IsConfluent"/>) of the collector.
<P/>
The non-check version bypasses these checks.
</Description>
</ManSection>
<ManSection>
<Func Name="Group" Arg="gens, id"/>
<Description>
returns the group generated by the pcp-elements <A>gens</A> with identity
<A>id</A>.
</Description>
</ManSection>
<ManSection>
<Func Name="Subgroup" Arg="G, gens"/>
<Description>
returns a subgroup of the pcp-group <A>G</A> generated by the list <A>gens</A> of
pcp-elements from <A>G</A>.
<Example><![CDATA[
gap> ftl := FromTheLeftCollector( 2 );;
gap> SetRelativeOrder( ftl, 1, 2 );
gap> SetConjugate( ftl, 2, 1, [2,-1] );
gap> UpdatePolycyclicCollector( ftl );
gap> G:= PcpGroupByCollectorNC( ftl );
Pcp-group with orders [ 2, 0 ]
gap> Subgroup( G, GeneratorsOfGroup(G){[2]} );
Pcp-group with orders [ 0 ]
]]></Example>
</Description>
</ManSection>
</Section>
</Chapter>
|