1<?xml version="1.0" encoding="UTF-8"?> 2 3<!-- This is an automatically generated file. --> 4<Chapter Label="Chapter_Pregroups"> 5<Heading>Pregroups</Heading> 6 7<P/> 8 Pregroups are the fundamental building block of pregroup presentations used 9 in the hyperbolicity tester. 10<Section Label="Chapter_Pregroups_Section_Creating_Pregroups"> 11<Heading>Creating Pregroups</Heading> 12 13<P/> 14 This section describes functions to create pregroups from multiplication 15 tables, free groups, and free products of finite groups. 16<ManSection Label="PregroupByTableGrp"> 17 <Func Arg="enams, table" Name="PregroupByTable" /> 18 <Func Arg="arg" Name="PregroupByTableNC" /> 19 <Returns>A pregroup 20</Returns> 21 <Description> 22 If <A>enams</A> is a list of element names, which can be arbitrary GAP objects, 23 with the convention that <C>enams[1]</C> is the name of the identity element, and 24 <A>table</A> is a square table of non-negative integers that is the multiplication 25 table of a pregroup, then <Ref Func="PregroupByTable"/> and 26 <Ref Func="PregroupByTableNC"/> return a pregroup in multiplication 27 table representation. 28 <P/> 29 By convention the elements of the pregroup are numbered <C>[1..n]</C> with 30 <C>0</C> denoting an undefined product in the table. 31 <P/> 32 The axioms for a pregroup are checked by <Ref Func="PregroupByTable"/> and 33 not checked by <Ref Func="PregroupByTableNC"/>. 34<Example><![CDATA[ 35gap> pregroup := PregroupByTable( "1xyY", 36> [ [1,2,3,4] 37> , [2,1,0,0] 38> , [3,4,0,1] 39> , [4,0,1,3] ] ); 40<pregroup with 4 elements in table rep> 41]]></Example> 42 43 44<P/> 45 </Description> 46</ManSection> 47 48 49<ManSection> 50 <Oper Arg="F, rrel, inv" Name="PregroupByRedRelators" Label="for IsFreeGroup, IsList, IsList"/> 51 <Returns>A pregroup in table representation 52</Returns> 53 <Description> 54 Construct a pregroup from the list <A>rrel</A> of red relators and the list 55 <A>inv</A> of involutions over the free group <A>F</A>. 56 The argument <A>rred</A> has to be a list of elements of length 3 in the 57 free group <A>F</A>, and <A>inv</A> has to be a list of generators of <A>F</A>. 58 </Description> 59</ManSection> 60 61 62<ManSection> 63 <Oper Arg="G, H" Name="PregroupOfFreeProduct" Label="for IsGroup, IsGroup"/> 64 <Description> 65 Construct the pregroup of the free product of <A>G</A> and <A>H</A>. 66 If <A>G</A> and <A>H</A> are finite groups, then 67 <Ref Oper="PregroupOfFreeProduct" Label="for IsGroup, IsGroup"/> returns the pregroup consisting of the 68 non-identity elements of <A>G</A> and <A>H</A> and an identity element. 69 A product between two non-trivial elements is defined if and only if they are 70 in the same group. 71<P/> 72<Example><![CDATA[ 73gap> pregroup := PregroupOfFreeProduct(SmallGroup(12,2), SmallGroup(24,4)); 74<pregroup with 35 elements in table rep> 75]]></Example> 76 77 78 </Description> 79</ManSection> 80 81 82<ManSection> 83 <Func Arg="F" Name="PregroupOfFreeGroup" /> 84 <Description> 85 Return the pregroup of the free group <A>F</A> 86 </Description> 87</ManSection> 88 89 90<P/> 91</Section> 92 93 94<Section Label="Chapter_Pregroups_Section_Filters_and_Representations"> 95<Heading>Filters and Representations</Heading> 96 97<P/> 98 This section gives an overview over the filters, categories 99 and representations defined by &walrus; 100<P/> 101<ManSection> 102 <Filt Arg="arg" Name="IsPregroup" Label="for IsObject and IsCollection"/> 103 <Returns><C>true</C> or <C>false</C> 104</Returns> 105 <Description> 106<P/> 107 </Description> 108</ManSection> 109 110 111<ManSection> 112 <Filt Arg="arg" Name="IsPregroupTableRep" Label="for IsPregroup andIsComponentObjectRep andIsAttributeStoringRep"/> 113 <Returns><C>true</C> or <C>false</C> 114</Returns> 115 <Description> 116 A pregroup represented by its multiplication table, which is a 117 square table of integers between 0 and the size of the pregroup, 118 where 0 represents an undefined multiplication. 119 </Description> 120</ManSection> 121 122 123<ManSection> 124 <Filt Arg="arg" Name="IsPregroupOfFreeGroupRep" Label="for IsPregroup andIsComponentObjectRep andIsAttributeStoringRep"/> 125 <Returns><C>true</C> or <C>false</C> 126</Returns> 127 <Description> 128 Pregroup of a free group of rank <M>k</M>. The 129 only defined products are <M>1\cdot x = x \cdot 1 = x</M> 130 and <M>xx^{-1} = x^{-1}x = 1</M>, for all generators <M>x</M>. 131 </Description> 132</ManSection> 133 134 135<ManSection> 136 <Filt Arg="arg" Name="IsPregroupOfFreeProductRep" Label="for IsPregroup andIsComponentObjectRep andIsAttributeStoringRep"/> 137 <Returns><C>true</C> or <C>false</C> 138</Returns> 139 <Description> 140 Pregroup of the free product of a list of groups where 141 products between non-trivial elements <M>g</M>, <M>h</M> 142 are defined if <M>g,h</M> are contained in the same 143 group. 144 </Description> 145</ManSection> 146 147 148</Section> 149 150 151<Section Label="Chapter_Pregroups_Section_Attributes_Properties_and_Operations"> 152<Heading>Attributes, Properties, and Operations</Heading> 153 154<P/> 155 This section gives an overview over the attributes, properties, 156 and operatins defined for pregroups. 157<P/> 158<ManSection> 159 <Oper Arg="pregroup,i" Name="[]" Label="for IsPregroup, IsInt"/> 160 <Description> 161 Get the <A>i</A>th element of <A>pregroup</A>. By convention 162 the <M>1</M>st element is the identity element. 163 </Description> 164</ManSection> 165 166 167<ManSection> 168 <Attr Arg="pregroup" Name="IntermultPairs" Label="for IsPregroup"/> 169 <Description> 170Returns the set of intermult pairs of the pregroup 171 </Description> 172</ManSection> 173 174 175<ManSection> 176 <Attr Arg="pregroup" Name="One" Label="for IsPregroup"/> 177 <Description> 178The identity element of <A>pregroup</A>. 179 </Description> 180</ManSection> 181 182 183<ManSection> 184 <Attr Arg="pregroup" Name="MultiplicationTable" Label="for IsPregroup"/> 185 <Description> 186 The multiplication table of <A>pregroup</A> 187 </Description> 188</ManSection> 189 190 191<ManSection> 192 <Oper Arg="pregroup, names" Name="SetPregroupElementNames" Label="for IsPregroup, IsList"/> 193 <Description> 194 Can be used to set more user-friendly display names for 195 the elements of <A>pregroup</A>. The list <A>names</A> 196 has to be of length <C>Size(<A>pregroup</A>)</C>. 197 </Description> 198</ManSection> 199 200 201<ManSection> 202 <Oper Arg="pregroup" Name="PregroupElementNames" Label="for IsPregroup"/> 203 <Description> 204 Return the list of names of elements of <A>pregroup</A> 205 </Description> 206</ManSection> 207 208 209</Section> 210 211 212<Section Label="Chapter_Pregroups_Section_Elements_of_Pregroups"> 213<Heading>Elements of Pregroups</Heading> 214 215<P/> 216<ManSection> 217 <Filt Arg="arg" Name="IsElementOfPregroup" Label="for IsMultiplicativeElementWithInverse"/> 218 <Returns><C>true</C> or <C>false</C> 219</Returns> 220 <Description> 221<P/> 222 </Description> 223</ManSection> 224 225 226<ManSection> 227 <Filt Arg="arg" Name="IsElementOfPregroupRep" Label="for IsElementOfPregroup and IsComponentObjectRep"/> 228 <Returns><C>true</C> or <C>false</C> 229</Returns> 230 <Description> 231<P/> 232 </Description> 233</ManSection> 234 235 236<ManSection> 237 <Filt Arg="arg" Name="IsElementOfPregroupOfFreeGroupRep" Label="for IsElementOfPregroup and IsComponentObjectRep"/> 238 <Returns><C>true</C> or <C>false</C> 239</Returns> 240 <Description> 241<P/> 242 </Description> 243</ManSection> 244 245 246<ManSection> 247 <Attr Arg="p" Name="PregroupOf" Label="for IsElementOfPregroup"/> 248 <Description> 249 The pregroup that the element <A>p</A> is contained in. 250 </Description> 251</ManSection> 252 253 254<ManSection> 255 <Oper Arg="p, q" Name="IsDefinedMultiplication" Label="for IsElementOfPregroup, IsElementOfPregroup"/> 256 <Description> 257 Tests whether the multiplication of <A>p</A> and <A>q</A> is 258 defined in the pregroup containing <A>p</A> and <A>q</A>. 259 </Description> 260</ManSection> 261 262 263<ManSection> 264 <Oper Arg="p, q" Name="IsIntermultPair" Label="for IsElementOfPregroup, IsElementOfPregroup"/> 265 <Description> 266 Tests whether <M>(<A>p</A>, <A>q</A>)</M> is an intermult pair. 267 defined. 268 </Description> 269</ManSection> 270 271 272<ManSection> 273 <Attr Arg="p" Name="PregroupInverse" Label="for IsElementOfPregroup"/> 274 <Description> 275 Return the inverse of <A>p</A>. 276 </Description> 277</ManSection> 278 279 280</Section> 281 282 283<Section Label="Chapter_Pregroups_Section_Small_Pregroups"> 284<Heading>Small Pregroups</Heading> 285 286 This package contains a small database of pregroups of sizes <M>1</M> to 287 <M>7</M>. The database was computed by Chris Jefferson using the Minion constraint solver. 288 <P/> 289 These small pregroups currently used for testing. Accessing the small 290 pregroups database works as follows. 291<ManSection> 292 <Func Arg="n" Name="NrSmallPregroups" /> 293 <Returns>an integer. 294</Returns> 295 <Description> 296 Returns the number of pregroups of size <A>n</A> available in the database. 297 </Description> 298</ManSection> 299 300 301<ManSection> 302 <Func Arg="n, i" Name="SmallPregroup" /> 303 <Returns>a pregroup. 304</Returns> 305 <Description> 306 Returns the <A>i</A>th pregroup of size <A>n</A> from the database of small pregroups. 307 </Description> 308</ManSection> 309 310 311</Section> 312 313 314</Chapter> 315 316