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%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%1%%2%W otheroptions.tex ACE appendix - other options Alexander Hulpke3%W Joachim Neub"user4%W Greg Gamble5%%6%H $Id$7%%8%Y Copyright (C) 2000 Centre for Discrete Mathematics and Computing9%Y Department of Information Tech. & Electrical Eng.10%Y University of Queensland, Australia.11%%1213%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%14\Chapter{Other ACE Options}1516Here we list all the known {\ACE} options not provided earlier. Most17of the options provided here have interactive function alternatives18(each such alternative is noted at the end of the section describing19the corresponding option and introduced by ``*INTERACTIVELY*, use20\dots''). A few options have only limited usefulness from {\GAP}; many21options, users will normally only wish to use if generating an input22file, by using the option `aceinfile' (see~"option aceinfile").23However all options here are functional, both interactively and24non-interactively.2526%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%27\Section{Experimentation Options}2829\beginitems3031\>`aep:=<val>'{option aep}@{option `aep'}&32Runs the enumeration for `a'll `e'quivalent `p'resentations;33<val> is in the integer range 1 to 7.3435The `aep' option runs an enumeration for combinations of relator36ordering, relator rotations, and relator inversions.3738The argument <val> is considered as a binary number. Its three bits39are treated as flags, and control relator rotations (the $2^0$ bit),40relator inversions (the $2^1$ bit) and relator orderings (the $2^2$41bit), respectively; where $1$ means ``active'' and $0$ means42``inactive''. (See below for an example).4344The `aep' option first performs a ``priming run'' using the options as45they stand. In particular, the `asis' and `messages' options are46honoured.4748It then turns `asis' on and `messages' off (i.e.~sets `messages' to490), and generates and tests the requested equivalent presentations.50The maximum and minimum values attained by `m' (the maximum number of51coset numbers defined at any stage) and `t' (the total number of coset52numbers defined) are tracked, and each time a new ``record'' is found,53the relators used and the summary result line is printed. See54Appendix~"The Meanings of ACE's output messages" for a discussion of55the statistics `m' and `t'. To observe these messages either set the56`InfoLevel' of `InfoACE' to 3 or non-interactively you can peruse the57{\ACE} output file (see~"option aceoutfile").5859Normally when a non-interactive {\ACE} interface function is called,60the option `start' (see~"option start"), is quietly inserted after all61the options provided by the user, to initiate a coset enumeration.62Since the `aep' option invokes an enumeration, the quiet insertion of63the `start' option is neither needed nor done, when a non-interactive64{\ACE} interface function is called with the `aep' option.6566The order in which the equivalent presentations are generated and67tested has no particular significance, but note that the presentation68as given *after* the initial priming run) is the *last* presentation69to be generated and tested, so that the group's relators are left70`unchanged' by running the `aep' option, (not that a non-interactive71user cares).7273As discussed by Cannon, Dimino, Havas and Watson \cite{CDHW73} and74Havas and Ramsay \cite{HR01} such equivalent presentations can yield75large variations in the number of coset numbers required in an76enumeration. For this command, we are interested in this variation.7778After the final presentation is run, some additional status79information messages are printed to the {\ACE} output file:8081\beginlist%unordered8283\item{--} the number of runs which yielded a finite index;8485\item{--} the total number of runs (excluding the priming run); and8687\item{--} the range of values observed for `m' and `t'.8889\endlist9091As an example (drawn from the discussion in \cite{HR99ace}) consider the92enumeration of the $448$ coset numbers of the subgroup93$\langle a^2,a^{-1}b \rangle$ of the group94$$95(8,7 \mid 2,3)96= \langle a,b \mid a^8 = b^7 = (ab)^2 = (a^{-1}b)^3 = 1 \rangle.97$$98There are $4!=24$ relator orderings and $2^4=16$ combinations of99relator or inverted relator. Exponents are taken into account when100rotating relators, so the relators given give rise to 1, 1, 2 and 2101rotations respectively, for a total of $1.1.2.2=4$ combinations. So,102for `aep' = $7$ (resp.~$3$), $24.16.4=1536$ (resp.~$16.4=64$)103equivalent presentations are tested.104105*Notes:*106There is no way to stop the `aep' option before it has completed,107other than killing the task. So do a reality check beforehand on the108size of the search space and the time for each enumeration. If you are109interested in finding a ``good'' enumeration, it can be very helpful,110in terms of running time, to put a tight limit on the number of coset111numbers via the `max' option. You may also have to set `compaction' =112$100$ to prevent time-wasting attempts to recover space via113compaction. This maximises throughput by causing the ``bad''114enumerations, which are in the majority, to overflow quickly and115abort. If you wish to explore a very large search-space, consider116firing up many copies of {\ACE}, and starting each with a ``random''117equivalent presentation. Alternatively, you could use the `rep'118command.119120*INTERACTIVELY*, use `ACEAllEquivPresentations'121(see~"ACEAllEquivPresentations").122123\>`rep:=<val>'{option rep}@{option `rep'}124\>`rep:=[<val>, <Npresentations>]'{option rep}@{option `rep'}&125Run the enumeration for `r'andom `e'quivalent `p'resentations;126<val> is in the integer range 1 to 7;127<Npresentations> must be a positive integer.128129The `rep' (random equivalent presentations) option complements the130`aep' option. It generates and tests some random equivalent131presentations. The argument <val> acts as for `aep'. It is also132possible to set the number <Npresentations> of random presentations133used (by default, eight are used), by using the extended syntax134`rep:=[<val>,<Npresentations>]'.135136The routine first turns `asis' on and `messages' off (i.e.~sets137`messages' to 0), and then generates and tests the requested number of138random equivalent presentations. For each presentation, the relators139used and the summary result line are printed. To observe these140messages either set the `InfoLevel' of `InfoACE' to at least 3 or141non-interactively you can peruse the {\ACE} output file (see~"option142aceoutfile").143144Normally when a non-interactive {\ACE} interface function is called,145the option `start' (see~"option start"), is quietly inserted after all146the options provided by the user, to initiate a coset enumeration.147Since the `rep' option invokes an enumeration, the quiet insertion of148the `start' option is neither needed nor done, when a non-interactive149{\ACE} interface function is called with the `rep' option.150151*Notes:*152The relator inversions and rotations are ``genuinely'' random. The153relator permuting is a little bit of a kludge, with the ``quality'' of154the permutations tending to improve with successive presentations.155When the `rep' command completes, the presentation active is the156*last* one generated, (not that the non-interactive user cares).157158*Guru Notes:*159It might appear that neglecting to restore the original presentation160is an error. In fact, it is a useful feature! Suppose that the space161of equivalent presentations is too large to exhaustively test. As162noted in the entry for `aep', we can start up multiple copies of `aep'163at random points in the search-space. Manually generating `random'164equivalent presentations to serve as starting-points is tedious and165error-prone. The `rep' option provides a simple solution; simply run166`rep := 7' before `aep := 7'.167168*INTERACTIVELY*, use `ACERandomEquivPresentations'169(see~"ACERandomEquivPresentations").170171\enditems172173%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%174\Section{Options that Modify a Presentation}175176\beginitems177178\>`group:=<grpgens>'{option group}@{option `group'}&179Defines the `group' generators; <grpgens> should be an integer (that180is the number of generators) or a string that is the concatenation of,181or a list of, single-lowercase-letter group generator names, i.e.~it182should be in a form suitable for the {\ACE} binary to interpret.183(Shortest abbreviation: `gr'.)184185The group generators should normally be input as one of the arguments186of an {\ACE} interface function, though this option may be useful when187`ACEStart' (see~"ACEStart") is called with the single argument 0. This188option may also be useful for re-using an interactive process for a189new enumeration, rather than using `ACEQuit' to kill the process and190`ACEStart' to initiate a new process. If the generators each have191names that as strings are single lowercase letters, those same strings192are used to represent the same generators by {\ACE}; otherwise, {\ACE}193will represent each generator by an integer, numbered sequentially194from 1.195196To convert a {\GAP} list <fgens> of free group generators into a form197suitable for the `group' option, use the construction:198`ToACEGroupGenerators(<fgens>)' (see~"ToACEGroupGenerators"). It is199*strongly recommended* that users of the `group' option use this200construction.201202*Notes:*203Any use of the `group' command which actually defines generators204invalidates any previous enumeration, and stays in effect until the205next `group' command. Any words for the group or subgroup must be206entered using the nominated generator format, and all printout will207use this format. A valid set of generators is the minimum information208necessary before {\ACE} will attempt an enumeration.209210*Guru Notes:*211The columns of the coset table are allocated in the same order as the212generators are listed, insofar as this is possible, given that the213first two columns must be a generator/inverse pair or a pair of214involutions. The ordering of the columns can, in some cases, affect215the definition sequence of cosets and impact the statistics of an216enumeration.217218\>`relators:=<relators>'{option relators}@{option `relators'}&219Defines the group `relators'; <relators> must be a string or list of220strings that the {\ACE} binary can interpret as words in the group221generators. (Shortest abbreviation: `rel'.)222223The group relators should normally be input as one of the arguments of224an {\ACE} interface function, but this option may occasionally be225useful with interactive processes (see~"option group"). If <wordList>226is an empty list, the group is free.227228To convert a {\GAP} list <rels> of relators in the free group229generators <fgens> into a form suitable for the `relators' option, use230the construction: `ToACEWords(<fgens>, <rels>)' (see~"ToACEWords").231232\>`generators:=<subgens>'{option generators}@{option `generators'}&233Defines the subgroup `generators'; <subgens> must be a string or list234of strings that the {\ACE} binary can interpret as words in the group235generators. (Shortest abbreviation: `gen'.)236237The subgroup generators should normally be input as one of the238arguments of an {\ACE} interface function, but this option may239occasionally be useful with interactive processes (see~"option240group"). By default, there are no subgroup generators and the subgroup241is trivial. This command allows a list of subgroup generating words to242be entered.243244To convert a {\GAP} list <sgens> of subgroup generators in the free245group generators <fgens> into a form suitable for the `generators'246option, use the construction: `ToACEWords(<fgens>, <sgens>)'247(see~"ToACEWords").248249\>`sg:=<subgens>'{option sg}@{option `sg'}&250Adds the words in <subgens> to any `s'ubgroup `g'enerators already251present; <subgens> must be a string or list of strings that the {\ACE}252binary can interpret as words in the group generators.253254The enumeration must be (re)`start'ed or `redo'ne, it cannot be255`continu'ed.256257To convert a {\GAP} list <sgens> of subgroup generators in the free258group generators <fgens> into a form suitable for the `generators'259option, use the construction: `ToACEWords(<fgens>, <sgens>)'260(see~"ToACEWords").261262*INTERACTIVELY*, use `ACEAddSubgroupGenerators'263(see~"ACEAddSubgroupGenerators").264265\>`rl:=<relators>'{option rl}@{option `rl'}&266Appends the `r'elator `l'ist <relators> to the existing list of267relators present; <relators> must be a string or list of strings that268the {\ACE} binary can interpret as words in the group generators.269270The enumeration must be (re)`start'ed or `redo'ne, it cannot be271`continu'ed.272273To convert a {\GAP} list <rels> of relators in the free group274generators <fgens> into a form suitable for the `rl' option, use the275construction: `ToACEWords(<fgens>, <rels>)' (see~"ToACEWords").276277*INTERACTIVELY*, use `ACEAddRelators' (see~"ACEAddRelators").278279\>`ds:=<list>'{option ds}@{option `ds'}&280`D'eletes `s'ubgroup generators; <list> must be a list of positive281integers.282283This command allows subgroup generators to be deleted from the284presentation. If the generators are numbered from 1 in the output of,285say, the `sr' command (see~"option sr"), then the generators listed in286`<list>' are deleted; `<list>' must be a strictly increasing sequence.287288*INTERACTIVELY*, use `ACEDeleteSubgroupGenerators'289(see~"ACEDeleteSubgroupGenerators").290291\>`dr:=<list>'{option dr}@{option `dr'}&292`D'eletes relators; <list> must be a list of positive integers.293294This command allows group relators to be deleted from the295presentation. If the relators are numbered from 1 in the output of,296say, the `sr' command (see~"option sr"), then the relators listed in297`<list>' are deleted; `<list>' must be a strictly increasing sequence.298299*INTERACTIVELY*, use `ACEDeleteRelators' (see~"ACEDeleteRelators").300301\>`cc:=<val>'{option cc}@{option `cc'}&302Makes `c'oset <val> `c'oincide with coset 1; <val> should be a303positive integer.304305Prints out the representative of coset `<val>', and adds it to the306subgroup generators; i.e., forces coset `<val>' to coincide with coset3071, the subgroup.308309*INTERACTIVELY*, use `ACECosetCoincidence'310(see~"ACECosetCoincidence").311312\>`rc:=<val>'{option rc}@{option `rc'}313\>`rc:=[<val>]'{option rc}@{option `rc'}314\>`rc:=[<val>, <attempts>]'{option rc}@{option `rc'}&315Enforce `r'andom `c'oincidences; <val> and <attempts> must be positive316integers.317318This option attempts upto <attempts> (or, in the first and second319forms, 8) times to find nontrivial subgroups with index a multiple of320<val> by repeatedly making random coset numbers coincident with coset3211 and seeing what happens. The starting coset table must be non-empty,322but should not be complete. For each attempt, we repeatedly add random323coset representatives to the subgroup and `redo' the enumeration. If324the table becomes too small, the attempt is aborted, the original325subgroup generators restored, and another attempt made. If an attempt326succeeds, then the new set of subgroup generators is retained.327328*Guru Notes:*329A coset number can have many different coset representatives. Consider330running `standard' before `rc', to canonicise the table and hence the331coset representatives.332333*INTERACTIVELY*, use `ACERandomCoincidences'334(see~"ACERandomCoincidences").335336\enditems337338%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%339\Section{Mode Options}340341\beginitems342343\>`mode'{option mode}@{option `mode'}&344Prints the possible enumeration `mode's.345(Shortest abbreviation: `mo'.)346347Prints the possible enumeration `mode's (i.e.~which of `continu',348`redo' or `start' are possible (see~"option continu", "option redo"349and "option start").350351*INTERACTIVELY*, use `ACEModes' (see~"ACEModes").352353\>`begin'{option begin}@{option `begin'}354\>`start'{option start}@{option `start'}&355Start an enumeration. (Shortest abbreviation of `begin' is `beg'.)356357Any existing information in the table is cleared, and the enumeration358starts from coset 1 (i.e., the subgroup).359360Normally when a non-interactive {\ACE} interface function is called,361the option `start' (see~"option start"), is quietly inserted after all362the options provided by the user, to initiate a coset enumeration;363however, this is not done, if the user herself supplies either the364`begin' or `start' option.365366*INTERACTIVELY*, use `ACEStart' (see~"ACEStart").367368\>`check'{option check}@{option `check'}369\>`redo'{option redo}@{option `redo'}&370`Redo' an extant enumeration, using the current parameters.371372As opposed to `start' (see~"option start"), which clears an existing373coset table, any existing information in the table is retained, and374the enumeration is restarted from coset 1 (i.e., the subgroup).375376*Notes:*377This option is really intended for the case where additional relators378(option `rl'; see~"option rl") and/or subgroup generators (option379`sg'; see~"option sg") have been introduced. The current table, which380may be incomplete or exhibit a finite index, is still *valid*.381However, the additional data may allow the enumeration to complete, or382cause a collapse to a smaller index.383384*INTERACTIVELY*, use `ACERedo' (see~"ACERedo").385386\atindex{option continue!deprecated: use continu}%387{@option \noexpand`continue'!deprecated: use \noexpand`continu'}388\>`continu'{option continu}@{option `continu'}&389`Continu'es the current enumeration, building upon the existing table.390(Shortest abbreviation: `cont'.)391392If a previous run stopped without producing a finite index you can, in393principle, change any of the parameters and `continu'e on. Of course,394if you make any changes which invalidate the current table, you won't395be allowed to `continue', although you may be allowed to `redo'396(see~"option redo"). If `redo' is not allowed, you must re-`start'397(see~"option start").398399*Note:* The {\ACE} standalone allows the option `continue', but this400is (as of {\GAP} 4.3) a {\GAP} keyword, and so {\GAP} users must use401(mixed-case abbreviations of) `continu'.402403*INTERACTIVELY*, use `ACEContinue' (see~"ACEContinue").404405\enditems406407%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%408\Section{Options that Interact with the Operating System}409410\beginitems411412\>`ai'{option ai}@{option `ai'}413\>`ai:=<filename>'{option ai}@{option `ai'}&414`A'lter `i'nput to standard input or <filename>; <filename> must be a415string.416417By default, commands to {\ACE} are read from standard input (i.e., the418keyboard). With no value `ai' causes {\ACE} to revert to reading from419standard input; otherwise, the `ai' command closes the current input420file, and opens `<filename>' as the source of commands. If421`<filename>' can't be opened, input reverts to standard input.422423*Notes:*424If you switch to taking input from (another) file, remember to switch425back before the end of that file; otherwise the `EOF' there will cause426{\ACE} to terminate.427428\>`bye'{option bye}@{option `bye'}429\>`exit'{option exit}@{option `exit'}430\>`qui'{option qui}@{option `qui'}&431Quit {\ACE}. (Shortest abbreviation of `qui' is `q'.)432433This quits {\ACE} nicely, printing the date and the time. An `EOF'434(end-of-file; i.e., `\^{}d') has the same effect, so proper435termination occurs if {\ACE} is taking its input from a script file.436437Note that `qui' actually abbreviates the corresponding {\ACE}438directive `quit', but since `quit' is a {\GAP} keyword it is not439available via the {\GAP} interface to {\ACE}.440441*INTERACTIVELY*, use `ACEQuit' (see~"ACEQuit").442443\>`system:=<string>'{option system}@{option `system'}&444Does a shell escape, to execute <string>; <string> must be a string.445(Shortest abbreviation: `sys'.)446447Since {\GAP} already provides `Exec()' for this purpose, this option448is unlikely to have a use.449450\enditems451452%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%453\Section{Query Options}454455\beginitems456457\>`cycles'{option cycles}@{option `cycles'}&458Prints out the table in `cycles'. (Shortest abbreviation: `cy'.)459460This option prints out the permutation representation.461462*INTERACTIVELY*, use `ACECycles' (see~"ACECycles").463464\>`dump'{option dump}@{option `dump'}465\>`dump:=<level>'{option dump}@{option `dump'}466\>`dump:=[<level>]'{option dump}@{option `dump'}467\>`dump:=[<level>, <detail>]'{option dump}@{option `dump'}&468`Dump' the internal variables of {\ACE}; <level> must be an integer in469the range 0 to 2, and <detail> must be 0 or 1.470(Shortest abbreviation: `d'.)471472The value of <level> determines which of the three levels of {\ACE} to473dump. (You will need to read the standalone manual `acce3001.dvi' in474the `standalone-doc' directory to understand what Levels 0, 1 and 2475are all about.) The value of <detail> determines the amount of detail476(`<detail> = 0' means less detail). The first form (with no arguments)477selects `<level> = 0, <detail> = 0'. The second form of this command478makes `<detail> = 0'. This option is intended for gurus; the source479code should be consulted to see what the output means.480481*INTERACTIVELY*, use `ACEDumpVariables' (see~"ACEDumpVariables").482483\>`help'{option help}@{option `help'}&484Prints the {\ACE} help screen. (Shortest abbreviation: `h'.)485486This option prints the list of options of the {\ACE} binary. Note that487this list is longer than a standard screenful.488489\>`nc'{option nc}@{option `nc'}490\>`nc:=<val>'{option nc}@{option `nc'}491\>`normal'{option normal}@{option `normal'}492\>`normal:=<val>'{option normal}@{option `normal'}&493Check or attempt to enforce normal closure; <val> must be 0 or 1.494495This option tests the subgroup for normal closure within the group. If496a conjugate of a subgroup generator by a generator, is determined to497belong to a coset other than coset 1, it is printed out, and if `<val>498= 1', then any such conjugate is also added to the subgroup499generators. With no argument or if `<val> = 0', {\ACE} does not add500any new subgroup generators.501502*Notes:*503The method of determination of whether a conjugate of a subgroup504generator is in the subgroup, is by testing whether it can be traced505from coset 1 to coset 1 (see `trace':~"option trace").506507The resultant subgroup need not be normally closed after executing508option `nc' with the value 1. It is still possible that some509conjugates of the newly added subgroup generators will not be elements510of the subgroup.511512*INTERACTIVELY*, use `ACEConjugatesForSubgroupNormalClosure'513(see~"ACEConjugatesForSubgroupNormalClosure").514515\>`options'{option options}@{option `options'}&516Dumps version information of the {\ACE} binary.517(Shortest abbreviation: `opt'.)518519A rather unfortunate name for an option; this command dumps details of520the ``options'' included in the version of {\ACE} when the {\ACE}521binary was compiled.522523A typical output, is as follows:524525\begintt526Executable built:527Sat Feb 27 15:57:59 EST 1999528Level 0 options:529statistics package = on530coinc processing messages = on531dedn processing messages = on532Level 1 options:533workspace multipliers = decimal534Level 2 options:535host info = on536\endtt537538*INTERACTIVELY* and non-interactively, use the command539`ACEBinaryVersion();' (see~"ACEBinaryVersion") for this information,540instead, unless you want it in an {\ACE} standalone input file.541542\>`oo:=<val>'{option oo}@{option `oo'}543\>`order:=<val>'{option order}@{option `order'}&544Print a coset representative of a coset number with order a multiple545of <val> modulo the subgroup; <val> must be an integer.546547This option finds a coset with order a multiple of `|<val>|' modulo548the subgroup, and prints out its coset representative. If `<val> \<5490', then all coset numbers meeting the requirement are printed. If550`<val> > 0', then just the first coset number meeting the requirement551is printed. Also, `<val> = 0' is permitted; this special value effects552the printing of the orders (modulo the subgroup) of all coset numbers.553554*INTERACTIVELY*, use `ACEOrders' (see~"ACEOrders"), for the case555`<val> = 0', or `ACEOrder' (see~"ACEOrder"), otherwise.556557\>`sr'{option sr}@{option `sr'}558\>`sr:=<val>'{option sr}@{option `sr'}&559Print out parameters of the current presentation; <val> must be an560integer in the range 0 to 5.561562No argument, or `<val> = 0', prints out the `Group Name', the group's563`relators', `Subgroup Name' and the subgroup's `generators'. If `<val>564= 1', then the `Group Generators' and the current setting of the ``run565parameters'' is also printed. The printout is the same as that566produced at the start of a run when option `messages' (see~"option567messages") is non-zero. Also, <val> equal to 2, 3, 4, or 5 print out568just the `Group Name', just the group's `relators', just the `Subgroup569Name', or just the subgroup's `generators', respectively.570571*Notes:*572The `sr' option should only be used *after* an enumeration run;573otherwise, the value 0 for some options will be unreliable. To ensure574this occurs non-interactively, ensure one of the options that invokes575an enumeration: `start' (see~"option start") or `aep' (see~"option576aep") or `rep' (see~"option rep"), precedes the `sr' option. (When an577enumeration-invoking option is included non-interactively the quiet578inclusion step of the `start' option is omitted.)579580*INTERACTIVELY*, use `ACEGroupGenerators' (see~"ACEGroupGenerators"),581`ACERelators' (see~"ACERelators"), `ACESubgroupGenerators' (see582"ACESubgroupGenerators"), and `ACEParameters' (see~"ACEParameters").583584\>`print'{option print}@{option `print'}585\>`print:=<val>'{option print}@{option `print'}586\>`print:=[<val>]'{option print}@{option `print'}587\>`print:=[<val>, <last>]'{option print}@{option `print'}588\>`print:=[<val>, <last>, <by>]'{option print}@{option `print'}&589Compact and print the coset table; <val> must be an integer, and590<last> and <by> must be positive integers.591(Shortest abbreviation: `pr'.)592593In the first (no value) form, `print' prints the entire coset table,594without orders or coset representatives. In the second and third595forms, the absolute value of <val> is taken to be the last line of the596table to be printed (and 1 is taken to be the first); in the fourth597and fifth forms, `|<val>|' is taken to be the first line of the table598to be printed, and <last> is taken to be the number of the last line599to be printed. In the last form, the table is printed from line600`|<val>|' to line <last> in steps of <by>. If <val> is negative, then601the orders modulo the subgroup (if available) and coset602representatives are printed also.603604*INTERACTIVELY*, use `ACEDisplayCosetTable'605(see~"ACEDisplayCosetTable").606607\>`sc:=<val>'{option sc}@{option `sc'}608\>`stabilising:=<val>'{option stabilising}@{option `stabilising'}&609Print out the coset numbers whose elements normalise the subgroup;610<val> must be an integer.611(Shortest abbreviation of `stabilising' is `stabil'.)612613If `<val> > 0', the first `<val>' non-trivial (i.e.~other than coset6141) coset numbers whose elements normalise the subgroup are printed. If615`<val> = 0', all non-trivial coset numbers whose elements normalise616the subgroup, plus their representatives, are printed. If `<val> \<6170', the first `|<val>|' non-trivial coset numbers whose elements618normalise the subgroup, plus their representatives, are printed.619620*Note:*621The name of this option is an historical hangover. It is named for the622property that elements that ``normalise'' a subgroup, may be said to623``stabilise'' that subgroup when they act ``by conjugation''. Also,624the option `normal' (see~"option normal") already performs a different625function.626627*INTERACTIVELY*, use `ACECosetsThatNormaliseSubgroup'628(see~"ACECosetsThatNormaliseSubgroup").629630\>`statistics'{option statistics}@{option `statistics'}631\>`stats'{option stats}@{option `stats'}&632Dump enumeration statistics.633(Shortest abbreviation of `statistics' is `stat'.)634635If the statistics package is compiled into the {\ACE} code, which it636is by default (see the `options'~"option options" option), then this637option dumps the statistics accumulated during the most recent638enumeration. See the `enum.c' source file for the meaning of the639variables.640641*INTERACTIVELY*, use `ACEDumpStatistics' (see~"ACEDumpStatistics").642643\>`style'{option style}@{option `style'}&644Prints the current enumeration style.645646This option prints the current enumeration style, as deduced from the647current `ct' and `rt' parameters (see~"Enumeration Style").648649*INTERACTIVELY*, use `ACEStyle' (see~"ACEStyle").650651\>`tw:=[<val>, <word>]'{option tw}@{option `tw'}652\>`trace:=[<val>, <word>]'{option trace}@{option `trace'}&653Trace `<word>' through the coset table, starting at coset `<val>';654<val> must be a positive integer, and <word> must be a word in the655group generators.656657This option prints the final coset number of the trace, if the trace658completes.659660*INTERACTIVELY*, use `ACETraceWord' (see~"ACETraceWord").661662\enditems663664%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%665\Section{Options that Modify the Coset Table}666667\beginitems668669\index{dead coset (number)}670\>`recover'{option recover}@{option `recover'}671\>`contiguous'{option contiguous}@{option `contiguous'}&672`Recover' space used by dead coset numbers.673(Shortest abbreviation of `recover' is `reco', and shortest674abbreviation of `contiguous' is `contig'.)675676This option invokes the compaction routine on the table to recover the677space used by any dead coset numbers. A `CO' message line is printed678if any cosets were recovered, and a `co' line if none were. This679routine is called automatically if the `cycles', `nc', `print' or680`standard' options (see~"option cycles", "option nc", "option print"681and "option standard") are invoked.682683*INTERACTIVELY*, use `ACERecover' (see~"ACERecover").684685\>`standard'{option standard}@{option `standard'}&686Compacts {\ACE}'s coset table and standardises the numbering of687cosets, according to the `lenlex' scheme (see Section~"Coset Table688Standardisation Schemes"). (Shortest abbreviation: `st'.)689690For a given ordering of the generators in the columns of the table, it691produces a canonical numbering of the cosets. This function does not692display the new table; use the `print' (see~"option print") for that.693Such a table has the property that a scan of the successive rows of694the *body* of the table row by row, from left to right, encounters695previously unseen cosets in numeric order.696697*Notes:*698In a `lenlex' standard table, the coset representatives are ordered699first according to length and then the lexicographic order defined by700the order the generators and their inverses head the columns. Note701that, since {\ACE} avoids having an involutory generator in the first702column when it can, this lexicographic order does not necessarily703correspond with the order in which the generators were first put to704{\ACE}. Two tables are equivalent only if their canonic forms are the705same. Invoking this option directly does *not* affect the {\GAP} coset706table obtained via `ACECosetTable'; use the `lenlex' (see~"option707lenlex") option, if you want your table `lenlex' standardised. (The708`lenlex' option restarts the enumeration, if it is necessary to ensure709the generators have not been rearranged.)710711*Guru Notes:*712In five of the ten standard enumeration strategies of Sims713\cite{Sim94} (i.e.~the five Sims strategies not provided by {\ACE}),714the table is standardised repeatedly. This is expensive715computationally, but can result in fewer cosets being necessary. The716effect of doing this can be investigated in {\ACE} by (repeatedly)717halting the enumeration (via restrictive options), standardising the718coset numbering, and continuing (see Section~"Emulating Sims" for an719interactive example).720721*INTERACTIVELY*, use `ACEStandardCosetNumbering'722(see~"ACEStandardCosetNumbering").723724\enditems725726%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%727\Section{Options for Comments}728729\beginitems730731\>`text:=<string>'{option text}@{option `text'}&732Prints <string> in the output; <string> must be a string.733734This allows the user to add comments to the output from {\ACE}.735736*Note:*737Please avoid using this option to insert comments starting with three738asterisks: `***', since this string is used as a sentinel internally739in flushing output from {\ACE}.740741\>`aceincomment:=<string>'{option aceincomment!different to option text}%742@{option `aceincomment'!different to option `text'}&743Prints comment <string> in the {\ACE} input; <string> must be a string.744(Shortest abbreviation: `aceinc'.)745746This option prints the comment <string> behind a sharp sign (`\#') in747the input to {\ACE}. Only useful for adding comments (that {\ACE}748ignores) to standalone input files.749750\enditems751752%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%753%%754%E755756757