Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Views: 418346<Chapter Label="Introduction">1<Heading>Introduction</Heading>23<Section>4<Heading>Overview</Heading>567<Index>ANUPQ</Index>8The &GAP; 4 package &ANUPQ; provides an interface to the ANU <C>pq</C> C9progam written by Eamonn O'Brien, making the functionality of the C10program available to &GAP;. Henceforth, we shall refer to the &ANUPQ;11package when referring to the &GAP; interface, and to the ANU <C>pq</C>12program or just <C>pq</C> when referring to that C program.13<P/>1415The <C>pq</C> program consists of implementations of the following algorithms:16<P/>1718<Enum>19<Item>20A <E><M>p</M>-quotient algorithm</E> to compute pc-presentations for <M>p</M>-factor21groups of finitely presented groups.22<P/>23<!-- The algorithm implemented here is based on that described by Newman and -->24<!-- O'Brien <Cite Key="NO96"/>, Havas and Newman <Cite Key="HN80"/>, and papers referred to -->25<!-- there. Another description of the algorithm is given by Vaughan-Lee -->26<!-- (see <Cite Key="VL90a"/>, <Cite Key="VL90b"/>). A FORTRAN implementation of this -->27<!-- algorithm was programmed by Alford and Havas. The basic data structures -->28<!-- of that implementation are retained. -->29</Item>3031<Item>32A <E><M>p</M>-group generation algorithm</E> to generate pc presentations of groups33of prime power order.34<P/>35<!-- The algorithm implemented here is based on the algorithms described by -->36<!-- Newman <Cite Key="New77"/> and O'Brien <Cite Key="OBr90"/>. A FORTRAN implementation of -->37<!-- this algorithm was developed earlier by Newman and O'Brien. -->38</Item>3940<Item>41A <E>standard presentation algorithm</E> used to compute a canonical42pc-presentation of a <M>p</M>-group.43<P/>44<!-- The algorithm implemented here is described in <Cite Key="OBr94"/>. -->45</Item>4647<Item>48An algorithm which can be used to compute the <E>automorphism group</E> of a49<M>p</M>-group.50<P/>5152This part of the <C>pq</C> program is not accessible through the &ANUPQ;53package. Instead, users are advised to consider the &GAP; 4 package54&AutPGrp; by Bettina Eick and Eamonn O'Brien, which implements a better55algorithm in &GAP; for the computation of automorphism groups of56<M>p</M>-groups.57<!-- The algorithm implemented here is described in <Cite Key="OBr94"/>. -->58</Item>5960</Enum>6162<!-- Further background may be found in <Cite Key="OBr95"/>, <Cite Key="VL84"/> -->63<!-- and <Cite Key="NNN98"/>. -->6465The current version of the &ANUPQ; package requires &GAP; 4.5, and66version 1.5 of the &AutPGrp; package. All code that made the package67compatible with earlier versions of &GAP; has been removed.68If you must use an older &GAP; version and cannot upgrade, then you may69try using an older &ANUPQ; version. However, you should not use versions70of the &ANUPQ; package older than 2.2, since they are known to have bugs.71</Section>7273<Section>74<Heading>How to read this manual</Heading>7576It is not expected that readers of this manual will read it in a linear77fashion from cover to cover; some sections contain material that is far78too technical to be absorbed on a first reading.79<P/>8081Firstly, installers of the &ANUPQ; package will need to read82Chapter <Ref Chap="Installing-ANUPQ" Style="Text"/>, if they have not already gleaned83these details from the <C>README</C> file.84<P/>8586Once the &ANUPQ; package is installed, users of the &ANUPQ; package87will benefit most by first reading Chapter <Ref Chap="Mathematical Background and Terminology" Style="Text"/>, which gives a brief description of the background and88terminology used (this chapter also cites a number of references for89further reading), and the introduction of Chapter <Ref Chap="Infrastructure" Style="Text"/> (skip90the remainder of the chapter on a first reading).91<P/>9293Then the user/reader should pursue94Chapter <Ref Chap="non-interact" Style="Text"/>95in detail, delving into Chapter <Ref Chap="ANUPQ Options" Style="Text"/> as necessary96for the options of the functions that are described. The user will become97best acquainted with the &ANUPQ; package by trying the examples. This98chapter describes the non-interactive functions of the &ANUPQ; package,99i.e. <Q>one-shot</Q> functions that invoke the <C>pq</C> program in such a way100that once &GAP; has got what it needs, the <C>pq</C> is allowed to exit. It101is expected that most of the time, users will only need these functions.102<P/>103104Advanced users will want to explore Chapter <Ref Chap="Interactive ANUPQ functions" Style="Text"/>105which describes all the interactive functions of the &ANUPQ; package;106these are functions that extract information via a dialogue with a107running <C>pq</C> process. Occasionally, a user needs the <Q>next step</Q>; the108functions provided in this chapter make use of data from previous steps109retained by the <C>pq</C> program, thus allowing the user to interact with the110<C>pq</C> program like one can when one uses the <C>pq</C> program as a stand-alone111(see <C>guide.dvi</C> in the <C>standalone-doc</C> directory).112<P/>113114After having read Chapters <Ref Chap="non-interact" Style="Text"/>115and <Ref Chap="Interactive ANUPQ functions" Style="Text"/>, cross-references will have taken the116reader into Chapter <Ref Chap="ANUPQ Options" Style="Text"/>; by this stage, the reader need only117read the introduction of Chapter <Ref Chap="ANUPQ Options" Style="Text"/>.118<P/>119120After the reader has developed some facility with the &ANUPQ; package,121she should explore the examples described in Appendix <Ref Chap="Examples" Style="Text"/>.122<P/>123124If you run into trouble using the &ANUPQ; functions, some125troubleshooting hints are given in126Section <Ref Sect="Hints and Warnings regarding the use of Options" Style="Text"/>.127If the troubleshooting hints don't help,128Section <Ref Sect="Authors and Acknowledgements" Style="Text"/> below, gives contact details for129the authors of the components of the &ANUPQ; package.130</Section>131132133<Section Label="Authors and Acknowledgements">134<Heading>Authors and Acknowledgements</Heading>135136The C implementation of the ANU <C>pq</C> standalone was developed by Eamonn O'Brien.137<P/>138139An interactive interface using iostreams was developed with the140assistance of Werner Nickel by Greg Gamble.141<P/>142143The &GAP; 4 version of this package was adapted from the &GAP; 3144version by Werner Nickel.145<P/>146147A new co-maintainer, Max Horn, joined the team in November, 2011.148<P/>149150The authors would like to thank Joachim Neubüser for his151careful proof-reading and advice, and for formulating152Chapter <Ref Chap="Mathematical Background and Terminology" Style="Text"/>.153<P/>154155We would also like to thank Bettina Eick who by her testing and provision156of examples helped us to eliminate a number of bugs and who provided a157number of valuable suggestions for extensions of the package beyond the158&GAP; 3 capabilities.159<P/>160161<Index>bug reports</Index>162If you find a bug, the last section of &ANUPQ;'s <C>README</C> describes the163information we need and where to send us a bug report; please take the164time to read this (i.e. help us to help you).165</Section>166167168<!--169170<Section Label="Change history">171<Heading>Change history</Heading>172173Below we list the main changes between versions of the &ANUPQ; package.174175<List>176<Mark><C>3.1</C></Mark>177<Item>178179Max Horn fixed many warnings in the <C>pq</C> program code (<C>pq</C> program is now180version 1.9).181</Item>182<Mark></Mark>183<Item>184185Max Horn improved the build system to use GNU <C>autoconf</C>. Various186<C>Makefile</C>s are now more robust, and compatible with both &GAP; 4.4 and 4.5.187188</Item>189<Mark><C>3.0</C></Mark>190<Item>191192Backward compatibility code for pre-4.4 versions of &GAP; removed. The193&ANUPQ; package now requires at least &GAP; 4.4 and version 1.2 of the194&AutPGrp; package, and the &AutPGrp; package is now essential.195</Item>196<Mark></Mark>197<Item>198199Deprecated commands replaced by &GAP; 4.4 commands, e.g. <C>PrimePGroup</C>200replaced <C>PrimeOfPGroup</C>, <C>ReadPackage</C> replaced <C>ReadPkg</C>, including201in the <C>pq</C> program code (so <C>pq</C> program is now version 1.8).202</Item>203<Mark></Mark>204<Item>205206Improved non-isomorphism test in <C>IsPqIsomorphicPGroup</C> using suggestion207made by Marco Costantini (thanks Marco).208</Item>209<Mark></Mark>210<Item>211212Removed <C>pkgbanner</C> option that used to control how the &ANUPQ; package213banner was displayed.214</Item>215<Mark><C>2.2</C></Mark>216<Item>217218Corrected a typo. in <C>PackageInfo.g</C>.219</Item>220<Mark><C>2.1</C></Mark>221<Item>222223Binomial coefficient algorithm in <C>pq</C> program (now version 1.7) modified224to avoid overflow.225</Item>226<Mark></Mark>227<Item>228229A bug discovered by Tobias Ro{\ss}mann was fixed. It was caused in the230&ANUPQ; package's interface by not passing on the parameter <C>StepSize</C>231to the <C>pq</C> program properly. This bug could result in computing the232wrong number of descendants if a <C>StepSize</C> different from 1 was chosen.233</Item>234<Mark></Mark>235<Item>236237Changes suggested by Gary Zablackis were implemented in order to make the238package run under Windows with cygwin:239<List>240<Item>241use <C>[grp]</C> as default filename instead of <C>\<A>grp</A></C>,242</Item>243<Item>244add target to the makefile for compiling the <C>pq</C> program with cygwin,245and246</Item>247<Item>248run <C>PqQuitAll()</C> more often in test examples. This reduces the number of249simultaneously running processes and avoids bumping into system limits.250</Item>251</List>252253</Item>254<Mark><C>2.0</C></Mark>255<Item>256257Changes to <C>pq</C> program (now version 1.6) and &GAP; code to fix bug258reported by Boris Girnat (thanks Boris!) where too many descendants were259generated for a group of class more than 1 with insoluble automorphism260group. Also more changes for &GAP; 4.4, for which261<List>262<Item>263option <C>pkgbanner</C> for suppression of the package banner is deprecated264(now does nothing); its function is now provided by an optional argument265of the <C>LoadPackage</C>; see Section <Ref Func="ref:LoadPackage" Style="Text"/> in the &GAP;266Reference Manual); and267</Item>268<Item>269the package banner is no longer <C>Info</C>-ed at <C>InfoANUPQ</C> level 1, and so270cannot be suppressed by setting the <C>InfoANUPQ</C> level to 0.271</Item>272</List>273</Item>274<Mark></Mark>275<Item>276277For &GAP; 4.3fix4, the previous behaviour for the display/suppression278and <C>Info</C>-ing of the banner is unchanged, and <C>RequirePackage</C> must be279used rather than the new command <C>LoadPackage</C>.280</Item>281<Mark></Mark>282<Item>283284<C>PqSupplementInnerAutomorphisms</C> now returns a record analogous to the285<C>AutomorphismGroupPGroup</C> function of the &AutPGrp; package, and286<C>AutomorphismGroupPGroup</C> rather than <C>PqSupplementInnerAutomorphisms</C> is287now used to generate the required automorphism group data in descendant288calculations. The corresponding <C>PqExample</C> example has similarly been289modified.290</Item>291<Mark><C>1.5</C></Mark>292<Item>293294Fixed bug in the filtering of ones from input to <C>pq</C> program (thanks to295Robert Morse again for the fix). Some preparatory changes made for296&GAP; 4.4.297</Item>298<Mark><C>1.4</C></Mark>299<Item>300301Removed an unnecessary file and line from a file in the <C>src</C> directory.302</Item>303<Mark><C>1.3</C></Mark>304<Item>305306Efficiency improvements: in particular, the use of <C>IsSyllableWordsFamily</C>307as first argument of some <C>FreeGroup</C> commands.308</Item>309<Mark><C>1.2</C></Mark>310<Item>311312Fixed some inefficiencies in transmission of relators to the <C>pq</C> program313(thanks to Robert Morse for identifying the problem). Updated for314bugfixes in fix4 of &GAP; 4.3, which required some usages of <C>Pcgs</C> to315be replaced by <C>GeneralizedPcgs</C>. Requires at least &GAP; 4.3fix4 and an316updated &AutPGrp; package that uses <C>SetGeneralizedPcgs</C> in lieu of317<C>SetPcgs</C> in its definition of <C>ConvertHybridAutGroup</C>.318</Item>319<Mark><C>1.1</C></Mark>320<Item>321322First &GAP; 4 release. Requires at least &GAP; 4.2, but &GAP; 4.3323recommended. Supersedes the earlier &GAP; 3 version (1.0) in many ways;324in particular, it provides an interactive interface using the IOStream325technology introduced in &GAP; 4.2.326</Item>327</List>328329</Section>330-->331332</Chapter>333334335336