Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

611072 views
����;� TeX output 2016.11.06:1241����������p���@�+��@"��N�e9V$
phvb7t�NThe�
�XGAP�4�Man���ual�����f�P�e9V

phvb7t�Pb��uy��^����n8Frank��&Celler�����qmand������Max��&Neunh��Ι��h�o�޹er�����y��;3{�

ptmr7t�https://g��7ap-packages.github���.io/xg�ap/����$��l�Cop��gyright�����G���[c���������Dƛ�

zptmcm7y�D
������1999{2012��by�Frank�Celler�and�Max�Neunh���Ğ�3�oer����$e�W��37e��adopt�the�cop��gyright�re�٠gulations�of��Q�l�

phvr7t�QGAP��as�detailed�in�the�cop�yright�notice�in�the��QGAP��manual.�����*�����p���Լ\����8P�NContents����*p���������B�������H�ߌ�

ptmb7t�H1���$Ho��gw��to�r���ead�this�manual���Q��5������������2���$What��is�XGAP?���vJ6��������������2.1���$Basics�	�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.����6�������������2.2���$What��you�can�do�with�XGAP�
���.�����.�����.����6�������������2.3���$Ho��w��does�it�w��gork?��Ӎ��.�����.�����.�����.�����.�����.�����.����7���������������2.4���$Historical��Remarks�and����$Ackno��wledgements�����.�����.�����.�����.�����.�����.�����.����8�������������H3���$Installing��XGAP���s��9��������������3.1���$Ov�٠ervie��w��a���.�����.�����.�����.�����.�����.�����.�����.�����.�����.����9�������������3.2���$What��you�need�to�install�XGAP��ލ��.�����.�����.����9�������������3.3���$Getting��and�unpacking�the�sources������.�����.����9�������������3.4���$Conguring��and�Compiling�the�C�part�}Ǎ��.����10�������������3.5���$Installing��the�Startup�Script�	�����.�����.�����.�����.����11���������������3.6���$Installing��in�a�dierent�than�the�standard����$location��ˍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.����11�������������H4���$Subgr���oup��Lattices�-�Examples���5��12����������������4.1���$The��Subgroup�Lattice�of�the�Dihedral����$Group��of�Order�8�L����.�����.�����.�����.�����.�����.�����.����12���������������4.2���$A��P�٠artial�Subgroup�Lattice�of�the����$Symmetric��Group�on�6�Points�����.�����.�����.����15���������������4.3���$A��P�٠artial�Subgroup�Lattice�of�the����$Ca���vicchioli��Group�

l���.�����.�����.�����.�����.�����.�����.����17���������������4.4���$A��P�٠artial�Subgroup�Lattice�of�the�T��grefoil����$Knot��Group��A���.�����.�����.�����.�����.�����.�����.�����.�����.����19���������������4.5���$A��P�٠artial�Subgroup�Lattice�of�a�Finitely����$Presented��Group����.�����.�����.�����.�����.�����.�����.�����.����20���������������4.6���$A��P�٠artial�Subgroup�Lattice�of�a�Space����$Group�
s8���.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.����21���������������O���������H5���Subgr���oup��Lattices�-�Systematic����Description������24���������������5.1���GraphicSubgroupLattice�	!����.�����.�����.�����.�����.����24����������������5.2���GraphicSubgroupLattice,��Protocol�of�Group����Theoretic��Constructions�����.�����.�����.�����.�����.����24����������������5.3���GraphicSubgroupLattice,��Labelling�of����Le��v�٠els�	�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.����25��������������5.4���GraphicSubgroupLattice,��Mo�٠ving�V����ertices�����25����������������5.5���GraphicSubgroupLattice,��Selecting����V����ertices��c���.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.����26��������������5.6���GraphicSubgroupLattice,��Inserting�V����ertices����926��������������5.7���GraphicSubgroupLattice,��Sheet�Menu�Ս��.����27��������������5.8���GraphicSubgroupLattice,��Poset�Menu������.����27��������������5.9���GraphicSubgroupLattice,��Subgroups�Menu���	�t28����������������5.10���GraphicSubgroupLattice,��Information����Menu������.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.����31��������������5.11���V����erte�٠x��Shapes�8r���.�����.�����.�����.�����.�����.�����.�����.�����.����32����������������5.12���GraphicSubgroupLattice��for�FpGroups,����Subgroups��Menu�c����.�����.�����.�����.�����.�����.�����.�����.����32����������������5.13���GraphicSubgroupLattice��for�FpGroups,����Information��Menu�
f����.�����.�����.�����.�����.�����.�����.����35���������������H6���Graphic��Sheets�-�Basic�graphic����operations����!36���������������6.1���Graphic��Sheet�Objects�d���.�����.�����.�����.�����.�����.����36��������������6.2���Graphic��Objects�in�Sheets��퍑�.�����.�����.�����.�����.����38��������������6.3���Colors��in�XGAP�T����.�����.�����.�����.�����.�����.�����.�����.����41��������������6.4���Operations��for�Graphic�Objects�3����.�����.�����.����42��������������6.5���Global��Information��ō��.�����.�����.�����.�����.�����.�����.����42�������������y�����LKj�

ptmri7t�LContents��p��3���p�������������������H7���$User��Communication���Z��43��������������7.1���$Menus��in�Graphic�Sheets�.[���.�����.�����.�����.�����.����43�������������7.2���$Mouse��Ev�٠ents�5ፑ�.�����.�����.�����.�����.�����.�����.�����.�����.����44�������������7.3���$Dialogs����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.����45�������������7.4���$Popups��؍��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.����45�������������H8���$Graphic��P���osets���u{47��������������8.1���$Introduction�
�{���.�����.�����.�����.�����.�����.�����.�����.�����.����47�������������8.2���$Operations�ڍ��.�����.�����.�����.�����.�����.�����.�����.�����.�����.����48�������������8.3���$An��Example�	�����.�����.�����.�����.�����.�����.�����.�����.�����.����55�������������H9���$Graphic��Graphs���o��57������������10���$Dier���ences��to�XGAP�3���T��58��������������10.1���$Concept������.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.����58�������������10.2���$User��Interf��gace�0ҍ��.�����.�����.�����.�����.�����.�����.�����.�����.����59�������������10.3���$Where��code�has�to�be�changed�
э��.�����.�����.����59����������$�HBibliograph�٠y���~C60�������������H�����p���������p����Ƣ�������M�e9V`
phvb7t�M1������u�NHo��u�w���to�read��,��	x�this�طman���ual����8N8��This�!chapter�!tells�you�e�٠xactly��Y�,�which�part�of�this�manual�you�ha���v�٠e�to�read�if�you�w��gant�to�learn�certain�things�about����QXGAP�.��N8�If�b_you�b`do�not�kno��w�an�٠ything�about��QXGAP�b%�you�might�w��gant�to�ha���v�٠e�a�look�at�chapter�2.�Y���gou�can�learn�there,�what����QXGAP�K!�is�K/all�K.about,�what�you�can�do�with�it�as�a�user�(doing�no�programming)�and�for�what�you�can�use��QXGAP�K!�within���your��o��wn�programs.�Y���gou�nd�also�references�to�other�sections�of�this�manual�to�get�into�the�details.���If��you�w��gant�to�kno��w�ho�w�to�install��QXGAP�,�then�you�should�look�into�chapter�3.���If�Byou�Bkno��w��QXGAP�B�from�its��QGAP�3�v�٠ersion,�you�will�consider�chapter�10�useful.�There�you�can�quickly�\update"�your���kno��wledge��[to�the�ne�w��QGAP�4��Zv�٠ersion�and�also�nd�some�technical�details�about�the�implementation,�which�is�nearly���completely��ne��w��Y�.���Perhaps�dUyou�dVkno��w�already��Y�,�that�you�can�display�subgroup�lattices�interacti��v�٠ely�with��QXGAP�dO�and�you�w��gant�to�start�with���this��right��no��w��Y�.�In�this�case,�jump�to�chapters�4�and�5�immediately��Y�.�Ho��we�v�٠er���,��you�should�mak��ge�sure�rst�that�you�ha���v�٠e���a��w��gorking��QXGAP��installed!���The�	��QXGAP�	��library�is�described�	�in�these�and�the�remaining�chapters�of�this�manual.�The�information�is�di��vided�into���the��follo��wing�parts:��N8��Hsubgr���oup��lattices�-�examples���subgr���oup��lattices�-�systematic�description���graphic��sheets����$�Creating��and�managing�graphic�sheets�and�graphic�objects.�This�is�the�lo��west�le�v�٠el.����Huser��communication����$�Handling��of�menus,�dialogs,�te�٠xt�selectors�and�popups.����Hgraphic��posets����$�Display��of�posets�in�graphic�sheets.����Hgraphic��graphs����$�Display��of�mathematical�graphs�in�graphic�sheets.��A��lot�of�\routine�w��gork"�for�handling�these�things�is�already����$done��and�can�be�used�in�your�applications!��N8�There��is�a�chapter�for�each�of�these�parts.�����ˍ����p���Լ\�������M2�����=f�NWhat��is�XGAP?����8N8��In���this�chapter�you�nd�the�answer�to�the�abo�٠v�e���question���be�ginning�from�a�short�o�v�ervie��w�up�to�a�description�of�the���technical��concept.��N8��P2.1��Basics��N8��The��Zidea��[of��QXGAP��is�that��QGAP��should�be�able�to�control�graphics.�A��Igraphical�user�interf��gace�is�sometimes�easier�to���use��than��a�te�٠xt�and�command�oriented�one�and�there�are�mathematical�applications�for�which�it�can�be�quite�useful�to���visualize��objects�with�computer�graphics.��N8�On�d]the�d^other�hand�it�is�not�sensible�to�change�the�whole�concept�and�user�interf��gace�of��QGAP�dW�because�it�is�not�advisable���to��1put��0all�the�f��gacilities�of��QGAP��$�into�a�menu�system.�So��QXGAP��is�a�separate�C��$program�running�under�the�X��$W���indo��w���System,�@�which�@�starts�up�a��QGAP��job�and�allo��ws�normal�command�e�٠x�ecution�@�within�a�windo��w��Y�.�Note�that�the�online�help���of���QGAP��is�a���v��ailable,�ho�we�v�٠er�it�will�appear�in�a�separate�windo�w��Y�.���In�f3addition�f2there�is�a�library�written�in��QGAP�,�which�mak��ges�it�possible�to�open�ne��w�windo�ws,�display�f2graphics,�control���menus��and�do�other�graphical�user�communication�in��QGAP��via�the�separate�C�part.���Built�k�on�those�\simple"�windo��ws�and�graphic�objects�are�k�other�libraries�which�display�graphs�and�posets�in�a�windo�w���and�=allo��w�>the�user�to�mo�٠v�e�v�ertices�=around,�select�them�and�in���v���ok��ge��QGAP��functions�on�mathematical�objects�which���belong��to�the�graphic�objects.���One���\application"�of���these�libraries�is�a�program�to�display�subgroup�lattices�interacti��v�٠ely��Y�.�So��QXGAP��w��gorks�as�a���front�4/end�4.for�mathematical�operations�on�subgroup�lattices.�It�is�possible�to�\switch"�between�the�graphics�and�the����QGAP�U��commands.�This�U�means�that�you�can�for�e�٠xample�use�the�graphically�selected�v�٠ertices�resp.�subgroups�to�do���your��o��wn�calculations�in�the�command�windo�w��Y�.�Y���gou�can�then�display�your�results�ag��7ain�as�v�٠ertices�in�the�lattice.���Of��course�there�are�other�applications�possible�and�the�libraries�are�de��v�٠eloped�with�code�reusage�in�mind.��N8��P2.2��What��&y���ou�can�do�with�XGAP��N8��QXGAP�j��graphic�j�sheets�w��gork�graphic�object�oriented.�This�means�that�the�basic�j�graphic�objects�are�not�pix�٠els�b���ut�lines,���rectangles,��circles�and�so�on.��Although�technically�e��v�٠erything�on�the�screen�consists�of�pix�els��QXGAP����remembers�the���structure��:of�your�graphics��;via�higher�objects.�This�has�adv��antages�as�well�as�disadv��antages.�Do�not�e�٠xpect�to�be�able���to��aplace��bpix�٠el�images�into�your��QXGAP��R�graphic�sheets.�That�is�as�of�no��w��Hnot�possible��with��QXGAP��R�and�probably�will���ne��v�٠er��be,�because�it�is�not�the�idea�of�the�design.���What��(you��'can�do�is�create,�mo�٠v�e�around��(and�change�lines,�circles,�te�٠xt�and�so�forth�in�graphic�sheets.�Y���gour�programs���can��communicate�with�the�user�via�graphical�user�interf��gaces�lik�e�mouse,�menus,�dialogs,�and�so�on.���It��is�v�٠ery�easy��to�link�this�graphical�en���vironment�with�your�programs�in�the�mathematical�en���vironment�of��QGAP�.�So���you�Lcan�Lv�٠ery�quickly�implement�visualizations�of�the�mathematical�objects�you�study��Y�.�The�user�can�select�objects,���choose��functions�from�menus�and�ask�for�more�information�with�a�fe��w�mouse�clicks.���A���good�e�٠xample�for�this�approach���is�the�implementation�of�the�interacti��v�e�T��37odd-Cox�eter���-Algorithm�to�compute�coset���tables��in�nitely�presented�groups.�It�uses�the�graphical�features��of��QXGAP����to�gi��v�٠e�the�user�quick�and�easy�access�to���the�R�algorithm�by�a�fe��w�mouse�clicks.�This�program�w��gas�R�written�by�Ludger�Hippe�in�Aachen�using��QXGAP�3�and�is���currently��ported�to��QXGAP�4�and�e�٠xtended�by�V����olkmar�Felsch.�����%������LSection��3.�How�does�it�work?�Y���7���p�����Another��enice��dlittle�e�٠xample�is�in�the����<x

cmtt10�examples��subdirectory�in�the��QXGAP��"�distrib���ution.�It�w��gas�written�by�Thomas���Breuer���(Aachen)���to�demonstrate�the�features�of��QXGAP�.�The�user�gets�a�small�windo��w�with�a�puzzle�and�can�solv�٠e�it���using�:tthe�:smouse.�Y���gou�can�test�this�e�٠xample�by�starting��QXGAP�:b�and��Read�ing�the�le��pkg/xgap/examples/puzzle.g�.���Y���gou��can�do�this�by�using����9��gap>�?�ReadPkg("xgap","examples/puzzle.g");����9�gap>�?�p�:=�Puzzle(4,4);��N8��Y���gou�[�do�not�[�ha���v�٠e�to�in���v�ent�the�wheel�man�y�[�times.�F�or�certain�mathematical�concepts�lik��ge�[�graphs,�posets�or�lattices����QXGAP����pro�٠vides���implementations���which�can�be�adapted�to�your�special�situation.�Y���gou�can�use�those�parts�of�the�code���you��lik��ge�and�substitute�the�other�parts�to�adapt�the�beha���viour�of�the�user�interf�ace�to�your�wishes.��N8��P2.3��Ho��w��&does�it�w��uork?����QXGAP���consists��of��a�C�program��xgap��(in�the��follo��wing��xgap��in�type�writer�style�refers�to�this�C��part)�separate�from����QGAP�,�`�and�of�some�libraries�written�in�the��QGAP�`g�language.��xgap�`��is�started�by�the�user�and�launches�a��QGAP��job�in���the�]fbackground.�It�then�talks�to�this��QGAP�]-�job���.�Especially�it�]edisplays�all�the�output�which�comes�from��QGAP��in�the���communication��windo��w�and�feeds�e�v�٠erything�the�user�types�in�this�windo�w�into�the��QGAP��job���.��N8�But���there�is���also�some�communication�with�the��QGAP����job�about�the�graphics�that�should�be�displayed.�Because��QGAP����has�L�no�concept�of�putting�graphics�on�the�screen,�this�part�L�is�done�by��xgap�.�Therefore�there�is�a�protocol�between���the�0��QGAP�0��part�0�of��QXGAP��running�in�0�the��QGAP��session�0�and��xgap��which�is�embedded�in�the�input/output�stream.�The���user��,does��+not�notice�this.��xgap��stores�all�windo��ws�and�graphic�objects�and�does�all�the�w��gork�necessary�for�displaying���windo��ws��and�managing�user�communication�and�so�on.���The���QGAP��|�part�of��QXGAP��{�also��stores�all�graphical�information,�b���ut�in�form�of��QGAP��{�objects.�The�user�can�inspect�all���these���structures�and���use�them�in�o��wn�programs.�Changes�in�these�structures�are�transmitted�through�the�communica-���tions��protocol�to��xgap��and�are�e��v�٠entually�displayed�on�the��screen.�User�actions�lik��ge�mouse�clicks�or�k�e�٠yboard�e��v�ents���are�F�caught�by��xgap��and�F�transmitted�to�the��QGAP�F��job�via�function�calls�that�are�\typed�in"�as�if�the�user�had�typed�them.���So��the�library�can�w��gork�on�them�and�change�the��QGAP��objects�accordingly��Y�.���T��L�echnically��Y�,�@]�QXGAP�@N�is�a�package�@^and�one�of�the�rst�commands�that�is�e�٠x�ecuted�automatically�@]within�the��QGAP�@M�session���is���a��LoadPackage("xgap")��call.���This�reads�in�the�e�٠xtra��QXGAP��u�libraries.�The�y�are���found�in�the��pkg/xgap/lib����subdirectory��Y�,��normally�in�the�main��QGAP��directory�.�The�les�contain�the�follo��wing:��N8��window.g����$�basic��denitions�for�the�communications�protocol����sheet.g[di]����$�graphic��sheets�and�their�operations����color.g[di]����$�color��information����font.g[di]����$�te�٠xt��font�information����menu.g[di]����$�menus,��dialogs,�popups,�and�user�communication����gobject.g[di]����$�lo��w��le�v�٠el�graphic�objects�and�their�operations����poset.g[di]����$�graphic��graphs�and�graphic�posets����ilatgrp.g[di]����$�graphic��subgroup�lattices�����5E�����8�bd�LChapter��2.�What�is�XGAP?���p������meataxe.g[di]����$�support��to�display�submodule�lattices�calculated�within�the�C�MeatAx�٠e���p�The��Luser��Knormally�does�not�need�to�kno��w�this�or�the�details�of�it.�Ho��we�v�٠er���,��Lit�is�important�to�understand�that�the���program�ҏ�xgap�Ҏ�is�highly�machine�or�at�least�operating�system�dependent.�There�is�no�generic�w��gay�to�access�graphics���across�D�dierent�D�platforms�up�to�no��w��Y�.��QXGAP�D��should�run�on�all�v��ariants�of�Unix�with�the�X�D�W���indo��w�System�V����ersion�11���Release�/\5�/[or�higher��s8.�As�of�no��w��QXGAP�/G�does�not�run�on�Microsoft�W���indo��ws.�It�is�also�denitely��Hnot��easily�ported�there,���because���some�important�features�that���are�used�within��QXGAP����are�missing�there�(such�as�pseudo�terminals).�There�are���currently��no�plans�underw��gays�to�do�w�ork�in�this�direction.��N8��P2.4��Historical��&Remarks�and�Ac��ukno��wledg�!Fements��N8��A���rst���program���for�dra�٠wing�a�diagram�sho��wing�the�lattice�of�subgroups�of�a�nite�group�that�had�been�calculated�by���a��computer�w��gas�implemented�by�H.�J���Ğ�3�ur���gensen�in�1965�(see�[FJ70]).��N8�The�sdesign�of�s �QXGAP�s�w��gas�strongly�sin
uenced�and�in�f�act�s triggered�by�the�Q�UO���TPIC�ssystem�of�Derek�s Holt�and�Sarah���Rees�d(see�[HR91])�which�allo��ws�to�depict�graphically�kno�wledge�eabout�normal�subgroups�of�a�nitely�presented�group���found���by���a�v��ariety�of�methods�for�the�in���v�٠estig��7ation�of�nitely�presented�groups.�It�seemed�most�desirable�to�allo��w�to���depict�S1in�S2a�similar�w��gay�the�e��v�٠en�wider�v�ariety�S2of�information�on�subgroups�of�groups�that�can�be�obtained�by�a�system���such��as��QGAP�.���Be�٠ginning�^1993,�Frank�]Celler�de��v�eloped�the�idea�of�an�]interf��gace�from��QGAP�E�to�graphic�systems�that�allo��wed�to�actually���write���commands���for�graphical�tasks�in�the��QGAP����language�and�together�with�Susanne�K��eitemeier�(see�[K��ei95])�wrote���a��rst�v�٠ersion��of�programs�in��QXGAP����for�dra�wing��diagrams�representing�posets�of�subgroups�of�nite�and�nitely���presented���groups.�W��37e�most���gratefully�ackno��wledge�the�help�of�Sarah�Rees�in�implementing�the�interacti��v�٠e�lattice���functions��and�in�beta�testing�the��QGAP�3�v�٠ersion�of��QXGAP�.���In���1998,���Thomas�Breuer���,�Frank�Celler���,�Joachim�Neub���Ğ�3�user�and�Max�Neunh���Ğ�3�oer�planned�the�ne��w�concepts�for�the����QGAP�4��v�٠ersion.��The�implementation�and�porting�to��QGAP�4�w��gas�done�mainly�by�Max�Neunh���Ğ�3�oer�in�1998�and�1999.���Michael�Y&Ringe�Y%added�the�link�to�his�MeatAx�٠e�programs.�W��37e�lik��ge�to�thank�all�those�who�ha���v�٠e�adapted�the��QGAP�Y�library���to��the�needs�of�the�ne��w��QXGAP�,�in�particular�Ale�٠xander�Hulpk��ge�who�has�been�e�xtremely�helpful�with�this�task.�����	C������p���Լ\�������M3�����*��NInstalling���XGAP����;���Installing����QXGAP����should�be���easy�once�you�ha���v�٠e�installed��QGAP��itself.���W��37e�assume�here�that�you�w��gant�to�install��QXGAP����in��its�standard�location,�which�is�in�the�\pkg"�subdirectory�of�the�main��QGAP�4�installation.��ˍ�P3.1��Over�!Fvie��w����Y���gou��ha���v�٠e�to�perform�the�follo��wing�steps�to�install��QXGAP�:��aC���
{��Get��the�sources���l���
{��Unpack��the�sources�����
{��Use��the��Lcongur��Ge��script�to�adjust�e��v�٠erything�to�your�specic�system�����
{��Compile��the�C�part�of��QXGAP�����
�{��Edit��a�certain�startup�script�(if�necessary)�and�install�it�in�an�e�٠x�ecutable��location�in�your�system��4���P3.2��What��&y���ou�need�to�install�XGAP����Being��Ia��Jgraphical�user�interf��gace�to��QGAP�,��QXGAP��2�of�course�needs�graphics.�At�the�moment�this�means�that�you�need���the���X��windo��w���system�in�the�V����ersion�11�Release�5�or�ne��wer��s8.�On�the�other�hand�the�type�of�Unix�you�use�should�not���matter��s8.��Please�le�an�issue�report�on��i���9��https://github.com/gap-packages/xgap/issues����if��0you��1encounter�problems�with�certain�system�congurations.�Note�that�usage�on�a�computer�running�Microsoft���W���indo��ws��)is�not��*ocially�supported.�See�the�le��xgap/README.Windows��for�a�report�ho��w�it�could�still�w��gork�on���W���indo��ws.���l�Because���QXGAP��contains�a�C-part�you�need�a�C�compiler��s8.��ˍ�P3.3��Getting��&and�unpac��uking�the�sour�ces����In�u�most�u�cases,�the��QXGAP�u��package�will�already�be�included�in�the�main�distrib���ution.�Ho��we�v�٠er���,�u�you�can�also�do��wnload���the��sources�of�the�latest�v�٠ersion�from����9��https://gap-packages.github.io/xgap/����Y���gou���need�only�one���le�with�the�name�\xg��7ap-4.26.tar��s8.gz"�which�is�in�the�subdirectory�for�the�packages.�Y���gou�no��w���change��nyour�current��mdirectory�to�the��pkg��subdirectory�of�the�location�where�you�installed��QGAP��Z�No��w�you�e�٠xtract�the���sources��for�the��QXGAP��package:����9��#�?�tar�xzvf�xgap-4.26.tar.gz����9�...����The����Ltar�0m�utility�unpacks�the���les�and�stores�them�into�the�apropriate�subdirectories.��QXGAP��o�resides�completely�in�the���follo��wing��subdirectory�(assuming�standard�location):��i���9��gap4r8/pkg/xgap�����
Og�����10�ZT��LChapter��3.�Installing�XGAP���p������P3.4��Conguring��&and�Compiling�the�C�par�B�t��0
��Y���gou��ha���v�٠e�to�change�your�current�w��gorking�directory�to�the�\xg��7ap"�subdirectory��Y�.�Y�ou�do�this�by�����9��#�?�cd�xgap����if��your�current�w��gorking�directory�is�the�one,�where�you�used��Ltar�:��.�There�you�in���v���ok�e�the��Lcongur��Ge��script�by:����9��#�?�./configure����9�creating�?�cache�./config.cache����9�checking�?�for�make...�make����9�checking�?�build�system�type...�x86_64-unknown-linux-gnu����9�checking�?�host�system�type...�x86_64-unknown-linux-gnu����9�checking�?�target�system�type...�x86_64-unknown-linux-gnu����9�checking�?�for�gcc...�gcc����9�checking�?�whether�the�C�compiler�(gcc�
�)�works...�yes����9�checking�?�whether�the�C�compiler�(gcc�
�)�is�a�cross-compiler...�no����9�checking�?�whether�we�are�using�GNU�C...�yes����9�...����9�updating�?�cache�./config.cache����9�creating�?�./config.status����9�creating�?�Makefile����9�creating�?�xgap.sh��0���A���?

zptmcm7m�A:���:�:��:��indicate��-omissions.��,This�script�tries�to�determine,�which�kind�of�operating�system�and�libraries�you�ha���v�٠e�installed���and��congures�the�source�accordingly��Y�.�Normally�this�should�produce�some�output�b���ut�no�error�messages.���t�Note�_that�you�can�add�\CONFIGN��gAME=def��gault64"�after�`the��L./congur��Ge��command�(with�\def�ault64"�replaced�by�a���conguration��name�you�used�to�compile��QGAP��with)�to�compile�for�a�dierent�than�the�standard�conguration.���The��last�step�of�the�script�produces�some�mak��geles�which�are�used�to�compile�the�code.�Y���gou�do�this�by�typing�����9��#�?�make����9�mkdir�?�-p�bin/x86_64-unknown-linux-gnu-gcc����9�cp�?�cnf/configure.out�bin/x86_64-unknown-linux-gnu-gcc/configure����9�(�?�cd�bin/x86_64-unknown-linux-gnu-gcc�;�CC=gcc�./configure�
�)����9�checking�?�for�gcc...�gcc����9�checking�?�whether�the�C�compiler�works...�yes����9�...����9�creating�?�./config.status����9�creating�?�Makefile����9�creating�?�config.h����9�(�?�cd�bin/x86_64-unknown-linux-gnu-gcc�;�make�CC=gcc�)����9�make[1]:�?�Entering�directory����9�`/scratch/neunhoef/4.0/pkg/xgap/bin/x86_64-unknown-linux-gnu-gcc'����9�gcc�?�-I.�-g�-O2���-o�xcmds.o�-c�../../src.x11/xcmds.c����9�...����9�make[1]:�?�Leaving�directory�\�h��#�line�broken�for�this�manual!����(y�`/usr/local/lib/gap4/pkg/xgap/bin/i686-unknown-linux2.0.34-gcc'��0
��(a��fe��w�lines�were�brok��gen�for�typesetting�purposes�in�this�manual,�the�position�is�mark�ed�by�a�backslash)���No��w�;�all�;�C�;�sources�are�compiled�and�a�binary�e�٠x�ecutable�is�;�b���uilt.�It�is�stored�in�a�subdirectory�of�the�\bin"�subdirectory���in��Jyour�\xg��7ap"��Kdirectory��Y�.�The�name�of�this�location�has�something�to�do�with�your�installation.�It�could�for�e�٠xample���be�����9��bin/x86_64-unknown-linux-gnu-gcc/xgap��0
��if��you�compile�on�a�64-bit�Linux�system�using�the�GNU-C-Compiler��s8.�����X������LSection��6.�Installing�in�a�dier��Gent�than�the�standar�d�location��!��11���p������P3.5��Installing��&the�Star�B�tup�Script��N8��T��37o���mak��ge�the�startup���of��QXGAP��%�more�con���v�٠enient�there�is�a�startup�script�which�contains�also�some�conguration���information���lik��ge���the�position�of�your��QGAP��~�installation.�It�is�in�the�\xg��7ap"�directory�and�is�called�\xg��7ap.sh".�This�le���is���automatically���generated�by�the��configure��script�and�normally�you�should��Hnot��ha���v�٠e�to�change�an�٠ything�in�it.�Just���cop��gy���it���to�some�location�that�people�ha���v�٠e�in�their�\P��A����TH"���en���vironment�v��ariable,�for�e�٠xample�to�\/usr/local/bin".�This���completes��the�installation.��N8�If��you�w��gant�to�change�an�٠ything�in�the�installation,�you�can�also�edit�the�script�until�the�line����9��##�
�STOP�?�EDITING�HERE�!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!����Y���gou�H�can�specify�the�H�directory�where��QGAP�H��is�installed�(\GAP�����ff����DIR"),�the�amount�of�memory�that��QGAP�H��should�use���as�7initial�w��gorkspace�(\GAP�����ff����MEM"),�the�7
name�of�the��QGAP�-e�٠x�ecutable�7(\GAP�����ff��PRG")�6�and�7
the�name�of�the��QXGAP�-���e�٠x�ecutable��v(\XGAP�����ff����PRG").��uThe�rst�three�are�e�٠xactly�the�same�things�that�you�could�edit�in�the�main��QGAP��[�startup���script.��After��that�you�ha���v�٠e�the�possibility�to�control�the�beha���viour�of�the��QXGAP�m�startup�script.�Y���gou�can�specify�whether����QXGAP��goes�Binto�the�background�C(\D���AEMON")�and�whether�it�prints�out�information�about�its�parameters�(\VER-���BOSE").�VNote�Uthat�it�is�possible�to�combine�\D���AEMON=YES"�2and�\VERBOSE=YES"�3because�the�script�actually���runs��in�the�fore�٠ground�and�only�the�C�program�is�put�into�the�background.��N8��P3.6��Installing��&in�a�di�޹erent�than�the�standar��ud�location����It��could��happen�that�you�do�not�w��gant�to�install��QXGAP�\�in�its�standard�location,�perhaps�because�you�do�not�w��gant�to���bother�d'your�system�administrator�d(and�ha���v�٠e�no�access�to�the��QGAP�d �directory��Y�.�In�this�case�you�can�unpack��QXGAP�d �in�an�٠y���other���location�within�a�\pkg"�directory�with�the��Ltar��w�command�as�described�abo�٠v�e.���Let�us�call�this�directory�\pkg"�for���the��moment.�Y���gou�get�an��\xg��7ap"�subdirectory�with�all�the�les�of��QXGAP��in�it.�Y�ou��follo��w�the�standard�procedure�with���one��e�٠xception:��N8�In��the�\./congure"�command,�add�the�follo��wing�option:����9��./configure�?�--with-gaproot=/usr/local/lib/gap4r8����if���/usr/local/lib/gap4r8��is��the�location�of�the�main��QGAP����installation.�Y���gou�can�nd�out�where�the�main��QGAP�4���installation��is�by�starting��QGAP��as�usual�and�looking�at�the�v��ariable��GAPInfo.RootPaths��within��QGAP�.�����d������p���֭�������M4��������s�NSubgr��G�oup�<Lattices��,����-��>Examples����<@Ս�QXGAP�6�pro�٠vides�Ya�graphical�Xinterf��gace�to�the�lattice�or�a�partial�lattice�of�subgroups�of�groups.�F�٠or�nitely�presented���groups�it�gi��v�٠es�you�easy�access�for�e�xample�to�the�lo��w�inde�x,�prime�quotient�and�Reidemeister���-Schreier�algorithms���in��4order�to��5b���uild�a�partial�lattice�interacti��v�٠ely��Y�.�F�or��4other�types�of�groups�it�pro�٠vides�easy�access�to�man�y��5of�the�group���functions��(for�e�٠xample,�the�normalizer���,�normal�subgroups,�and�Sylo��w�subgroups).��N8�This�h{chapter�e�٠xplains�hzho��w�to�use�this�interf��gace�by�w��gay�of�e�٠xamples.�Chapter�5�gi��v�٠es�details�about�the�v��arious�op-���tions���and���menus�a���v��ailable.�These�tw��go�chapters�will�not�describe�ho��w�to�write�your�o��wn�programs�using�the�graphic���e�٠xtensions��supplied�by��QXGAP�,�see�chapters�6�to�9�for�details.���It��is�assumed�that�you�ha���v�٠e�already�started��QXGAP�.�On�most�systems�you�do�this�by�typing����9��user@host:~>�?�xgap��N8��on�~the�~
command�line.�Ask�your�system�administrator�if�this�does�not�w��gork.�This�command�will�create�a�ne��w�windo�w��Y�,���the�X�so�called��QGAP�XR�windo��w��Y�,�in�which��QGAP�XS�is�a�٠w��gaiting�your�input.�Depending�on�the�windo�w�system�and�windo�w���manager���you�use,�placing���a�ne��w�windo�w�on�your�screen���might�be�done�automatically�or�might�require�you�to�use�the���mouse��to�choose�a�position�for�the�windo��w�and�pressing�the�left�mouse�b���utton�to�place�the�windo�w��Y�.���The�U�small�arro��w�U�or�cross�you�see�on�your�screen�is�called�a�pointer��s8.�Although�the�de��vice�used�to�mo�٠v�e�this�U�pointer�can���be��an�٠ything,�a�mouse,��a�track�ball,�a�glide-pad,�or�e��v�en�something��as�e�xotic�as�a�rat,�we�will�use��the�term�mouse�to���refer��to�this�pointer�de��vice.���In��7case��6that�some�computation�tak��ges�longer�than�e�٠xpected,�for�instance�the�lo��w�inde�٠x�and�the�prime�quotient�can���be��quite��time�consuming,�you�can�al��gw�ays�interrupt��a�computation�by�making�the��QGAP���windo��w�acti�v�٠e��and�pressing����LCTRL-C�,_�or��,selecting��Interrupt��-�in�the��Run��menu.�Ag��7ain,�making�a�windo��w�acti�v�٠e��,is�system�and�windo��w�manager���dependent.�g�In�g�most�cases�you�either�ha���v�٠e�to�mo�٠v�e�the�g�pointer�inside�the��QGAP�g��windo��w�or�you�ha���v�٠e�to�click�on�the�title���bar��of�the��QGAP��windo��w��Y�.���Note��Jthat��Kfor�each�of�the�follo��wing�e�٠xamples�there�is�a�small��QGAP��I�script�in�the��examples��subdirectory�of�the��QXGAP����home���directory���which�contains�the�necessary�commands.�Ho��we�v�٠er���we�consider�it�better�for�learning��QXGAP��}�in�a�rst���time��session�if�you�type�the�commands�by�hand�as�suggested�in�the�ne�٠xt�fe��w�sections�of�this�manual.��N8��P4.1��The��&Subgr��uoup�Lattice�of�the�Dihedral�Gr�oup�of�Or�der�8��N8��This�0�section�0�gi��v�٠es�you�an�e�٠xample�on�ho��w�to�use�the�function��GraphicSubgroupLattice��(see�5.1�for�details),�which���will��display�the�Hasse�diagram�of�the�subgroup�lattice�of�a�gi��v�٠en�group.���Using��	the��
dihedral�group�of�size��>�޾V

zptmcm7t�8��as�e�٠xample�the�follo��wing�will�sho�w��
you�most�features�of�the��GraphicSubgrou-���pLattice���program.�This�e�٠x�ercise��is�best�carried�out�in�front�of��QXGAP�,�trying�the�v��arious�commands�yourself.���First��you�ha���v�٠e�to�dene�a�group�in��QGAP�,�this�e�xample�uses�a�dihedral�group�dened�as�polyc�yclic�group.����9��gap>�?�d8�:=�DihedralGroup(8);����9�<pc�?�group�of�size�8�with�3�generators>����9�gap>�?�SetName(d8,"d8");��N8��No��w��you�ask�for�a�graphical�display�by�����
p������LSection��1.�The�Subgr���oup�Lattice�of�the�Dihedr�٠al�Gr�oup�of�Or��Gder�8���E�13���p������9��gap>�?�s�:=�GraphicSubgroupLattice(d8);����9�<graphic�?�subgroup�lattice�"GraphicSubgroupLattice�of�d8">��N8��QXGAP���will��open��a�windo��w�containing�a�ne��w�graphic�sheet,�a�menu�bar�(menus�are�described�belo��w)�abo�٠v�e�the��graphic���sheet��and��a�title.�On�most�systems�the�title�will�be�either�belo��w�the�graphic�sheet�or�abo�٠v�e��the�menu�bar��s8.�The�dimension���of�Vthe�Ugraphic�sheet�is�x�٠ed,�changing�the�size�of�the�windo��w�will��Hnot��change�the�size�of�the�graphic�sheet,�see�5.8���ho��w�>to�resize�the�graphic�sheet.�It�is�possible�that�the�graphic�sheet�is�lar���ger�(depending�on�the�lattice�it�might�be�much���lar���ger)�8than�the�windo��w��Y�.�In�this�8case�the�windo�w�will�contain�so�called�scrollbars�which�allo�w�8you�to�select�the�portion���of��the�graphic�sheet�which�will�be�displayed.��N8��QXGAP�{��rst�|sho��ws�|only�the�whole�group�(which�is�already�selected)�and�the�tri��vial�subgroup,�connected�by�a�line���indicating��inclusion.����ConjugacyClassesSubgroups��"�computes�and��!returns�the�conjug��7ac�٠y�classes�of�subgroups,�so�summing�up�the�sizes���of��the�classes�tells�you�ho��w�man�٠y�elements�the�lattice�has.����#9��gap>�?�Sum(�List(�ConjugacyClassesSubgroups(d8),�Size�)�);����#9�10��N8��10��M�is��Nsmall�enough�to�use��AllSubgroups��without�painting�the�screen�black.�After�you�ha���v�٠e�click��ged�this�menu�entry���in��the��Subgroups��menu�you�see�the�complete�Hasse�diagram�in�the�graphic�sheet.���The��follo��wing�initial�remarks�can�be�made�about�the�graphical�representation�of�the�subgroup�lattice:��N8���
{��The��v�٠erte�x�representing�the�tri��vial�subgroup�is�labeled��1�.�����
{��V����ertices���representing�subgroups�of���the�same�size�are�dra�٠wn�at�the�same�height.�The�٠y�are�said�to�be�\on�the�same����le��v�٠el".�WMIn�our�e�xample�WLthe�subgroups�that�belong�to�the�v�ertices��2�,�WL�4�,��5�,��8��and��9��all�ha���v�e�size�WL2,�and�the�subgroups����of�X��3�,��6�,�and��7��ha���v�٠e�size�X��4�.�The�def��gault�beha�viour�is�to�place�a�v�٠erte�x�X�abo�v�e�another�one�X�if�the�size�of�the�subgroup����represented��Pby��Othe�rst�v�٠erte�x�is��Plar���ger�than�the�size�of�the�subgroup�of�the�second,�b���ut�see�5.1�for�details.�At�the����right�Redge�Rof�the�graphic�sheet�each�le��v�٠el�is�labeled�with�the�inde�٠x�of�the�subgroups�contained.�See�5.3�for�details����on��the�labelling�of�le��v�٠els.�����
{��V����ertices�qbelonging�pto�the�same�conjug��7ac�٠y�class�are�placed�closely�together��s8.�In�our�e�٠xample�the�subgroups�of��4�����and���5��form�one�conjug��7ac�٠y�class.���p�The���initial���placement�of�the�v�٠ertices�chosen�by��GraphicSubgroupLattice��might�not�be�optimal�or�you�might�w��gant���to�/�choose�/�a�dierent�one�in�order�to�e�٠xploit�certain�features�of�the�diagram.�It�is�therefore�possible�to�mo�٠v�e�the�/�v�ertices���around��using�the�mouse.���The���mouse�together�with�the�left�mouse�b���utton�can���be�used�to�mo�٠v�e���and�select�v�٠ertices.�A��gselected�v�erte�x�is�represented���by�q&a�q'thick��ger�circle,�colored�red�if�your�screen�supports�color��s8.�F�٠or�e�xample,�q&in�order�to��Hmo��gv�e�q&�v�٠erte�x��4�q&�use�the�mouse�to���place��cthe��dpointer�inside�the�circle�around��4��and�press�the��Hleft��mouse�b���utton.�K��eep�the�mouse�b���utton�pressed�and�start���mo�٠ving�uthe�vmouse.�The�v�erte�x�vwill�no��w�follo�w�the�vpointer��s8.�Because�of�the�height�restrictions�gi��v�٠en�by�the�size�it�is���not���possible�to���mo�٠v�e����4��abo�٠v�e����6��or�belo��w��1�.�It�must�al��gw�ays���stay�within�its�le��v�٠el.�If�you�release�the�left�mouse�b���utton���v�٠erte�x����4��will�stay�at�its�current�position�and�the�rest�of���the�conjug��7ac�٠y�class�(in�this�e�xample��5�)�will�be�mo�v�ed�to�this���ne��w��position.���In�ԉorder�to��Hselect��v�٠erte�x�ԉ�LG��place�the�pointer�inside�the�Ԉdiamond�around��LG�,�press�the��Hleft��mouse�b���utton�and�release�it���immediately��Y�.�p�Do�p�not�mo�٠v�e�the�p�mouse�while�you�hold�do��wn�the�left�mouse�b���utton.�V����erte�٠x��LG��no��w�has�a�slightly�thick��ger���boundary�d�and�d�is�red�if�you�ha���v�٠e�a�color�screen.�There�are�tw��go�dierent�w��gays�to�select�more�than�one�v�٠erte�x,�d�see�4.2�or���5.5.���On�Qzthe�top�Q{of�the�windo��w��Y�,�abo�٠v�e�Qzthe�graphic�sheet,�you�can�see�a�list�of�menu�names:��Sheet�,��Poset�,�and��Subgroups�.���In�:�order�:�to�open�an�٠y�of�these��Hpull�do��gwn�menus��place�the�pointer�inside�the�b���utton�containing�the�menu�name�and���press�0qthe�left�mouse�0pb���utton.�K��eep�the�b�utton�pressed.�A�0Cpull�do��wn�menu�will�be�sho�wn�and�0pby�mo�٠ving�the�pointer���do��wn��you��can�choose�a�menu�entry��Y�.�By�choosing�an�entry�and�then�releasing�the�mouse�b���utton�the�entry�is�selected,���the��dcorresponding��efunction�is�e�٠x�ecuted��dand�the�pull�do��wn�menu�is�closed.�If�you�release�the�mouse�b���utton�while�the�����������14�$���LChapter��4.�Subgr���oup�Lattices�-�Examples���p������pointer��?is�outside�the�pull��>do��wn�menu�the�menu�is�closed�without�selecting�an�٠y�entry��Y�.�Note�that�this�beha���viour�is���dierent��from�that�of�some�other�graphical�user�interf��gaces�such�as�for�e�٠xample�W���indo��ws.��N8�No��w�Kselect��Change�?�Labels��from�the��Poset��menu.�If�this�entry�Lis�not�a���v�ailable�you�ha���v�٠e�f��gailed�to�select�v�erte�x��LG�.���After��gselecting��Change�?�Labels��f�a�small�dialog�box�is�opened�asking�for�a�label.�T��37ype�in��D8��and�press�the��Lr��Geturn��k��ge�٠y���or��Rclick�on��Q�OK�.�The�label�of�v�٠erte�x��R�LG��will�no��w�be�changed�to�\�LD�8�".�Note�that�in�the�X��9W���indo��w�System�you�ha���v�٠e�to���mo�٠v�e��the�pointer�on�the�te�٠xt�eld�if�you�w��gant�to�edit�the�label.���In���order�to���nd�out�which�v�٠erte�x�represents���the�centre�of��LD����?�޾V
zptmcm7t�8���,�rst�select�v�٠erte�x��LD�8����and�then�the�menu�entry��Centres����from�zvthe��Subgroups��menu.�In�case�zuof�a�color�screen,�v�٠erte�x�zv�LD�8��will�be�selected�and�colored�red,�and�v�٠erte�x�zv�2��will�be���colored��(green.�The�color�green�indicates��'that�v�٠erte�x��(�2��is�the�result�of�a�computation.�There�will�also�be�a�message�in���the���QGAP��windo��w�saying�that�v�٠erte�x���2��represents�the�centre�of�the�group�belonging�to�v�٠erte�x���LD�8�.����9��#I�
�Centres�?�(D8)�-->�(2)��N8��Most�֢of�the�menu�entries�in��Subgroups��should�be�self-e�٠xplanatory��Y�,�for�details�and�the�dierence�between��Closure����and���Closures��see�5.9.���If�'�you�ha���v�٠e�selected�some�'�v�ertices�(in�the�e�xample��LD�8��is�no��w�selected),�and�you�'�w��gant�to�in���v�estig��7ate�the�subgroups���corresponding��to�these��v�٠ertices�further�in��QGAP�,�the�function��SelectedGroups��will�return�a�list�of�these�subgroups���(note�"that�!you�can�also�achie��v�٠e�calling�this�function�by�selecting��SelectedGroups�?�to�GAP��in�"the��Subgroups��menu):����9��gap>�?�SelectedGroups(s);����9�[�?�d8�]��N8��On���the���other�hand,�the�functions�supplied�via�the��Subgroups��menu�are�by�f��gar�not�all�functions�applicable�to�groups.���In�J�order�to�sho��w�results�of�a�J�computation�in��QGAP�J��in�the�diagram,�you�can�use��SelectGroups�.�The�function��Select-���Groups���allo��ws�you�to�mark�an�٠y�set�of�subgroups�of��LD����8����in�the�diagram.���F�٠or��instance,�you�can�compute�the�lo��wer�central�series�of�this�(nilpotent)�group�in��QGAP�.����9��gap>�?�l�:=�LowerCentralSeries(d8);����9�[�?�d8,�Group([�f3�]),�Group([�<identity>�of�...�])�]����9�gap>�?�SelectGroups(s,l);��N8��This��Vlo��wer�central�series�corresponds�to��Wthe�v�٠ertices��LD�8�,��2��and��1��which�will�no�w�be�selected.�If,��Was�it�is�not�the�case���in���this�e�٠xample,�the�subgroups�are�not�yet�depicted�in�the���lattice,�a�w��garning�appears�in�the��QGAP���command�windo��w��Y�.���Y���gou�kUha���v�٠e�to�use��InsertVertex��to�kVinsert�a�ne��w�v�erte�x�into�the�lattice�(note�that�you�kVcan�also�achie��v�e�this�by�selecting����InsertVertices�?�from�GAP�] �in�]*the�])�Subgroups��menu,�see�section�5.6.1�for�the�complete�description�of�this�function���or��section�4.2�for�an�e�٠xample).���T��37o��ksummarize�the��labo�٠v�e:��kthe�function��SelectedGroups��can�be�used�to�transfer�information�from�the�diagram�to��QGAP�,���the��functions��SelectGroups��and��InsertVertex��can�be�used�to�transfer�information�from��QGAP��to�the�diagram.���In���order�to�nish�this�e�٠xample,�close�the�windo��w�by�selecting��close�?�graphic�sheet����from�the��Sheet��menu.�This���will��close�the�windo��w�containing�the�Hasse�diagram�of��LD����8���.���In��*this��)e�٠xample�you�ha���v�e�learned,�ho��w��)to�display�the�Hasse�diagram�of�the�subgroup�lattice�of�a�group�using��Graph-���icSubgroupLattice�,�scho��w�to�use�the�mouse�to�mo�٠v�e�scand�select�sdv�٠ertices,�ho�w�to�select�a�menu�entry�and�ho�w�to���transfer��information�between�the�Hasse�diagram�and��QGAP��using��SelectGroups��and��SelectedGroups�.���In��order�to�learn�more�about�the�menus��Sheet��and��Poset�,�which�were�only�mentioned�v�٠ery�brie
y��Y�,�see�5.7,�and�5.8.������"�����LSection��2.�A�P��37artial�Subgr���oup�Lattice�of�the�Symmetric�Gr�oup�on�6�P��37oints����15���p������P4.2��A��&P��.ar�B�tial�Subgr��uoup�Lattice�of�the�Symmetric�Gr�oup�on�6�P��z�oints��N8��This��section�in���v�٠estig��7ates�the�subgroup�lattice�of��LS����6���.����9��gap>�?�s6�:=�SymmetricGroup(6);����9�Sym(�?�[�1�..�6�]�)����9�gap>�?�SetName(s6,"S6");����9�gap>�?�cc�:=�ConjugacyClassesSubgroups(s6);;����9�gap>�?�Sum(List(cc,Size));����9�1455����As�Z;there�Z<are��1455��subgroups,�displaying�the�whole�lattice�of�subgroups�w��gould�not�be�helpful�because�there�are�simply���too�f�man�٠y��Y�.�f�Therefore�this�e�xample�f�b���uilds�only�a�partial�subgroup�lattice.�W��37e�assume�that�you�are�f��gamiliar�with�the���general��ideas,�mouse�actions�and�menus,�which�were�discussed�in�4.1.��N8�W��37e��ag��7ain�start�to�b���uild�a�partial�lattice,�by�using��GraphicSubgroupLattice��(see�5.1).�After�you�ha�v�٠e�entered����9��gap>�?�s�:=�GraphicSubgroupLattice(s6);����9�<graphic�?�subgroup�lattice�"GraphicSubgroupLattice�of�S6">����QXGAP�C��will�C�open�a�C�windo��w�containing�a�ne��w�graphic�sheet�with�tw��go�connected�v�٠ertices�labeled��1��and��LG�.�V����erte�٠x��1����represents�}�the�}�tri��vial�subgroup�and�v�٠erte�x�}��LG��the�group��LS����6���.�V����erte�٠x��LG��is�already�selected,�so�it�will�be�red�if�your�screen���supports��color��s8.��N8��QXGAP��n�can��xautomatically�write��ya�protocol�of�all�the�subsequent�actions�you�perform�via�mouse�clicks.�This�is�con���v�٠e-���nient�S2because�in�comparison�S3to�normal��QGAP�S&�sessions�you�do�not�ha���v�٠e�the�script�of�typed�commands.�Y���gou�can�acti��v�ate���this�Vfeature�by�Uselecting��Start�?�Logging��from�the��Subgroups��menu.��QXGAP�.�prompts�you�for�a�lename�via�a�le���selector��box.�See�5.2�for�details�about�this�feature.���In���order���to�nd�all�subgroups�of�size��60�,�we�cannot�not�use�the��Subgroups��menu�directly��Y�,�so�go�back�into�the��QGAP����windo��w��and�e�٠xtract�the�conjug��7ac�y�classes�of��cc��whose�representati��v�es�ha���v�e�size��60�.����9��gap>�?�c60�:=�Filtered(cc,x->Size(Representative(x))=60);;����9�gap>�?�s60�:=�List(c60,Representative);����9�[�?�Group([�(1,2)(3,4),�(1,3,5)�]),�Group([�(1,2)(3,4),�(1,2,3)(4,5,6)�])�]��N8��W��37e��no��w�use�the�function��InsertVertex��(see�5.6.1)�to�add�these�tw��go�subgroups�to�your�partial�lattice.����9��gap>�?�for�g�in�s60�do�InsertVertex(s,g);�od;����Note�Xthat�we�could�Wha���v�٠e�achie��v�ed�this�result�with�the�Wentry��InsertVertices�?�from�GAP�2�in�Xthe��Subgroups��menu,���see�^5.6.1.�^The�Hasse�diagram�no��w�contains�four�v�٠ertices.�The�ne��w�v�٠ertices�are��Hnot��selected�automatically��Y�.�Y���gou�can�do���this���as���mentioned�abo�٠v�e�by���clicking�with�the��Hleft��mouse�b���utton�on�them.�Selecting��Conjugate�?�Subgroups��from�the����Subgroups�X`�menu�adds�X_the�complete�conjug��7ac�٠y�classes.�Please�do�this�rst�for�v�٠erte�x��2�X`�and�then�for�v�٠erte�x��3�X`�such�that���the��numbering�of�v�٠ertices�in�the�follo��wing�description�is�correct!��N8�In��order��to�nd�out�what�type�of�subgroups�we�are�looking�at,�use�another�kind�of�menu�not�discussed�so�f��gar���,�namely���the�|\Information"�menu.�Place�the�{pointer�inside�v�٠erte�x�|�3�,�press�the��Hright��mouse�b���utton�and�release�it�immediately��Y�.���This�lkwill�llpop�up�a�ne��w�windo�w��Y�,�lkcontaining�some�te�٠xt�describing�v�erte�x��3�ll�(as�mentioned�abo�v�e,�depending�llon�the���windo��w��ysystem��xand�windo�w��xmanager���,�placing�this�windo��w�on�the�screen�might�require�some�interaction�with�the���mouse).�����������16�$���LChapter��4.�Subgr���oup�Lattices�-�Examples���p������9��Size�)��60����9�Index�$��12����9�IsAbelian���unknown����9�IsCentral���unknown����9�IsCyclic���unknown����9�IsNilpotent�?�false����9�IsNormal���false����9�IsPerfect���true����9�IsSimple���unknown����9�IsSolvable�
�false����9�Isomorphism�?�unknown��N8��Note�pthat��QGAP�o��does�not�o�yet�automatically�dra�٠w�the�conclusion�that�a�nonsolv��able�subgroup�is�also�not�abelian,�c�٠yclic���or�?Kcentral.�Place�the�pointer�?Lon�top�of�the�entry�\Isomorphism"�and�press�the��Hleft��mouse�b���utton.�After�a�while�this���entry��is�changed�to����9��Isomorphism�?�[�60,�5�]����telling���you�that���the�subgroup�represented�by�v�٠erte�x����3��is�isomorphic�to�the�alternating�group�on���v�٠e�symbols.�The���notation���[�?�60,�5�]��comes�out�of�the�small�groups�library�and�is�the�only�information�about�the�isomorphism�type���we��9can��8get�from��QGAP�4�up�to�no��w��Y�.�Select��Lclose��to�close�the�\Information"�menu.�Repeat�this�with�v�٠erte�x��9�2�,�you�will���see�U�that�the�U�subgroup�of�v�٠erte�x�U��2��is�also�isomorphic�to��LA����5���,�ho��we�v�٠er�U�these�tw��go��LA����5��U��inside��LS����6���are�not�conjug��7ate�U�in��LS����6���.�The���\Information"��menu�is�described�in�detail�in�5.10.��N8�No��w�y/we�w��gant�to�compute�the�normalizers�of�the�elements�y0of�the�conjug��7ac�٠y�class�containing�the�subgroup�of�v�erte�x��3�.���Y���gou��could��either�select�v�٠erte�x���3��and�then��LNormalizer��gs��and�repeat�this�process�for�the�v�٠ertices��9��to��13�,�or�you�can�rst���select�|�the�|�v�٠ertices��3�,��9��to��13��and�then�select��LNormalizer��gs�.�But�ho��w�to�select�more�than�one�v�٠erte�x?�|�If�you�rst�select��3����and�׬then��9�,�׫v�٠erte�x�׬�3��will�get�deselected�as�soon�as��9��gets�selected.�Ho��we�v�٠er���,�׬if�you�select�v�erte�x��3�,�׫place�the�pointer���inside�[�v�٠erte�x�[��9�,�hold�do��wn�the��LSHIFT� ��k��ge�٠y�on�your�k��ge�٠yboard�and�then�select�v�٠erte�x��9�[��using�the�left�mouse�b���utton,���v�٠erte�x���9���will�be�selected�in�addition�to�v�٠erte�x���3�.�Another�method�to�select�more�than�one�v�٠erte�x��is�to�use�the�rubber���band�psto�ptcatch�v�٠ertices�inside�a�rectangle.�Place�the�pointer�left�and�a�bit�higher�than�v�٠erte�x��3�ps�Houtside��an�٠y�other�v�٠erte�x.���Press�q4the�q3�Hleft��mouse�b���utton�and�hold�it�do��wn.�No�w��Y�,�q3using�the�mouse,�mo�٠v�e�q4the�pointer�right�and�slightly�belo��w�v�٠erte�x����13�.��PY���gou�see��Qa�rectangle,�one�corner�at�your�start�position�and�the�other�follo��wing�the�pointer��s8.�If�v�٠ertices��3��and��9��to��13����are���all�inside�this�rectangle,���release�the�mouse�b���utton.�No��w�these�v�٠ertices�are�selected.�Select��Normalizers��from�the����Subgroups���menu�to�compute�and�display�the�normalizers.���No��w�g]select�v�٠erte�x�g\�3�g]�and��4��and�compute�the�intersection.�The�intersection�is�of�size��10�.�Select�this�intersection�and�use����SelectedGroups���to�get�a��QGAP��record�describing�the�subgroup.����9��gap>�?�l�:=�SelectedGroups(s);����9�[�?�Group([�(2,3)(4,6),�(1,2)(3,4)�])�]����9�gap>�?�u�:=�l[1];����9�Group([�?�(2,3)(4,6),�(1,2)(3,4)�])��N8��In�@Rorder�@Qto�nd�out�which�subgroups�of�the�complete�lattice�lie�abo�٠v�e�@Rthe�subgroup��u��you�can�use��Intermediate���Subgroups�.���Y���gou���select�the�whole�group�in�addition�to��u��and�choose��Intermediate�?�Subgroups��in�the��Subgroups����menu.��Y���gou�get�6�groups,�some�of�them�are�already�in�the�lattice,�the�others�are�added.���There��is�another�feature�we�ha���v�٠e�not�seen�yet.�Close�the�current�graphic�sheet�and�start�ag��7ain�with�a�fresh�one.����9��gap>�?�Close(s);����9�gap>�?�s�:=�GraphicSubgroupLattice(s6);����9�<graphic�?�subgroup�lattice�"GraphicSubgroupLattice�of�S6">��N8��In�9aorder�9bto�compute�a�Sylo��w��2��subgroup�select��Sylow�?�Subgroup��from�the��Subgroups��menu.�A�9Osmall�dialog�box�will���pop��up�asking��for�a�prime,�type�in��2��and�press��Lr��Geturn��or�click�on��OK�.�No��w�select�this�ne�w�v�٠erte�x���2���representing�the������䍟���LSection��3.�A�P��37artial�Subgr���oup�Lattice�of�the�Cavicc�٠hioli�Gr�oup����17���p�����Sylo��w���2���subgroup�and�compute�its�normal�subgroups.�This�is�rather�slo��w�because�the�function�checks�for�each�ne��w���v�٠erte�x��if�the�corresponding�subgroup�is�conjug��7ate�to�an�old�one�of�the�same�size.���=�This���is�no��w�the�end�of���our�partial�in���v�٠estig��7ation�of�the�(partial)�subgroup�lattice�of��LS����6���,�close�the�graphic�sheet(s)�using����close�?�graphic�sheet�L��of�L�the��Sheet��menu.�If�you�started�the�logging�f��gacility�of��QXGAP�L��as�described�abo�٠v�e�you�L�no��w���ha���v�٠e��a�le�(probably�called��xgap.log��if�you�did�not�change�the�def��gault)�describing�the�actions�we�performed.��kD��P4.3��A��&P��.ar�B�tial�Subgr��uoup�Lattice�of�the�Ca��vicc�޹hioli�Gr�oup��@��This��section�in���v�٠estig��7ates�the�follo��wing�nitely�presented�group��LC����2���,�which�w��gas�rst�in�v�٠estig��7ated�by�Alberto�Ca���vicchioli���in��[Ca���v86]:��������Dh�La�A;����Lb���;�q��Laba������Eƛ�
zptmcm7y�E�2��	p]�Lba��=��Lb�A;��(�Lb������E�1��	p]�La������3���Lb������E�1���La������E�3���)������2����=���La������E�1���Di��kC��In�u�this�u�e�٠xample�we�will�sho��w�a�w��gay�to�pro�٠v�e�a�u�nitely�presented�group�to�be�innite,�and�to�nd�some�big�nonabelian���f��gactor��groups�of�it.���The��follo��wing��QGAP��commands�dene��LC����2���.��c��9��gap>�?�f�:=�FreeGroup(�"a",�"b"�);�
�a�:=�f.1;;�b�:=�f.2;;����9�<free�?�group�on�the�generators�[�a,�b�]>����9�gap>�?�c2�:=�f�/�[�a*b*a^-2*b*a/b,�(b^-1*a^3*b^-1*a^-3)^2*a�];����9�<fp�?�group�on�the�generators�[�a,�b�]>����9�gap>�?�SetName(c2,"c2");��A��W��37e��ag��7ain��assume�that�you�are�f��gamiliar�with�the�general�ideas,�mouse�actions�and�menus,�which�were�discussed�in�4.1���and��4.2.���In�1order�to�1b���uild�a�partial�lattice�of�a�nitely�presented�group,�you�ag��7ain�use�the�function��GraphicSubgroupLattice�.���But�U3if�U4the�rst�ar���gument�to��GraphicSubgroupLattice��is�a�nitely�presented�group�the�a���v��ailable�menus�are�dierent���from��the�e�٠xample�in�the�pre��vious�section.�After�you�ha���v�e�entered��c��9��gap>�?�s�:=�GraphicSubgroupLattice(c2);����9�<graphic�?�subgroup�lattice�"GraphicSubgroupLattice�of�c2">��@��QXGAP�=��will�=�open�=�a�windo��w�containing�a�ne�w�graphic�sheet.�Compared�to�the�=�interacti�v�٠e�lattice�of�a�permutation�group���as��described�in�the�pre��vious�section,�there�are�the�follo�wing�dierences:���{�C�There�is�only�one�v�٠erte�x�C�instead�of�tw��go.�This�v�٠erte�x�C�labeled�C��LG��is�the�whole�group��LC����2���.�There�is�no�v�٠erte�x�C�for�the���tri��vial��subgroup�(yet).���{�@�If�you�pull�@�do��wn�the��Subgroups��menu,�you�will�see�that�this�menu�is�no��w�v�٠ery�dierent.�It�gi��v�٠es�you�access�to���v��arious�^algorithms�for�nitely�presented�]groups�b���ut�most�of�the�entries�from�the�last�tw��go�e�٠xamples�are�missing�because���most��of�the��QGAP��functions�behind�these�entries�are�not�applicable�to�(innite)�nitely�presented�groups.���>�This��$e�٠xample�will�sho��w��%you�ho�w�to�pro�٠v�e��$that��LC����2���$�is��%innite.�First�look�at�the�abelian�in���v�ariants�in��%order�to�see�what���the�,�commutator�f��gactor�group�is.�In�order�to�compute�the�,�abelian�in���v��ariants�pop�up�the�\Information"�menu.�This�is���done�űin�Ųe�٠xactly�the�same�manner�as�in�the�pre��vious�section.�Place�the�pointer�inside�v�٠erte�x�ű�LG�,�press�the��Hright��mouse���b���utton��and�release�it�immediately��Y�.�This�\Information"�menu�is�described�in�detail�in�5.13.��c��9��Index�I�1����9�IsNormal�9��true����9�IsFpGroup�4�unknown����9�Abelian�?�Invariants�unknown����9�Coset�?�Table�)��unknown����9�IsomorphismFpGroup�?�unknown����9�Factor�?�Group�$��unknown��@��This���tells�you���what��QXGAP����already�kno��ws�about�the�group�associated�with�v�٠erte�x��LG�.���In�order�to�compute�the�abelian���in���v��ariants��click�onto�this�line.�After�a�while�this�entry�will�change�to�����Ċ�����18�$���LChapter��4.�Subgr���oup�Lattices�-�Examples���p������9��Abelian�?�Invariants�perfect��N8��telling�Ǔyou�that��LC����2��ǔ�is�perfect.�So�none�of�the��Subgroups�ǔ�menu�entries��Abelian�?�Prime�Quotient�,�Ǔ�All�Over-���groups�,�FZ�Conjugacy�?�Class�,��Cores�,��Derived�Subgroups�,�FY�Intersection�,��Intersections�,��Normalizers��or����Prime�?�Quotient���will�compute�an�٠y�ne��w�subgroups.��N8�In��horder�to�a���v�oid��haccidents�the�menu�entries��Abelian�?�Prime�Quotient�,��h�All�Overgroups�,��Epimorphisms�(GQuo-�8�	*����tients)�,����Conjugacy�?�Class�,����Low�Index�Subgroups�,�and����Prime�Quotient��from�the����Subgroups��menu�are�only���selectable�@�if�e�٠xactly�@�one�v�erte�x�is�selected�@�because�the�functions�behind�these�entries�are�in�general�quite�time�and���space��consuming.���Close�~Athe�\Information"�windo��w�and�~@select��Low�?�Index�Subgroups�~A�from�the��Subgroups��menu.�A�small�dialog�box���will�XPpop�up�XQasking�for�a�limit�on�the�inde�٠x.�T��37ype�in��12��and�press��Lr��Geturn��or�click�on��OK�.�In�general�it�is�hard�to�say�what���kind�{�of�{�inde�٠x�limit�will�still�w��gork,�for�some�groups�e��v�٠en��5��might�be�too�much�while�for�others��20��w��gorks�ne,�see�also���47.10.1.����QGAP�9��computes�9��10��subgroups�9�of�inde�٠x��11��and��8��subgroups�of�inde�x��12�.�If�you�no��w�9�start�to�check�the�abelian�in���v�ariants���of�Dthe�inde�٠x��12��subgroups�you�Dwill�nd�out�that�all�subgroups�represented�by�v�ertices��3�D�to��10��ha���v�e�a�nite�commutator���f��gactor�ggroup�e�٠xcept�the�subgroup�belonging�to�v�erte�x��4��which�has�an�innite�abelian�quotient.�Therefore�the�group��LC����2�����itself��is�innite.���No��w��
we��	w��gant�to�in���v�٠estig��7ate��LC����2���	�a�little�further�using��QGAP�.�Select�v�٠ertices��3�,��4�,�and��5��and�switch�to�the��QGAP���windo��w��Y�.���Use���SelectedGroups��to�get�the�subgroups�associated�with�these�v�٠ertices.����9��gap>�?�u�:=�SelectedGroups(�s�);����9�[�?�Group([�a,�b*a^2*b^-2,�b*a*b^2*a^-1*b^-1*a^-1*b^-1,�b^4*a^-2*b^-2,����-��b^2*a^3*b^-1*a^-1*b^-2�?�]),������Group([�?�a,�b^2*a*b^-1*a^-1*b^-1,�b^3*a^-1*b^-1,�b*a*b*a^3*b^-1�]),������Group([�?�a,�b^2*a*b^-1*a^-1*b^-1,�b*a^3*b^-2,�b^4*a^-1*b^-3,����-��b*a*b^3*a^-1*b^-1�?�])�]��N8�FactorCosetAction��H�computes��Gfor�each�of�these�subgroups��Lu����TKj�
ptmri7t�Ti��/p�the�operation�of��LC����2���G�on�its�cosets.�It�returns�the�result���as��da�homomorphism��cof��LC����2���d�onto�a�permutation�group.�The�operation�on��Lu����Ti�����is�therefore�a�permutation�representation�of���the��f��gactor�group�����\��LC����2���A=�LCor��Ge�(�Lu����Ti��r(�)�D����Using���DisplayCompositionSeries��we�can�identify�these�f��gactor�groups.����9��gap>�?�p�:=�List(�u,�x�->�FactorCosetAction(�c2,�x�)�);;����9�gap>�?�l�:=�List(�p,�Image�);;����9�gap>�?�for�x�
�in�l�do�DisplayCompositionSeries(x);�Print("\n");�od;����9�G�?�(2�gens,�size�95040)������M(12)����9�1�?�(0�gens,�size�1)����9�G�?�(2�gens,�size�660)������A(1,11)�?�=�L(2,11)�~�B(1,11)�=�O(3,11)�~�C(1,11)�=�S(2,11)�~�2A(1,11)�=�U(2,11)����9�1�?�(0�gens,�size�1)����9�G�?�(2�gens,�size�239500800)������A(12)����9�1�?�(0�gens,�size�1)��N8��(This��display�can�look�a�little�dierent�according�to�the��QGAP��v�٠ersion�you�use.)������荟���LSection��4.�A�P��37artial�Subgr���oup�Lattice�of�the�T��s8r��Gefoil�Knot�Gr�oup��ź�19���p�����So��.�LC����2���/�contains�the�Mathieu�group��/�LM����12����,�the�alternating�group�on��12��symbols�and��LPSL���(2�A;����11)��as�f��gactor�groups.�There-���fore���it�w��gould�ha���v�٠e���been�possible�to�nd�v�erte�x��4��using����Epimorphisms�?�(GQuotients)��instead�of��Low�Index�Sub-���groups�.�F(Close�F'the�graphic�sheet�by�selecting�the�menu�entry��close�?�graphic�sheet��from�F(the��Sheet��menu�and�start���with��a�fresh�one.����9��gap>�?�s�:=�GraphicSubgroupLattice(c2);����9�<graphic�?�subgroup�lattice�"GraphicSubgroupLattice�of�c2">��N8��Select�5{�Epimorphisms�?�(GQuotients)�5z�from�the��Subgroups��menu.�This�pops�up�a�menu�similar�to�the�\Information"���menu��(see�5.12).����9��Sym(n)����9�Alt(n)����9�PSL(d,q)����9�Library����9�User�?�Defined��N8��Select����LPSL(d,q)�,���which�pops�up�a�dialog�box�asking�for�a�dimension.�Enter��2��and�click�on��LOK����.�Then�a�second�dialog���box��pops�up��asking�for�a�eld�size.�Enter��11��and�click�on��LOK����.�After�a�short�time�of�computation�the�display�in�the����Epimorphisms�?�(GQuotients)���menu�changes�and�sho��ws����9��PSL(2,11)��1�?�found��N8��telling�l�you,�l�that��QGAP�l��has�found��1��epimorphism�(up�to�inner�automorphisms�of��LPSL���(2�A;����11)�)�from��LC����2��l��onto��LPSL��(2�A;����11)�.���Click��'on��&�Ldisplay�point�stabilizer�7�to�create�a�ne��w�v�٠erte�x��'representing�a�subgroup��Lu��such�that�the�f��gactor�group�of����LC����2���A=�LCor��Ge�(�Lu�)����is�isomorphic�to��LPSL���(2�A;����11)�.�Y���gou�could�ha���v�٠e�click��ged�on��Ldisplay��to�create�a�ne��w�v�erte�x�representing�the���k��gernel��of�the�epimorphism.��N8�This�qdis�qeno��w�the�end�of�our�partial�in���v�٠estig��7ation�of�the�(partial)�subgroup�lattice�of��LC����2���,�you�ha���v�٠e�seen�that��LC����2��qd�is�innite���and�c�contains�c��LM����12����,��LAlt�.�(12)�,�and��LPSL���(2�A;����11)��as�f��gactor�groups.�Close�the�graphic�sheet�by�selecting��close�?�graphic���sheet���from�the��Sheet��menu.��N8��P4.4��A��&P��.ar�B�tial�Subgr��uoup�Lattice�of�the�T����ref�oil�Knot�Gr�oup����This��section�in���v�٠estig��7ates�the�follo��wing�nitely�presented�group,�the�trefoil�knot�group��LK����3���.�����<��Dh�La�A;����Lb���;�q��Laba��=��Lbab�Di����This��e�٠xamples�sho��ws�some�limitations�of�the�methods�a���v�ailable,�in�particular�if�innite�f��gactors�occur��s8.����9��gap>�?�f�:=�FreeGroup(�"a",�"b"�);����9�<free�?�group�on�the�generators�[�a,�b�]>����9�gap>�?�k3�:=�f�/�[�f.1*f.2*f.1�/�(f.2*f.1*f.2)�];����9�<fp�?�group�on�the�generators�[�a,�b�]>����9�gap>�?�s�:=�GraphicSubgroupLattice(k3);����9�<graphic�?�subgroup�lattice�"GraphicSubgroupLattice">����If��dyou��ecompute�the�Abelian�in���v��ariants�of��LK����3���d�you�will�see�that�the�commutator�f��gactor�group�is�isomorphic�to�the���innite�Y\c�٠yclic�group.�If�you�try�to�compute�the�Y]deri��v�ed�subgroups�it�w��gorks!�Just�click�on��Derived�?�Subgroups��in���the��Y�Subgroups��menu.�A��Vv�٠erte�x��Yappears�in�a��Zle��v�٠el�mark��ged�with��[�?�infinity,�1�]�.��YHo�we�v�٠er���,�there�are�not�too�man�y���things��you�can�do�with�such�innite�inde�٠x�subgroups�up�to�no��w��Y�,�as�we�will�illustrate�belo�w:��N8�First��produce�some�more�subgroups�by��Low�?�Index�Subgroups���(for�e�٠xample�with�inde�x�limit�5).�If�you�no��w�try�to���compare�Tfone�of�the�ne��w�subgroups�with�the�deri�v�٠ed�subgroup,�Tethis�is�possible.�If�you�ho�we�v�٠er�try�to�calculate�the���intersection��of�one�of�the�nite-inde�٠x�subgroups�with�the�deri��v�ed�subgroups,��QGAP��will�run�into�an�error:������m�����20�$���LChapter��4.�Subgr���oup�Lattices�-�Examples���p������9��Error�?�the�coset�enumeration�has�defined�more�than�256000�cosets:����9�type�?�'return;'�if�you�want�to�continue�with�a�new�limit�of�512000�cosets,����9�type�?�'quit;'�if�you�want�to�quit�the�coset�enumeration,����9�type�?�'maxlimit�:=�0;�return;'�in�order�to�continue�without�a�limit,����9�...���(a�?�few�lines�follow)������This�dcan�chappen�if�the�coset�enumeration�algorithm�tries�to�enumerate�the�cosets�of�a�subgroup�with�innite�inde�٠x.���This��situation�can�also�occur�with�other�operations.�����Y���gou���can�lea���v�٠e���this�break�loop�by�entering�the�command��quit;��or�by�clicking��Leave�?�Break�Loop����in�the��Run��menu���of��the�main��QXGAP��windo��w��Y�.�����Earlier�֒you�֑ha���v�٠e�computed�the�subgroups�of�inde�٠x�at�most��5�.�There�is�one�normal�subgroup�of�inde�٠x��2��belonging�to���v�٠erte�x����6��and�one�of�inde�٠x����4��belonging�to�v�erte�x��8�.�There�is��Hno��line�between�those���tw��go�v�ertices.�Select�both�and�click���on�8d�Compare�?�Subgroups�8e�in�the��Subgroups��menu.�A�85line�appears�and�the�line�between�v�٠ertices��8��and��LG��v��anishes.���The��reason�for��this�is,�that�the��LowIndexSubgroupsFpGroup��call�did�not�deli��v�٠er�the�complete�inclusion�info.�This���can���al��gw�ays���happen�for�nitely�presented�groups�in��QXGAP�.�In�this�case�you�ha���v�٠e�to�compare�the�subgroups�manually���by���Compare�?�Subgroups�.�Note�that�this�can�mean�lar���ge�computations,�especially�if�the�indices�are�huge.���No��w�,�select�,�v�٠erte�x��10��and�,�choose��Cores��from�the��Subgroups��menu.�Y���gou�will�get�a�ne��w�v�٠erte�x�,��12��for�an�inde�٠x��24����subgroup.�fLSelect�the�fKv�٠ertices��12��and��LG��and�choose��Intermediate�?�Subgroups��from�the��Subgroups��menu.�Y���gou�will���get�rJlots�of�ne��w�v�٠ertices.�Note�that�some�of�them�are�rIduplicates�of�those�which�were�already�in�the�lattice.�This�is���because��@comparison�of�subgroups�can�be�quite�e�٠xpensi��v�e��@and�is�therefore��Hnot��performed�automatically�in�the�case�of���nitely��presented�groups.���Select���all�v�٠ertices���with�a�rubber�band�(click�into�the�top�left�corner�of�the�sheet,�hold�do��wn�the�mouse�and�mo�٠v�e���the�̌pointer�to�̋the�lo��wer�right�corner���,�then�release�the�mouse�b���utton),�and�choose��Compare�?�Subgroups��from�the����Subgroups��Y�menu.�A��?fe��w�v�٠ertices�will�disappear��Xand�you�get�some�messages�in�the��QGAP��@�windo��w�about�mer���ging�of���v�٠ertices.���The�m�display�m�is�also�not�fully�correct�with�respect�to�conjug��7ac�٠y�classes.��IntermediateSubgroups��does�not�return�the���complete�@�information�@�about�conjug��7ac�٠y�of�subgroups.�Because�also�conjug��7ac�٠y�tests�can�be�v�٠ery�e�xpensi��v�e,�@�the�y�are���also��c�Hnot��performed�automatically�for�nitely�presented��bgroups.�Select��Test�?�Conjugacy��from�the��Subgroups��menu���to��Mtrigger��Lthis�test�manually�(note�that�all�v�٠ertices�are�still�selected!).�The�v�٠ertices�belonging�to�conjug��7ate�subgroups���are�?�arranged�together�and�?�if�you�mo�٠v�e�?�those�containing�the�normal�subgroup�of�inde�٠x��24��abo�v�e�?�this�one�you�recognize���the��subgroup�lattice�of�the�symmetric�group�on��4��points�abo�٠v�e��that�normal�subgroup.���This���is�no��w�the�end�of�our�partial�in���v�٠estig��7ation�of���the�(partial)�subgroup�lattice�of��LK����3���,�close�the�graphic�sheet�by���selecting���close�?�graphic�sheet��from�the��Sheet��menu.��{U��P4.5��A��&P��.ar�B�tial�Subgr��uoup�Lattice�of�a�Finitel��y�Presented�Gr�oup������This��section�describes�the�in���v�٠estig��7ation�of�the�follo��wing�nitely�presented�group:��h!����^�LG���:=��Dh�La�A;����Lb��;�q��La������6����=�1�Di��h ��W��37e��Dwill��Esho��w�especially�ho�w��Eto�deal�with�subgroups�which�ha���v�٠e�a�v�ery��Elar���ge�inde�x�lik��ge��Ethose�occuring�in�the�prime���quotient��algorithm.���Dene��the�group�and�open�the�subgroup�lattice�windo��w:���ύ�9��gap>�?�f�:=�FreeGroup(2);����9�<free�?�group�on�the�generators�[�f1,�f2�]>����9�gap>�?�g�:=�f/[f.1^6];����9�<fp�?�group�on�the�generators�[�f1,�f2�]>����9�gap>�?�s�:=�GraphicSubgroupLattice(g);����9�<graphic�?�subgroup�lattice�"GraphicSubgroupLattice">������First���compute���prime�quotients�by��Prime�?�Quotient��in�the��Subgroups��menu.�Y���gou�are�ask��ged�for�a�prime�and�a�class.���Enter��+�2��*�and��7��respecti��v�٠ely��Y�.�Y���gou�get�lots�of�output�in�the��QGAP��command�windo��w�and�se��v�٠en�ne�w��*v�٠ertices.�Some�of�the������w�����LSection��6.�A�P��37artial�Subgr���oup�Lattice�of�a�Space�Gr�oup��_$�21���p�����corresponding���subgroups���ha���v�٠e�huge�indices.�Note�that�these�groups�are�only�represented�as�k��gernels�of�epimorphisms���within� F�QGAP�.� ESo�e�٠xplicit�calculation�of�a�coset�table�or�a�presentation�could�tak��ge�v�٠ery�long�or�be�absolutely�impossible!��N8�No��w��compute��epimorphisms�onto�the�symmetric�group�on��3��points�by��Epimorphisms�?�(GQuotients)��in�the��Sub-���groups���menu,�b���ut�use�a�polyc�٠yclic�presentation�as�follo��ws�(the�reason�for�this�will�be�e�xplained�belo��w):����9��gap>�?�IdGroup(SymmetricGroup(3));����9�[�?�6,�1�]����9�gap>�?�s3�:=�SmallGroup(6,1);����9�<pc�?�group�with�2�generators>����9�gap>�?�IMAGE_GROUP�:=�s3;;��N8��This�4�rst�determines�4�the�identication�number�of�the�symmetric�group�on��3��points�within�the�small�groups�library��Y�,���and���then���fetches�this�group�as�a�polyc�٠yclic�group.�F�٠or�groups�of�size�less�than��1000��this�is�often�a�good�w��gay�to�get�a���polyc�٠yclic���presentation.�Note�that��SymmetricGroup(3)��leads�to�a�permutation�group.�The�last�statement�stores�the���group��in�a�v��ariable�which�can�be�used�by��QXGAP�.���Select���v�٠erte�x��LG�,���then�click�on��Epimorphisms�?�(GQuotient)��in�the��Subgroups��menu�and�select��User�?�defined��in���the�w�windo��w�w�that�pops�up.�This�will�al��gw�ays�w�use�the�group�stored�in�the�global�v��ariable��IMAGE���E�ff&f��ǫGROUP�.��QGAP�w��nds�three���epimorphisms.��Display�the�three�k��gernels�by�selecting��Ldisplay��in�the�epimorphisms�windo��w��Y�.���Note��nthat��mthe�ne��w�v�٠erte�x��9��n�will�be�dra�٠wn�on�the�line�between�v�٠ertices��2��and��3��because�there�is�not�yet�a�v�٠erte�x�in��nthe���le��v�٠el�d�corresponding�to�d�inde�x�6.�Y���gou�can�d�mo�v�e�it�aside�by�d�dragging�it�with�the�mouse�to�some�better�position�within�its���le��v�٠el.���No��w�� select�v�٠ertices��8��and��11��and�calculate�the��!intersection�of�the�tw��go�subgroups�of�indices��137438953472��and��6����respecti��v�٠ely��Y�.��C�QGAP����can�calculate�this�intersection��Bby�calculating�the�subdirect�product�of�the�image�groups�of�the���epimorphisms��(the��inde�٠x�of�the�subgroup�belonging�to�v�٠erte�x���12��in��LG��is��412316860416��which�is�three�times�of�the���inde�٠x�H#of�the�H$subgroup�belonging�to�v�erte�x��11�).�H$Note�that�this�subdirect�product�can�only�be�calculated�because�the�tw��go���image��groups�are�polyc�٠yclic�groups.�This�is�the�reason�wh��7y�we�needed��LS����3����as�polyc�yclic�group�earlier��s8.���This��is�no��w�the��end�of�our�partial�in���v�٠estig��7ation�of�the�(partial)�subgroup�lattice�of��LG�,�close�the�graphic�sheet�by���selecting���close�?�graphic�sheet��from�the��Sheet��menu.��N8��P4.6��A��&P��.ar�B�tial�Subgr��uoup�Lattice�of�a�Space�Gr�oup��N8��This��'section��&describes�an�in���v�٠estig��7ation�of�an�(innite)�space�group�pro�٠vided�by�the�catalogue�CR��Y�YSTCA����T��"of�crystal-���lographic�L�groups�and�L�using�the�package�CR��Y�YST��B�.�Here�you�will�see�that�subgroups�of�nite�inde�٠x�and�of�nite�size�can���occur��8at�the�same�time�in�a�graphic�subgroup�lattice�of�an�innite�group.�Note�that�you�ha���v�٠e�to�install�these�packages���to��try�this�e�٠xample.���Load��the�packages,�dene�the�group�and�open�the�subgroup�lattice�windo��w:����9��gap>�?�LoadPackage("crystcat");;����9�gap>�?�LoadPackage("cryst");;����9�gap>�?�g�:=�SpaceGroupBBNWZ(4,6,3,1,2);����9�SpaceGroupOnRightBBNWZ(�?�4,�6,�3,�1,�2�)����9�gap>�?�s�:=�GraphicSubgroupLattice(g);����9�<graphic�?�subgroup�lattice�"GraphicSubgroupLattice�of�SpaceGroupOnRightBBNWZ(�4,�\����9�6,�?�3,�1,�2�)">��N8��This�i�fetches�i�the�space�group�of�dimension��4�,�associated�crystal�system�number��6�,��5���

msbm10�Q�-class�3,��Z�-class��1�,�and�space���group��type��2��(see�the�CR��Y�YSTCA����T�documentation�for�an�e�٠xplanation�of�this).���No��w��we�calculate�some�maximal�subgroups�with�nite�inde�٠x�and�choose�three�of�them:�����э����22�$���LChapter��4.�Subgr���oup�Lattices�-�Examples���p������9��gap>�?�m�:=�MaximalSubgroupClassReps(g,rec(latticeequal�:=�true));;����9�gap>�?�mm�:=�m{[1..3]};����9�[�?�<matrix�group�with�7�generators>,�<matrix�group�with�7�generators>,������<matrix�?�group�with�7�generators>�]��Y��Ag��7ain���refer�to�the���CR��Y�YST��ppackage�documentation�for�an�e�٠xplanation�of�these�commands.�Insert�this�list�of�three���subgroups��into�the�lattice�by�selecting��InsertSubgroups�?�from�GAP���from�the��Subgroups��menu.��ϕ�Ne�٠xt��calculate�subgroups�of�innite�inde�x�b���ut�with�nite�size:���Z��9��gap>�?�w�:=�WyckoffPositions(g);;����9�gap>�?�ww�:=�w{[1..3]};����9�[�?�<�Wyckoff�position,�point�group�11,�translation�:=�[�0,�1/2,�0,�0�],����#9�basis�?�:=�[�
�]�>����#9�,�?�<�Wyckoff�position,�point�group�11,�translation�:=�[�0,�1/2,�0,�1/2�],����#9�basis�?�:=�[�
�]�>����#9�,�?�<�Wyckoff�position,�point�group�11,�translation�:=�[�0,�1/2,�1/2,�0�],����#9�basis�?�:=�[�
�]�>����(y�]����9�gap>�?�www�:=�List(ww,WyckoffStabilizer);����9�[�?�<matrix�group�with�3�generators>,�<matrix�group�with�3�generators>,������<matrix�?�group�with�3�generators>�]����Insert��}these�subgroups�into��~the�lattice�by�selecting��InsertSubgroups�?�from�GAP��l�from�the��}�Subgroups��menu.�The�٠y���will��be�inserted�in�the�le��v�٠el�for�groups�of�size�8.��ϕ�No��w�9you�can�9compute�the�intersection�of�a�subgroup�with�nite�inde�٠x�and�a�subgroup�with�nite�size,�select�for�e�٠xam-���ple�cXv�٠erte�x��2��and�v�erte�x�cY�5��and�choose��Intersection��from�the��Subgroups��menu.�Y���gou�get�a�ne��w�v�٠erte�x�representing�a���subgroup��of�size��4�.��ϖ�If�Ǚyou�ǚno��w�calculate�the�centralizers�of�the�fteen�latticeequal�maximal�subgroups�from�abo�٠v�e,�Ǚyou�get�among�them���four��non-tri��vial�c�٠yclic�subgroups:���Y��9��gap>�?�c�:=�List(m,x->Centralizer(g,x));����9�[�?�<matrix�group�with�1�generators>,�Group([�
�]),�Group([�]),�Group([�]),������<matrix�?�group�with�1�generators>,�Group([�
�]),�Group([�]),������<matrix�?�group�with�1�generators>,�Group([�
�]),������<matrix�?�group�with�1�generators>,�Group([�
�]),�Group([�]),�Group([�]),������Group([�
�]),�?�Group([�])�]����Insert��athese��`into�the�graphic�sheet�by�selecting��Insert�?�Vertices�from�GAP��L�from�the��a�Subgroups��menu.�Y���gou�will���get�)+four�),dierent�ne��w�v�٠ertices�representing�groups�with�innite�inde�٠x��Hand��innite�size.�Each�such�v�٠erte�x�)+is�placed�into���a���le��v�٠el�on���its�o�wn,�which�is�mark��ged���by��[�?�H1,��Ln�]����where��Ln��is�replaced�with�subsequent�natural�numbers�(see�section���5.3�^efor�^fdetails�about�le��v�٠els).�\H1"�means�Hirsch�length�1,�that�is,�each�subnormal�series�of�the�group�contains�one�and���only��Mone��Linnite�c�٠ycle.�In�f��gact,�since�these�are�subgroups�of�space�groups,�it�indicates�that�the�translation�subgroup�is���of��dimension�1.��ϖ�(Note���that���by�calculating�the�point�groups�of�these�centralizers�you�can�in�f��gact�see,�that�the�innite�c�٠yclic�groups���consist��of�translations�only��Y�.)��ϕ�T��37ak��ge��Itw�o�of�these�centralizers��Hand�calculate�the�closure�by�selecting��Closure��from�the��Subgroups��menu.�Y���gou�will���get�m�a�ne��w�subgroup�of�Hirsch�length�2,�which�is�also�placed�on�a�le�v�٠el�of�its�o�wn.�Ne�٠xt�select�three�of�them,�and���calculate���the���closure.�What�do�you�observ�٠e?�Also,�select�all�four�of�them�and�calculate�the�closure.�This�time�you�get���a���subgroup���of�inde�٠x�16,�hence�its�le��v�٠el�is�mark��ged�by�this�nite�inde�٠x�rather�than�a�Hirsch�number�(which�w��gould�be�4���here).��Note�that�the�nite�inde�٠x�is�used�rather�than�the�Hirsch�length�for�this�placement.���Finally��Y�,�t�check,�t�whether�the�centralizers�are�normal�in�the�whole�space�group�by�clicking�on�the�v�٠ertices�with�the�right���mouse�{�b���utton�and�choosing��IsNormal��in�the�\Information"�windo��w��Y�,�{�which�springs�up.�No�w�form�the�closures�of����������LSection��6.�A�P��37artial�Subgr���oup�Lattice�of�a�Space�Gr�oup��_$�23���p�����each�|�of�|�them�with�each�of�the�size�8�point�stabilizers.�Y���gou�will�get�some�other�subgroups�of�Hirsch�length�1.�Both�the���centralizers��and�the�point�stabilizers�are�abelian.�Is�this�also�true�for�the�closures?��N8�This��is�no��w�the��end�of�our�partial�in���v�٠estig��7ation�of�the�(partial)�subgroup�lattice�of��LG�,�close�the�graphic�sheet�by���selecting���close�?�graphic�sheet��from�the��Sheet��menu.�����$4�����p�����������M5��������s�NSubgr��G�oup�<Lattices��,���F�-��]Systematic����
�RDescription����;���In��this�chapter�we�gi��v�٠e�details�about�the�v�arious�options�and�menus�a���v�ailable�in�a�systematic�w��gay��Y�.��N8��P5.1��GraphicSubgr��uoupLattice�������3�S3{�
ptmr7t�S1���̟��^�3�u�7msam7�I���GraphicSubgroupLattice(�?��Lg��)��N8�GraphicSubgroupLattice�z��creates�a�z�ne��w�graphic�sheet�for�the�Hasse�diagram�of�the�subgroup�lattice�of��Lg�.�The�ne�٠xt���sections��describe�ho��w�to�select�and�mo�٠v�e��v�ertices�and�the�follo��wing�sections�describe�the�a���v�ailable�menus.����9��gap>�?�GraphicSubgroupLattice(�DihedralGroup(8)�);����9�<graphic�?�subgroup�lattice�"GraphicSubgroupLattice">���ȍ����3�S2���̟��^�I���GraphicSubgroupLattice(�?��Lg�,��Lwidth�,��Lheight�n�)��N8��In�zvthis�form��GraphicSubgroupLattice��creates�a�graphic�sheet�of�initial�dimensions��Lwidth��times��Lheight�.�.�Ho��we�v�٠er�zvit���is��still�possible�to�change��these�dimensions�later�using�either�the�menu�(described�in�5.8)�or�the�operation��Resize��for���graphic��sheets�(see�6.1.14).��N8�This�64function�is�63the�same�for�all�types�of�groups.�It�only�beha���v�٠es�dierently�according�to�some�properties�of�the�group.���F�٠or���e�xample�nitely�presented�groups�are�treated�dierently�because�other�algorithms�apply�in�this�case�and�some�of���the��standard�ones�are�not�feasible�to�be�carried�out.���In�pJcontrast�pKto�the��QGAP�3�v�٠ersion�of��QXGAP�p
�all�graphic�subgroup�lattices�are�interacti��v�٠e�so�you�can�al��gw�ays�pJremo�٠v�e���v�٠ertices.��F�or�a�nite�group�you�can�still�get�the�full�lattice�by�choosing��All�?�Subgroups��for�the�whole�group.��N8��P5.2��GraphicSubgr��uoupLattice�!F,��&Pr�otocol�of�Gr�oup�Theoretic�Constructions��N8��QXGAP�&��oers�&�the�&�possibility�to�write�a�protocol�of�the�group�theoretic�constructions�you�perform�via�mouse�clicks.���This���is�con���v�٠enient�because�otherwise�you�ha���v�e�no�record�of�what�you�did.�The�normal��QGAP��q�command�script�cannot���supply��this�because�the�menu�entries�you�select�do�not�produce�useful�output�there.���Y���gou�\astart�\bthe�protocol�f��gacility�by�selecting��Start�?�logging��from�the��Subgroups��menu.�Y���gou�are�prompted�for�the�le���name���of�the�protocol���with�a�le�selector�box.�After�selecting��OK�ع�in�this�box,�all�subsequent�actions�are�logged�in�the���protocol��le.�Y���gou�can�switch�this�feature�o�by�selecting��Stop�?�logging��from�the��Subgroups��menu.���Note�mthat�when�you�select�n�SelectedGroups�?�to�GAP�+�from�mthe��Subgroups��menu,�the�usual��QGAP�+�logging�is�also���directed�to�the��QXGAP���log�le.�This�is�stopped�when�you�select��InsertVertices�?�from�GAP���from�the��Subgroups����menu.�h�The�h�idea�of�this�is�that�you�also�see�the��QGAP�h��commands�you�issue�within�an��QXGAP�h��session�in�the��QXGAP����protocol�}[le,�if�you�}\temporarily�w��gork�with�the�k�e�٠yboard�instead�}\of�the�mouse.�See�5.9.21�and�5.9.22�for�a�description���of��the�menu�entries.�����&t�����LSection��4.�Gr�٠aphicSubgr���oupLattice��g,�Mo�ving�V����ertices��&��25���p������P5.3��GraphicSubgr��uoupLattice�!F,��&Labelling�of�Le��vels��N8��W��37e�\�intend�to�represent�\�subgroups�of�the�same�inde�٠x�at�the�same�height�of�the�graphic�lattice.�F�٠or�this�purpose�we���introduce��\le��v�٠els"�as�horizontal�slices�of�a�graphic�subgroup�lattice.��N8�All�(v�٠ertices�for�subgroups�of�a�certain�nite�inde�x�are�'placed�in�e�xactly�one�common�le��v�el.�But�what�about�innite���indices?���Ev�٠ery��}le��v�el�has��~a�\le��v�el�parameter".�There��~are�three�types�of�le��v�els:��~\nite�inde�x",�\nite�size",��~and�\innity".�\nite���inde�٠x"�dmeans,�that�cthe�inde�x�of�the�csubgroups�in�this�le��v�el�cis�a�certain,�nite�natural�number���,�the�le��v�٠el�parameter�is���e�٠xactly�q+this�number��s8.�\nite�size"�means,�q,that�the�size�of�the�subgroups�in�this�le��v�el�is�nite�q,�Hand��the�inde�x�is�either�not���kno��wn�}�(to��QGAP�)�or��infinity�.�}�The�le�v�٠el�parameter�is�the�}�size�b���ut�with�a�ne�g��7ati��v�e�}�sign.�If�the�inde�x�}�is��infinity��and���the��size�is�not�kno��wn,�the�third�type�applies:�\innity".�In�each�\innity"�le�v�٠el�only�one�v�erte�x�can�e�xist.���This�+pmeans�+qthat�\nite�inde�٠x"�tak��ges�precedence�o�٠v�er�+p\nite�size"�and�\innity",�and�\nite�size"�tak��ges�precedence���o�٠v�er��\innity"�if��QXGAP��is�in�doubt�which�le��v�٠el�to�choose�for�a�ne�w�v�٠erte�x.���If�:4the�:3group�in�question�is�a�space�group�pro�٠vided�by�the�CR��Y�YST�:"package,�le��v�٠els�of�type�\innity"�are�also�labelled�by���the���Hirsch�length�of�the�subgroup,�which�is�the�number���of�innite�c�٠yclic�f��gactors�in�an�y�gi��v�en�subnormal�series.�Note���that�8�this�8�is�only�implemented�for�space�groups�as�of�this�writing,�although�the�Hirsch�length�is�dened�for�a�wider���range��of�groups.���F�٠or��e��v�ery�graphic�subgroup�lattice�the�le��v�els�are�partially�ordered�by�the�follo��wing�rules:��N8���
{��A��\nite�inde�٠x"�le��v�el�is�greater�than�an�\innity"�le��v�el.�����
{��An��\innity"�is�greater�than�a�\nite�size"�le��v�٠el.�����
{��The��\nite�inde�٠x"�le��v�els�are�totally�ordered�by�descending�indices.�����
{��The��\nite�size"�le��v�٠els�are�totally�ordered�by�ascending�sizes.�����
{��F�٠or��space�groups�the�\innity"�le��v�els�are�partially�ordered�by�the�Hirsch�lengths�of�the�subgroups.���p�Note��that�in�general�dierent�\innity"�le��v�٠els�are�not�comparable�in�this�partial�order!���On�R�the�R�screen,�the�le��v�٠els�are�of�course�al��gw�ays�totally�R�ordered�with�respect�to�their�height.��QXGAP�RT�ensures�that�this���total��3ordering��4is�al��gw�ays��3compatible�with�the�abo�٠v�ementioned�partial��3ordering.�This�means,�that�the�user�can�permute���\innity"�{le��v�٠els,�{as�long�as�this�does�not�violate�the�partial�order�by�the�Hirsch�lengths�and�the�principle,�that�a�v�٠erte�x���\containing"��another�one�is�dra�٠wn�higher�on�the�screen.���Note��lthat�the�le��v�٠el��ma�v�erte�x�belongs�to�will�be��mchanged,�when�ne��w�information�about�the�subgroup�is�a���v��ailable.�This���happens��if�the�user�chooses�an�٠y�entry�in�the�information�menu�and�ne��w�information�is�a���v�ailable�thereafter��s8.��N8��P5.4��GraphicSubgr��uoupLattice�!F,��&Mo�ving�V��Y�er�B�tices��N8��In���order�to�mo�٠v�e���a���v�erte�x,�place�the�pointer�inside�the���v�erte�x�using�the�mouse,�and�press�the����Hleft��mouse�b���utton.�Hold���the�umouse�b���utton�pressed,�and�ustart�mo�٠ving�the�pointer�by�mo�ving�the�mouse.�The�v�erte�x�uwill�no��w�follo�w�the�pointer���,���b���ut��vit��wis�not�possible�to�mo�٠v�e�the��vv�erte�x�out��vof�the�boundaries�of�its�le��v�٠el.�or�lo��wer�than�a�v�٠erte�x��vof�a�group�of�smaller���size.���As�soon�as�you�release���the�left�mouse�b���utton�the�v�٠erte�x���will�stop�follo��wing�the�pointer�and,�if�the�v�٠erte�x���w��gas�a���member��of�a�conjug��7ac�٠y�class,�the�remaining�elements�of�the�class�are�mo�v�ed.���If��kyou�hold�do��wn�the��LSHIFT��e�k��ge�٠y�before�mo�ving�a�v�erte�x�as�described��labo�v�e�then�only�the�selected�v�erte�x�is�mo�v�ed���b���ut�%�not�%�all�members�of�the�same�class.�Y���gou�can�realign�the�v�٠ertices�of�a�class�by�selecting�one�of�them�and�choose����Rearrange�?�Classes���in�the��Poset��menu�(see�5.8.14).�����2㍟���26��J��LChapter��5.�Subgr���oup�Lattices�-�Systematic�Description���p������P5.5��GraphicSubgr��uoupLattice�!F,��&Selecting�V��Y�er�B�tices��N8��Selected��jv�٠ertices��kare�represented�by�a�slightly�thick��ger�circle�and,�if�your�screen�supports�color���,�are�colored�red.�There���are����v�٠e�dierent�w��gays�to�select�or�deselect�a�v�erte�x�or�a�b���unch�of�v�ertices.��N8�Place��the�pointer��inside�a�v�٠erte�x��and�press�the��Hleft��mouse�b���utton.�Release�the�b���utton�immediately�without�mo�٠ving�the���mouse.��This��will�deselect�all�other�v�٠ertices�and�select�this�v�٠erte�x.��If�the�v�٠erte�x�w��gas��already�the�only�selected�v�٠erte�x��it���is��deselected.���Place��^the�pointer�inside�a�v�٠erte�x,��^hold�do��wn�the��LSHIFT�{'�k��ge�٠y��Y�,�and�press�the��Hleft��mouse�b���utton.�Release�the�b�utton���immediately�+without�mo�٠ving�,the�mouse,�release�the��LSHIFT���k��ge�٠y�afterw�ards.�,If�the�v�٠erte�x�+w�as�,deselected�this�action���will��select�it�in�addition�to�an�٠y�other�selected�v�ertices.�If�the�v�erte�x�w��gas�already�selected�it�will�be�deselected.���Place�*the�*�pointer�outside�an�٠y�v�erte�x�*and�press�the��Hleft��mouse�b���utton.�K��eep�the�b���utton�pressed�and�start�mo�٠ving�the���pointer��s8.��nThis��owill�create�a�rubber�band�rectangle.�One�corner�at�the�position�where�you�pressed�the�mouse�b���utton,�the���opposite��jcorner�follo��wing��ithe�pointer��s8.�As�soon�as�you�release�the�left�mouse�b���utton,�all�v�٠ertices�inside�the�rectangle���are��selected,�all�v�٠ertices�outside�the�rectangle�are�deselected.���Place�{the�{pointer�outside�an�٠y�v�erte�x,�{hold�do��wn�the��LSHIFT�?��k��ge�٠y�and�press�the��Hleft��mouse�b���utton.�Ag��7ain�you�see�a���rubber��band,��ho��we�v�٠er���,�no�w�as��soon�as�you�release�the�mouse�b���utton,�all�v�٠ertices�inside�the�rectangle�are�selected�in���addition��to�an�٠y�other�selected�v�ertices.���T��37o���select���v�٠ertices�from�the��QGAP��O�command�windo��w�call�the�function��SelectGroups��with�a�subgroup�or�a�list�of���subgroups��to�select.��N8��P5.6��GraphicSubgr��uoupLattice�!F,��&Inser�B�ting�V��Y�er�tices��N8��T��37o��insert�ne��w�v�٠ertices�into�a�graphic�sheet�one�has�to�use�the�follo�wing�operation:�������3�S1���̟��^�I���InsertVertex(�?��Lsheet�.�,��Lgrp�,��Lconj�,��Lhint�n�)�����������36�I���InsertVertex(�?��Lsheet�.�,��Lgrp��)��N8��Inserts�.�the�.�group��Lgrp��as�a�ne��w�v�٠erte�x�.�into�the�sheet.�If�the�lattice�is��Hnot��the�subgroup�lattice�of�a�nitely�presented���group,�a�it�checks,�if�the�group�is�already�in�the�lattice�a�or�if�there�is�already�a�conjug��7ate�subgroup.�Further���,�the�ne��w���v�٠erte�x��is��sorted�into�the�poset.�So��InsertVertex��checks�for�all�v�٠ertices�on�higher�le��v�٠els,�whether�the�ne��w�v�٠erte�x��is���contained,�{Land�{Mfor�all�v�٠ertices�on�lo��wer�le�v�٠els,�whether�{Mthe�y�are�{Mcontained�in�the�ne��w�v�٠erte�x.�It�{Lthen�tries�to�add�edges���to��`the�appropriate��av�٠ertices.�If�the�lattice�is�the�lattice�of�a�nitely�presented�group,�nothing�is�done�with�respect�to�the���connections���of���an�٠y�v�erte�x.��InsertVertex����returns�a�list�with�the�ne��w�v�٠erte�x�as���rst�entry�and�a�
ag�as�second,�which���says,��whether�this�v�٠erte�x��w��gas�inserted�right�no��w�or�has�already�been�there.����Lhint����is�ǃa�ǂlist�of��Lx��*�coordinates�which�should�gi��v�٠e�some�hint�for�the�choice�of�the�ne��w��Lx��*�coordinate.�It�can�for�e�٠xample���be��=the��<�Lx����coordinates�of�those�groups�which�were�parameter�for�the�operation�which�calculated�the�group.��Lhints��can�be���empty��b���ut�must�al��gw�ays��be�a�list!���If���Lconj��is�a�v�٠erte�x��we�put�the�ne��w�v�٠erte�x��into�the�class�of�this�v�٠erte�x.��Otherwise��Lconj��should�either�be��false��or��fail�.���Y���gou�+�ha���v�٠e�access�to�the�simpler�form�of�the�abo�v�e�functions�via�the��Subgroups��menu�and�the�mouse.�If�you�select����InsertVertices�?�from�GAP�J�in��the���Subgroups��menu,�the�function��InsertVertex��is�called�for�the�group�in�the���(automatic)���v��ariable����last�,�or���,�if��last��contains�a�list�of�subgroups,�for�all�of�those�subgroups.�This�is�an�easy�w��gay�to���insert��Nresults��Mof�calculations�with��QGAP��A�into�the�lattice.�If��last��is�neither�a�subgroup�nor�a�list�of�subgroups,�nothing���happens.�����D������LSection��8.�Gr�٠aphicSubgr���oupLattice��g,�P��37oset�Menu�	J�27���p������P5.7��GraphicSubgr��uoupLattice�!F,��&Sheet�Men�޹u��N8��The�=@�Sheet��menu�=?will�be�pulled�do��wn�if�you�place�the�pointer�inside�the��Sheet��b���utton�and�press�the�left�mouse�b���utton.���K��eep�#the�b���utton�"do�wn�and�choose�an�entry�"by�mo�٠ving�the�pointer�on�top�of�this�entry��Y�.�Release�the�mouse�b���utton�to���select��an�entry��Y�.�������3�S1���̟��^�I���save�?�as�postscript��N8��Selecting�2this�3entry�pops�up�a�le�selector��s8.�If�you�enter�a�le�name�and�click�on��LOK����,�this�will�sa���v�٠e�a�description�of���the��&graphic��'sheet�and�graphic�objects�on�the�sheet�as�encapsulated�postscript�output.�This�output�should�be�imported���easily��into�other�documents.�������3�S2���̟��^�I���close�?�graphic�sheet��N8��This���entry���will�close�the�current�graphic�sheet�and�the�windo��w�containing�the�sheet�and�all�\Information"�menus���related�}_to�this�sheet.�On�some�windo��w�system�or�using�some�windo�w�manager�the�windo�w�itself�has�also�a�close���b���utton��or�menu�entry��Y�.�Ho��we�v�٠er���,��using�the�windo��w�close�method�will�not�close�associated�\Information"�menus.��N8��P5.8��GraphicSubgr��uoupLattice�!F,��&P��z�oset�Men�޹u��N8��The�=@�Poset��menu�=?will�be�pulled�do��wn�if�you�place�the�pointer�inside�the��Poset��b���utton�and�press�the�left�mouse�b���utton.���K��eep�#the�b���utton�"do�wn�and�choose�an�entry�"by�mo�٠ving�the�pointer�on�top�of�this�entry��Y�.�Release�the�mouse�b���utton�to���select��an�entry��Y�.��N8�This��0menu��/is�a�generic�menu�for�an�٠y�graphic�poset�and�is�not�specic�to�subgroup�lattices.�So�you�nd�here�options���for��the�handling�of�general�posets.�������3�S1���̟��^�I���Redraw��N8��The��whole�lattice�will�be�redra�٠wn.�Use�this�option�if�some�manipulation�has�disturbed�the�windo��w��Y�.�������3�S2���̟��^�I���Show�?�Levels����If���this���menu�entry�is�acti��v�ated���(after�clicking�it�will�ha���v�٠e�a�small�check�sign�at�its�right,�clicking�ag��7ain�deacti��v�ates���it),���there���will�be���a�little�blue�box�under�each�le��v�٠el�at�the�left�edge�of�the�graphic�sheet.�Y���gou�can�use�these�little�box�٠es�to���change��the�height�of�a��le��v�٠el�by�mo�ving�it�up�or�do��wn�lik��ge��a�v�erte�x.�In�cases�where�the�order�of��the�le��v�els�is�not�gi��v�en���by�F>some�\e�٠xternal�source"�lik��ge�the�inde�x�of�the�subgroups�F=you�can�mo�v�e�le��v�els�by�mo�ving�the�corresponding�blue�box���with��pressed��LSHIFT�E�b���utton.�������3�S3���̟��^�I���Show�?�Levelparameters��N8��This�pRmenu�pSentry�controls�the�display�of�the�le��v�٠el�parameters�at�the�right�edge�of�the�graphic�sheet.�Normally�these�are���displayed��b���ut�you�can�switch�it�o�with�this�menu�entry��Y�.�������3�S4���̟��^�I���Delete�?�Vertices��N8��Selecting���the�entry�will�delete�all�selected�v�٠ertices.�All�edges���from�or�to�one�of�these�are�also�deleted.�Ho��we�v�er���,���inclusion���information���is�preserv�٠ed.�This�means�that�ne��w�edges�are�created�from�all�v�٠ertices�which�were�maximal�in���the��deleted�one�to�all�v�٠ertices��in�which�the�deleted�v�erte�x�w��gas�maximal.�So�you�get��the�Hasse�diagram�of�the�poset���which��is�the�restriction�of�the�former�one�to�the�not�selected�v�٠ertices.�������3�S5���̟��^�I���Delete�?�Edge��N8��This��menu�entry�is�normally�not�selectable�because�it�w��gould�destro�y�the�Hasse�diagram.�������3�S6���̟��^�I���Merge�?�Classes����This��menu�entry�mer���ges��all�classes�within�each�le��v�٠el�that�contain�a�selected�v�٠erte�x.��Afterw��gards��RearrangeClasses����(see��Ebelo��w)�is�performed.�Use��Merge�?�Classes��to�unite�classes�within��Fa�le�v�٠el,�b���ut�use�it�with�care:�No�further�test�is�����V:�����28��J��LChapter��5.�Subgr���oup�Lattices�-�Systematic�Description���p������performed!��#If�you�unite�classes�of�subgroups�that�are��"not�conjug��7ate,�other�errors�may�follo��w��Y�,�because�conjug�ac�٠y�tests���are��later�on�only�performed�by�looking�at�the�rst�subgroup�in�a�gi��v�٠en�class!�������3�S7���̟��^�I���Magnify�?�Lattice��N8��Selecting�)the�*entry�will�multiply�the�dimensions�of�the�graphic�sheet�by�the�square�root�of��2��and�enlar���ge�the�lattice���accordingly��Y�.�������3�S8���̟��^�I���Shrink�?�Lattice��N8��Selecting���the���entry�will�di��vide�the�dimensions�of�the�graphic�sheet�by�the�square�root�of��2��and�shrink�the�lattice���accordingly��Y�.�������3�S9���̟��^�I���Resize�?�Lattice��N8��Selecting�/�this�entry�will�pop�up�a�dialog�box�asking�for�an�x�and�y�f��gactor�separated�by�a�comma.�Y���gou�can�enter�inte�٠gers���or�~Cquotients.�If�~Byou�enter�only�one�number�this�is�used�for�x�and�y��Y�.�The�graphic�sheet�is�then�enlar���ged�or�shrink��ged�and���the��lattice�is�resized�accordingly��Y�.�������3�S10���̟��^�I���Resize�?�Sheet��N8��This�|entry�}is�similar�to��Resize�?�Lattice��e�٠xcept�that�only�the�graphic�sheet�is�changed,�the�lattice�remains�unchanged.���The��numbers�you�enter�must�be�inte�٠gers�and�mean�pix�el�numbers.�������3�S11���̟��^�I���Change�?�Labels��N8��Selecting�#this�"entry�will�pop�up�a�dialog�box�for�each�selected�v�٠erte�x�#asking�for�a�ne��w�label.�Clicking�on��LCANCEL����will��cancel�the�relabelling�of�the�remaining�v�٠ertices�b���ut�will�not�reset�the�already�changed�labels.�������3�S12���̟��^�I���Average�?�Y�Positions��N8��Selecting���this�entry���will�a���v�٠erage�the�y�coordinates�of�all�v�٠ertices�belonging�to�the�same�le��v�٠el.�F�or���graphic�subgroup���lattices��this�means�all�subgroups�with�the�same�inde�٠x�in�the�whole�group.�������3�S13���̟��^�I���Average�?�X�Positions��N8��Selecting��3this��4entry�will�a���v�٠erage�the�x�coordinates�of�tw��go�or�more�selected�v�٠ertices.�This�will�only�w��gork�if�the�corre-���sponding��subgroups�do�not�ha���v�٠e�the�same�size�and�is�used�to�align�certain�v�ertices�v�ertically��Y�.�������3�S14���̟��^�I���Rearrange�?�Classes��N8��Selecting��mthis��nentry�will�clean�up�all�classes�which�contain�a�selected�v�٠erte�x.��mY���gou�need�this�option�if�you�ha���v�٠e�mo�v�ed���a�#�v�٠erte�x�#�without�its�class�(holding�do��wn�the��LSHIFT���k��ge�٠y).�The�v�٠ertices�in�a�class�are�arranged�one�ne�٠xt�to�the�other���horizontally�CWwithout�CXchanging�the�order�of�the�x�coordinates.�So�you�can�permute�the�v�٠ertices�within�a�class�carelessly���and��then�ag��7ain�get�a�nice�picture�with�the�ne��w�order�by�selecting�this�menu�entry��Y�.�������3�S15���̟��^�I���Use�?�Black&White��N8��Switches��to�black�and�white�in�case�of�a�color�screen�or�back�to�colors.��N8��P5.9��GraphicSubgr��uoupLattice�!F,��&Subgr�oups�Men�޹u��N8��The���Subgroups��menu��will�be�pulled�do��wn�if�you�place�the�pointer�inside�the��Subgroups��b���utton�and�press�the�left���mouse�u�b���utton.�K��eep�the�b�utton�do��wn�u�and�choose�an�entry�by�mo�٠ving�the�pointer�on�top�of�this�entry��Y�.�Release�the���mouse��b���utton�to�select�an�entry��Y�.��N8�Note�that�you�can�also�get�the��Subgroups��menu�as�a�popup�menu�by�clicking�with�the�right�mouse�b���utton�into�the���graphic��sheet�of�the�subgroup�lattice,�b���ut��Hnot��on�a�v�٠erte�x.���The���result�of���a�computation�from�an�٠y�of�the�follo��wing�entries�is�colored�green,�if�your�screen�supports�color��s8.�There���will��also�be�a�short�information�message�in�the��QGAP��windo��w�about�the�result.�����e������LSection��9.�Gr�٠aphicSubgr���oupLattice��g,�Subgr�oups�Menu��)Q�29���p�����In��the�follo��wing�descriptions�we�use�\v�٠ertices"�as�abbre�viation�for�\subgroups�associated�with�v�٠ertices".��N8�The��follo��wing�descriptions�do�not�apply�to�the�case�of�nitely�presented�groups.�See�5.12�for�this�case.�������3�S1���̟��^�I���All�?�Subgroups��N8��F�٠or��each�selected�v�erte�x���All�?�Subgroups��computes�and�displays�all�its�subgroups.�Requires�at�least�one�selected���v�٠erte�x.��Use�with�care!�This�can�cause�huge�computations!�See�also�39.20.1�in�the��QGAP��reference�manual.�������3�S2���̟��^�I���Centralizers����F�٠or��each��selected�v�erte�x���Centralizers��computes�and�displays�its�centralizer�with�respect�to�the�whole�group.�Re-���quires��at�least�one�selected�v�٠erte�x.��See�also�\ref:centralizer"�in�the��QGAP��reference�manual.�������3�S3���̟��^�I���Centres����F�٠or�:Zeach�:[selected�v�erte�x��Centres��computes�:[and�displays�its�centre.�Requires�at�least�one�selected�v�٠erte�x.�See�:Zalso���35.4.5��in�the��QGAP��reference�manual.�������3�S4���̟��^�I���Closure����computes�7and�displays�the�common�7closure�of�the�selected�v�٠ertices.�Requires�at�least�one�selected�v�٠erte�x.�7See�also���39.4.1��in�the��QGAP��reference�manual.�������3�S5���̟��^�I���Closures����computes��&and��%displays�the�closure�of�each�pair�of�selected�v�٠ertices.�Requires�at�least�tw��go�selected�v�٠ertices.�See�also���39.4.1��in�the��QGAP��reference�manual.�������3�S6���̟��^�I���Commutator�?�Subgroups����computes�Đand�displays�the�commutator�ďsubgroup�of�each�pair�of�selected�v�٠ertices.�Requires�at�least�tw��go�selected���v�٠ertices.��See�also�39.12.2�in�the��QGAP��reference�manual.�������3�S7���̟��^�I���Conjugate�?�Subgroups����computes�Xdand�displays�Xcthe�conjug��7ac�٠y�class�(with�respect�to�the�whole�group)�of�each�selected�v�٠erte�x.�XdRequires�at�least���one��selected�v�٠erte�x.��See�also�39.10.1�in�the��QGAP��reference�manual.�������3�S8���̟��^�I���Cores����F�٠or���each���selected�v�erte�x��Cores����computes�and�displays�its�core�with�respect�to�the�whole�group.�Requires�at�least�one���selected��v�٠erte�x.�See�also�39.11.2�in�the��QGAP��reference�manual.�������3�S9���̟��^�I���Derived�?�Series����F�٠or�2each�2selected�v�erte�x��Derived�?�Series�2�computes�and�displays�its�deri��v�٠ed�series.�Requires�at�least�one�selected���v�٠erte�x.��See�also�39.17.7�in�the��QGAP��reference�manual.�������3�S10���̟��^�I���Derived�?�Subgroups����F�٠or��Eeach��Dselected�v�erte�x��Derived�?�Subgroups��D�computes�and�displays�its�deri��v�٠ed�subgroup.�Requires�at�least�one���selected��v�٠erte�x.�See�also�39.12.3�in�the��QGAP��reference�manual.�������3�S11���̟��^�I���Fitting�?�Subgroups����F�٠or��|each��}selected�v�erte�x��Fitting�?�Subgroups��computes��}and�displays�its�Fitting�subgroup.�Requires�at�least�one���selected��v�٠erte�x.�See�also�39.12.5�in�the��QGAP��reference�manual.�������3�S12���̟��^�I���Intermediate�?�Subgroups����computes�%�and�displays�%�all�intermediate�subgroups�between�tw��go�selected�groups.�Requires�e�٠xactly�tw��go�selected�v�٠er���-���tices.��See�also�39.17.18�in�the��QGAP��reference�manual.�����t4�����30��J��LChapter��5.�Subgr���oup�Lattices�-�Systematic�Description���p���������3�S13���̟��^�I���Intersection��Ƈ��computes�O�and�displays�the�common�intersection�of�the�selected�O�v�٠ertices.�Requires�at�least�one�selected�v�erte�x.�See���also��30.5.2�in�the��QGAP��reference�manual.���썍���3�S14���̟��^�I���Intersections��ƈ��F�٠or��geach�pair��hof�selected�v�ertices��Intersections��computes�and��hdisplays�the�intersection�of�the�tw��go�v�٠ertices.�Requires���at��least�tw��go�selected�v�٠ertices.�See�also�30.5.2�in�the��QGAP��reference�manual.�������3�S15���̟��^�I���Normalizers��Ƈ��F�٠or���each���selected�v�erte�x��Normalizers��computes���and�displays�its�normalizer�with�respect�to�the�whole�group.�Requires���at��least�one�selected�v�٠erte�x.��See�also�39.11�in�the��QGAP��reference�manual.�������3�S16���̟��^�I���Normal�?�Closures��ƈ��F�٠or�Ooeach�selected�Opv�erte�x��Normal�?�Closure��computes�and�Opdisplays�its�normal�closure�with�respect�to�the�whole�group.���Requires��at�least�one�selected�v�٠erte�x.��See�also�39.11.4�in�the��QGAP��reference�manual.�������3�S17���̟��^�I���Normal�?�Subgroups��Ƈ��F�٠or��each�selected�v�erte�x��Normal�?�Subgroups��computes�and�displays��the�normal�subgroups�of�the�subgroup�associated���with��;this��<v�٠erte�x.�These�ne��w�subgroups��<are�not�necessarily�normal�in�the�whole�group.�Requires�at�least�one�selected���v�٠erte�x.��See�also�39.19.8�in�the��QGAP��reference�manual.�������3�S18���̟��^�I���Sylow�?�Subgroups��ƈ��pops�w�up�a�w�dialog�box�asking�for�a�prime.�After�entering�a�prime��Lp��and�pressing��Lr��Geturn��or�clicking��LOK�T�it�computes�and���displays��a��Sylo��w��Lp�-subgroup�for�each�selected�v�٠erte�x.�Requires��at�least�one�selected�v�٠erte�x.�See��also�39.13.1�in�the����QGAP���reference�manual.�������3�S19���̟��^�I���SelectedGroups�?�to�GAP��Ƈ��If���the�user�selects�this�menu���entry��Y�,�the�subgroups�belonging�to�the�selected�v�٠ertices�are�put�into�a�list�which�is�stored���into�% the�v��ariable�%�last�.�This�is�equi�v�alent�to�%the�statement��SelectedGroups(sheet);;��if��sheet��contains�the�graphic���sheet��object.�If��QXGAP��logging�is�on,�then�the�normal��QGAP��logging�via��LogTo��is�also�directed�to�the��QXGAP��log�le.�������3�S20���̟��^�I���InsertVertices�?�from�GAP��Ƈ��If��xthe�user�selects��ythis�menu�entry��Y�,�the�v��alue�of�the�v��ariable��last��is�used�to�insert�ne�w�v�٠ertices��yinto�the�graphic�sheet.���If����last����is�equal�to�one�subgroup,�it�is�inserted�via��InsertVertex�.�If��last��is�a�list�of�subgroups,��InsertVertex��is���called�for�all�those�subgroups.�There�is�no�error�issued�if�one�of�the�entries�of��last��is�no�subgroup.�If��QXGAP���logging�is���on,�3$then�3%the�normal��QGAP�3�logging�via��LogTo��is�switched�o!�The�idea�of�this�is�to�switch�the�logging�temporarily�from����QXGAP����logging��to��normal��QGAP��logging�between��tw��go�clicks�to��SelectedGroups�?�to�GAP����and���InsertVertices���from�?�GAP���respecti��v�٠ely��Y�.���퍍���3�S21���̟��^�I���Start�?�Logging����After�*nclicking�*oon�this�menu�entry�the�user�is�prompted�for�a�lename.�From�this�point�on�all�commands�issued�via���mouse���clicks�in���the�subgroup�menu�are�logged�into�that�le,�such�that�one�can�afterw��gards�see�\what�happened"�in�the����QXGAP���session.�The�information�displayed�is�the�same�as�in�the�info�displays�in�the��QGAP��windo��w��Y�.���썍���3�S22���̟��^�I���Stop�?�Logging����A��click�onto�this�menu�entry�stops�the��QXGAP��logging.��Ej�These���menu�entries�represent�only�a���small�selection�of�the�functions�of��QGAP����which�the�authors�of��QXGAP����considered���most��Gfrequently�used.�Y���gou�can�calculate��Hother�subgroups�lik��ge�for�e�٠xample�prefrattini�subgroups�from�the��QGAP��4�com-���mand�z�windo��w��Y�.�z�See�sections�4.1�and�4.2�for�e�٠xamples�ho��w�to�transfer�information�from�the�graphical�lattice�of��QXGAP����to���QGAP��(via��SelectedGroups�,�see�5.5)�and�vice�v�٠ersa�(via��SelectGroups�,�see�5.5,�and��InsertVertex�,�see�5.6).������n�����LSection��10.�Gr�٠aphicSubgr���oupLattice��g,�Information�Menu��3�31���p������P5.10��GraphicSubgr��uoupLattice�!F,��&Inf�ormation�Men�޹u��N8��Note��that�this�section�does�not�deal�with�the�case�of�a�nitely�presented�group.�See�5.13�for�this�case.��N8�Placing��the�pointer��inside�a�v�٠erte�x��(selected�or�not)�and�pressing�the��Hright��mouse�b���utton�pops�up�the�\Information"���menu.�hClicking�on�an�٠y�of�gthe�te�xt�lines�will�compute�the�corresponding�property�of�gthe�subgroup��Lu��associated�with���this��v�٠erte�x.�Clicking�on��all��will�compute�all�properties,�clicking�on��close��will�close�the�\Information"�menu.�������3�S1���̟��^�I���Size��N8��computes��and�displays�the�size�of��Lu�.�See�also�30.4.6�in�the��QGAP��reference�manual.�������3�S2���̟��^�I���Index����computes��and�displays�the�inde�٠x�of��Lu��in�the�whole�group.�See�also�39.3.3�in�the��QGAP��reference�manual.�������3�S3���̟��^�I���IsAbelian��N8�����3�S4���̟��^�I���IsCyclic�������3�S5���̟��^�I���IsNilpotent�������3�S6���̟��^�I���IsPerfect�������3�S7���̟��^�I���IsSimple�������3�S8���̟��^�I���IsSolvable����computes���and���displays�the�corresponding�property�of��Lu�.�See�also�35.4.9,�39.15.1,�39.15.3,�39.15.5,�39.15.10,�and���39.15.6��in�the��QGAP��reference�manual.�������3�S9���̟��^�I���IsCentral�������3�S10���̟��^�I���IsNormal����computes�t�and�displays�the�t�corresponding�property�of��Lu��with�respect�to�the�whole�group.�See�also�35.4.8�and�39.3.6�in���the���QGAP��reference�manual.�������3�S11���̟��^�I���Isomorphism����computes�a�and�displays�a�the�isomorphism�type�of��Lu�.�This�will�only�w��gork�if�the�size�of��Lu��is�small.�See�50.7.5�in�the��QGAP����reference��manual�for�details.��N8�Note��that�the��e�٠xact�result�of�all�these�information�displays�is�stored�in�the�global�v��ariable��LastResultOfInfoDisplay����after�v�each�v�operation.�So�you�can�access�this�easily�from�the��QGAP�v��command�prompt.�It�is�also�returned�as��last��v��alue.����� �卟���32��J��LChapter��5.�Subgr���oup�Lattices�-�Systematic�Description���p������P5.11��V��Y�er�B�te��x��&Shapes��N8��The��follo��wing�v�٠erte�x��shapes�can�appear�in�an�interacti�v�٠e�lattice:�������3�S1���̟��^�I���circle��N8��Subgroup��is�not�normal�in�whole�group.�������3�S2���̟��^�I���diamond����Subgroup��is�normal�in�whole�group.�������3�S3���̟��^�I���rectangle����Subgroup�Lhas�L an�inde�٠x�that�is�too�big�for�automatic�calculation�of�normality��Y�.�So�it�is�not�yet�kno��wn�whether�this�group���is��normal.��N8�Automatic��calculation�is�controlled�by�the�follo��wing�v�ariable:�������3�S4���̟��^�I���GGLLimitForIsNormalCalc�T��V���Only���for�subgroups���with�inde�٠x�smaller�than�this�number�an�automatic��IsNormal��test�is�performed�when�the�v�٠erte�x���is���added��to�the�sheet.��N8��P5.12��GraphicSubgr��uoupLattice��&f�or�FpGr�oups,�Subgr�oups�Men�޹u��N8��The���Subgroups��menu��will�be�pulled�do��wn�if�you�place�the�pointer�inside�the��Subgroups��b���utton�and�press�the�left���mouse�u�b���utton.�K��eep�the�b�utton�do��wn�u�and�choose�an�entry�by�mo�٠ving�the�pointer�on�top�of�this�entry��Y�.�Release�the���mouse��b���utton�to�select�an�entry��Y�.��N8�Note�that�you�can�also�get�the��Subgroups��menu�as�a�popup�menu�by�clicking�with�the�right�mouse�b���utton�into�the���graphic��sheet�of�the�subgroup�lattice,�b���ut��Hnot��on�a�v�٠erte�x.���The��Dresult�of��Ca�computation�from�an�٠y�of�the�follo��wing�entries�is�colored�green,�if�your�screen�supports�color��s8.�In�most���cases��there�will�also�be�short�information�message�in�the��QGAP��windo��w�about�the�result.���Note���that���some�of�the�menu�entries�mak��ge�it�necessary�to�compute�presentations�of�subgroups�using�a�modied�T��37odd-���Cox�٠eter��algorithm.�This�can�be�v�ery�time�consuming�and�in�some�cases�e��v�en�impossible,�if�the�inde�x�is�too�high.���In��the�follo��wing�descriptions,�we�use�\v�٠ertices"�as�abbre�viation�for�\subgroups�associated�with�v�٠ertices".�������3�S1���̟��^�I���Abelian�?�Prime�Quotient��N8��pops�%�up�a�dialog�box�asking�%�for�a�prime��Lp�.�It�then�computes�and�displays�the�lar���gest�elementary�abelian��Lp��quotient���of�the�selected�v�٠erte�x.�If�no�presentation�for�the�subgroup�associated�to�the�v�٠erte�x�is�kno��wn�a�presentation�is�rst���computed���using���a�modied�T��37odd-Cox�٠eter�algorithm.�It�then�calls��PrimeQuotient��to�compute�the�lar���gest�elementary���abelian��quotient.��Abelian�?�PrimeQuotient��requires�e�٠xactly�one�selected�v�erte�x.�������3�S2���̟��^�I���All�?�Overgroups��N8��computes�i�and�i�displays�all�o�٠v�er���groups�of�i�the�selected�v�٠erte�x.�i�It�rst�computes�the�permutation�action�of�the�whole���group�Cnon�Cothe�cosets�of�the�subgroup�associated�with�the�selected�v�٠erte�x�Cnand�then�searches�for�all�block�systems.�If���the��csubgroup�of�the�selected�v�٠erte�x��cis�normal,�then�e��v�٠erything��dis�calculated�within�the�(nite)�f��gactor�group�in�a�better���representation.���All�?�Overgroups��requires�e�٠xactly�one�selected�v�erte�x.�������3�S3���̟��^�I���Closure��N8��computes�7and�displays�the�common�7closure�of�the�selected�v�٠ertices.�Requires�at�least�one�selected�v�٠erte�x.�7See�also���39.4.1��in�the��QGAP��reference�manual.�����!������LSection��12.�Gr�٠aphicSubgr���oupLattice�for�FpGr�oups,�Subgr�oups�Menu���Z�33���p���������3�S4���̟��^�I���Compare�?�Subgroups������A�kLnon-empty�kQset�of�v�٠ertices�must�be�selected�to�choose�this�menu�entry��Y�.�All�subgroups�belonging�to�these�v�ertices�are���compared��Tpairwise,�and�the��Sinclusion�information�is�displayed�in�the�lattice.�It�may�happen�that�tw��go�or�more�v�٠ertices���are��mer���ged�if��QGAP��notices,�that�the�subgroups�are�equal.���K�����3�S5���̟��^�I���Conjugacy�?�Class����computes�Wand�Xdisplays�the�conjug��7ac�٠y�class�of�the�selected�v�٠erte�x.�W�Conjugacy�?�Class��requires�e�٠xactly�one�selected���v�٠erte�x.���J�����3�S6���̟��^�I���Cores������computes��and�displays�the�cores�of�the�selected�v�٠ertices.��Cores��requires�at�least�one�selected�v�erte�x.�������3�S7���̟��^�I���Derived�?�Subgroups����computes�&Qand�displays�the�deri��v�٠ed�&Psubgroups�of�the�selected�v�ertices.�If�applied�to�a�&Pproper�subgroup�of�the�whole���group��dit��ewill�only�display�those�deri��v�٠ed�subgroups�whose�inde�٠x�is�nite.��Derived�?�Subgroups��requires�at�least�one���selected��v�٠erte�x.���K�����3�S8���̟��^�I���Epimorphisms�?�(GQuotients)����pops��up�another�menu.�Requires�e�٠xactly�one�selected�v�erte�x.���J��9��Sym(n)����9�Alt(n)����9�PSL(d,q)����9�Library����9�User�?�Defined��r���Click�3�on�an�٠y�of�3�these�entries�to�try�to�nd�a�quotient�isomorphic�to�the�symmetric�group�(�Sym(n)�),�the�alternating���group���(�Alt(n)�),�the���projecti��v�٠e�special�linear�group�(�PSL(d,q)�),�a�group�in�a�library�supplied�with��QXGAP��3�(this���will�hpop�up�a�gle�selector),�or�a�user�dened�group�stored�in�the�v��ariable��IMAGE���E�ff&f��ǫGROUP�.�After�supplying�additional���parameters,�\�for�\�e�٠xample,�the�de�٠gree�of�the�symmetric�group�or�the�dimension�and�eld�of��LPSL�di�using�dialog�box�٠es,�the���corresponding��entry�will�change,�for�e�٠xample�to�something�lik��ge����9��Sym(3)�)��3�?�found��r���After��one�or�more�quotients�were�found�click��Ldisplay��to�display�them.���o�Note���that�in����QXGAP�4�in�f��gact�the�k��gernel�of�the�epimorphism�is�mark��ged�whereas�in��QXGAP�3�this�w��gas�not�the�case,�e��v�٠en���though��the��QXGAP�3�manual�stated�this.���In��f��gact�in��QXGAP�3�a�stabilizer�of�a�permutation�action�on�an�orbit�w�as�put�into�the�lattice.���In�X�case�X�that�the�image�of�the�epimorphism�is�a�permutation�group�you�can�get�this�functionality�by�clicking�on��Ldisplay���point��stabilizer����instead�of��Ldisplay�.���J�����3�S9���̟��^�I���Intermediate�?�Subgroups������computes�%�and�displays�%�all�intermediate�subgroups�between�tw��go�selected�groups.�Requires�e�٠xactly�tw��go�selected�v�٠er���-���tices.��See�also�39.17.18�in�the��QGAP��reference�manual.�������3�S10���̟��^�I���Intersection������computes�O�and�displays�the�common�intersection�of�the�selected�O�v�٠ertices.�Requires�at�least�one�selected�v�erte�x.�See���also��30.5.2�in�the��QGAP��reference�manual.���K�����3�S11���̟��^�I���Intersections����computes�"�and�"�displays�the�pairwise�intersections�of�the�selected�v�٠ertices.��Intersections��requires�at�least�tw��go�se-���lected��v�٠ertices.�����"�x�����34��J��LChapter��5.�Subgr���oup�Lattices�-�Systematic�Description���p���������3�S12���̟��^�I���Low�?�Index�Subgroups��N8��pops��uup��ta�dialog�box�asking�for�inde�٠x�limit��Lk�+�.�It�will�then�do�a�lo��w�inde�٠x�subgroup�search�for�subgroups�of�inde�٠x�at�most����Lk�_H�of�3�the�3�selected�v�٠erte�x�using�3��LowIndexSubgroupsFpGroup�.�If�no�presentation�for�the�subgroup�associated�to�the���v�٠erte�x��/is�kno��wn�a�presentation�is�rst�computed�using�a�modied�T��37odd-Cox�٠eter�algorithm.��Low�?�Index�Subgroups����requires��e�٠xactly�one�selected�v�erte�x.�������3�S13���̟��^�I���Normalizers����computes��and�displays�the�normalizers�of�the�selected�v�٠ertices.��Normalizers��requires�at�least�one�selected�v�erte�x.�������3�S14���̟��^�I���Prime�?�Quotient����pops���up�a�dialog�box�asking�for�a�prime��Lp��and�another���dialog�box�asking�for�a�class��Lc�.�It�then�computes�and�displays���the�X�lar���gest��Lp�-quotient�of�X�class��Lc��of�the�selected�v�٠erte�x.�If�X�no�presentation�for�the�subgroup�associated�to�the�v�٠erte�x���is�@kno��wn�a�presentation�is�rst�computed�using�a�modied�T��37odd-Cox�٠eter�algorithm.�It�then�calls��PrimeQuotient�.����Prime�?�Quotient���requires�e�٠xactly�one�selected�v�erte�x.�������3�S15���̟��^�I���Test�?�Conjugacy����w��galks�q�through�all�q�le��v�٠els�and�tests�for�all�pairs�of�classes,�that�contain�a�selected�v�٠erte�x,�q�whether�the�groups�in�the���classes�E�are�conjug��7ates.�If�E�so,�the�classes�are�mer���ged.�After�these�calculations��Rearrange�?�Classes��is�called.�Note���that��conjug��7ac�٠y�calculations�can�tak��ge�lots�of�time�for�nitely�presented�groups!�������3�S16���̟��^�I���SelectedGroups�?�to�GAP����If���the�user�selects�this�menu���entry��Y�,�the�subgroups�belonging�to�the�selected�v�٠ertices�are�put�into�a�list�which�is�stored���into�% the�v��ariable�%�last�.�This�is�equi�v�alent�to�%the�statement��SelectedGroups(sheet);;��if��sheet��contains�the�graphic���sheet��object.�If��QXGAP��logging�is�on,�then�the�normal��QGAP��logging�via��LogTo��is�also�directed�to�the��QXGAP��log�le.�������3�S17���̟��^�I���InsertVertices�?�from�GAP����If��xthe�user�selects��ythis�menu�entry��Y�,�the�v��alue�of�the�v��ariable��last��is�used�to�insert�ne�w�v�٠ertices��yinto�the�graphic�sheet.���If����last����is�equal�to�one�subgroup,�it�is�inserted�via��InsertVertex�.�If��last��is�a�list�of�subgroups,��InsertVertex��is���called�~for�~all�those�subgroups.�There�is�no�error�issued�if�one�of�the�entries�of��last��is�no�subgroup.�If��QXGAP��logging���is���on,���then�the�normal��QGAP�μ�logging�via��LogTo��is�switched�o!�The�idea�of�this�is�to�switch�the�logging�temporarily���from�H��QXGAP�Hs�logging�to�normal�H��QGAP�Ht�logging�between�tw��go�clicks�to�\SelectedGroups�to�GAP"�Hsand�\InsertV����ertices���from��GAP"�respecti��v�٠ely��Y�.�������3�S18���̟��^�I���Start�?�Logging����After�*nclicking�*oon�this�menu�entry�the�user�is�prompted�for�a�lename.�From�this�point�on�all�commands�issued�via���mouse���clicks�in���the�subgroup�menu�are�logged�into�that�le,�such�that�one�can�afterw��gards�see�\what�happened"�in�the����QXGAP���session.�The�information�displayed�is�the�same�as�in�the�info�displays�in�the��QGAP��windo��w��Y�.�������3�S19���̟��^�I���Stop�?�Logging����A��click�onto�this�menu�entry�stops�the��QXGAP��logging.��N8�These���menu�entries�represent�only�a���small�selection�of�the�functions�of��QGAP����which�the�authors�of��QXGAP����considered���most��frequently��used.�Y���gou�can�calculate�other�subgroups�from�the��QGAP����command�windo��w��Y�.�See�sections�4.1�and�4.2���for�8Ae�٠xamples�8@ho��w�to�transfer�information�from�the�graphical�lattice�of��QXGAP�8.�to��QGAP��(via��SelectedGroups�,�8@see�5.5)���and��vice�v�٠ersa�(via��SelectGroups�,�see�5.5,�and��InsertVertex�,�see�5.6).�����#�v�����LSection��13.�Gr�٠aphicSubgr���oupLattice�for�FpGr�oups,�Information�Menu��H<�35���p������P5.13��GraphicSubgr��uoupLattice��&f�or�FpGr�oups,�Inf�ormation�Men�޹u��N8��Placing��the�pointer��inside�a�v�٠erte�x��(selected�or�not)�and�pressing�the��Hright��mouse�b���utton�pops�up�the�\Information"���menu.�hClicking�on�an�٠y�of�gthe�te�xt�lines�will�compute�the�corresponding�property�of�gthe�subgroup��Lu��associated�with���this��v�٠erte�x.�Clicking�on��close��will�close�the�\Information"�menu.�������3�S1���̟��^�I���Index��N8��displays��the�inde�٠x�of��Lu��in�the�whole�group.�������3�S2���̟��^�I���IsNormal����checks��if��Lu��is�normal�in�the�whole�group.�������3�S3���̟��^�I���IsFpGroup����checks��Dif��Lu��is�a�nitely�presented�group.�Note�that�a��Esubgroup�of�a�nitely�presented�group�that�is�dened�by�a�coset���table��cor�as�k��gernel�of�an��bepimorphism�is��Hnot��automatically�kno��wn�to��QGAP��K�as�a�nitely�presented�group.�This�means,���that�ocertain�palgorithms�can�not�be�applied.�Use��IsomorphismFpGroup��(see�47.11.1�in�the��QGAP��reference�manual)�to���calculate��a�nitely�presented�group�and�an�isomorphism�onto�it,�if�some�calculation�does�not�w��gork�automatically��Y�.�������3�S4���̟��^�I���Abelian�?�Invariants����computes��and�displays�the�abelian�in���v��ariants�of��Lu�.�������3�S5���̟��^�I���Coset�?�Table����computes��a�coset�table�for��Lu�.�������3�S6���̟��^�I���IsomorphismFpGroup����computes��a�nitely�presented�group�that�is�isomorphic�to��Lu��and�displays�the�number�of�generators�and�relators�of�it.�������3�S7���̟��^�I���Factor�?�Fp�Group����computes��the�f��gactor�group�of�the�whole�group�by��Lu�,�if��Lu��is�normal.��N8�Note��that�the��e�٠xact�result�of�all�these�information�displays�is�stored�in�the�global�v��ariable��LastResultOfInfoDisplay����after�v�each�v�operation.�So�you�can�access�this�easily�from�the��QGAP�v��command�prompt.�It�is�also�returned�as��last��v��alue.�����$������p�����������M6���������NGraphic��ASheets��,����-��<Basic�graphic�����=operations����;�W��This��mchapter��ndescribes�ho��w�graphics�are�accessed�in��QXGAP��j�via�the�lo��west�library�functions�for�graphic�sheets.�These���functions��are��used�in�all�other�parts�of��QXGAP���and�you�normally�only�need�to�kno��w�them�if�you�w��gant�to�display�other���things��than�graphic�posets�and�subgroup�lattices.���=��P6.1��Graphic��&Sheet�Objects��)���T��37o���access���an�٠y�graphics�in��QXGAP��you�rst�ha���v�٠e�to�create�a��Hgraphic�sheet��object.�Such�objects�are�link��ged�internally�to���windo��ws�Lon�Kthe�screen.�Y���gou�do��Hnot��ha���v�٠e�to�think�about�redra�٠wing,�resizing�and�other�or���g��7anizing�stu.�The�graphic���sheet���object���is�a��QGAP����object�in�the�cate�٠gory��IsGraphicSheet��and�should�be�sa���v�٠ed�because�it�is�needed�later�on�for���all��graphic�operations.��sB�����3�S1���̟��^�I���GraphicSheet(�?��Ltitle�,��Lwidth�,��Lheight�n�)�$���O��p[�creates���a�graphic���sheet�with�title��Ltitle��and�dimension��Lwidth��by��Lheight�.�.�A��1graphic�sheet�is�the�basic�tool�to�dra�٠w���something,��it�is��lik��ge�a�piece�of�paper�on�which�you�can�put�your�graphic�objects,�and�to�which�you�can�attach�your���menus.��The�coordinate��(0�A;����0)��is�the�upper�left�corner���,��(��Lwidth��s��D�8��1�A;���Lheight����D��1)���the�lo��wer�right.�����It�h�is�h�possible�to�change�the�def��gault�beha���viour�of�a�graphic�sheet�by�installing�methods�(or�sometimes�called�callbacks)���for��rthe�follo��wing��se�v�٠ents.��rIn�order�to�a���v�oid�confusion��rwith�the��QGAP��Y�term�\method"�the�term�\callback"�will�be�used���in���the�follo��wing.���F�٠or�e�xample,�to�install�the���function��MyLeftPBDownCallback��as�callback�for�the�left�mouse�b���utton���do��wn��e�v�٠ent�of�a�graphic�sheet��Lsheet�.�,�you�ha���v�e�to�call��InstallCallback��as�follo��ws.����9��gap>�?�InstallCallback(�sheet,�"LeftPBDown",�MyLeftPBDownCallback�);��)���QXGAP��`�stores��wfor�each��xgraphic�sheet�a�list�of�callback�k��ge�٠ys�and�a�list�of�callback�functions�for�each�k��ge�٠y��Y�.�That�means���that�Bwhen�Aa�certain�callback�k��ge�٠y�is�triggered�for�a�graphic�sheet�then�the�corresponding�list�of�callback�functions�is���called���one�function�after�the�other��s8.�The�follo��wing���k��ge�٠ys�ha���v�e�predened�meanings�which�are�e�xplained�belo��w:��Close�,����LeftPBDown�,�~��RightPBDown�,�~��ShiftLeftPBDown�,��ShiftRightPBDown�,��CtrlLeftPBDown�,��CtrlRightPBDown�.�All���of�L�these�L�k��ge�٠ys�are�strings.�Y���gou�can�install�your�o��wn�callback�functions�for�ne��w�k��ge�٠ys,�ho��we�v�٠er�L�the�y�will�L�not�be�triggered���automatically��Y�.�������3�S2���̟��^�I���Close(�?��Lsheet�n�)��pZ��the�F�function�will�be�called�as�soon�as�the�user�selects�\close�graphic�sheet",�the�installed�function�gets�the�graphic���sheet���Lsheet���to�close�as�ar���gument.�������3�S3���̟��^�I���LeftPBDown(�?��Lsheet�.�,��Lx���,��Ly��)��p[��the�f7function�will�be�f6called�as�soon�as�the�user�presses�the�left�mouse�b���utton�inside�the�graphic�sheet,�the�installed���function��gets�the�graphic�sheet��Lsheet�.�,�the��Lx����coordinate�and��Ly��coordinate�of�the�pointer�as�ar���guments.��sA�����3�S4���̟��^�I���RightPBDown(�?��Lsheet�.�,��Lx���,��Ly��)����same��as��LeftPBDown��e�٠xcept�that�the�user�has�pressed�the�right�mouse�b���utton.�����%�1�����LSection��1.�Gr�٠aphic�Sheet�Objects�E���37���p���������3�S5���̟��^�I���ShiftLeftPBDown(�?��Lsheet�.�,��Lx���,��Ly��)��N8��same���as��LeftPBDown����e�٠xcept�that�the�user�has�pressed�the�left�mouse�b���utton�together�with�the��LSHIFT�j��k��ge�٠y�on�the���k��ge�٠yboard.�������3�S6���̟��^�I���ShiftRightPBDown(�?��Lsheet�.�,��Lx���,��Ly��)����same�Z�as��LeftPBDown��e�٠xcept�that�Z�the�user�has�pressed�the�right�mouse�b���utton�together�with�the��LSHIFT���k��ge�٠y�on�the���k��ge�٠yboard.�������3�S7���̟��^�I���CtrlLeftPBDown(�?��Lsheet�.�,��Lx���,��Ly��)����same��8as��9�LeftPBDown��e�٠xcept�that�the�user�has�pressed�the�left�mouse�b���utton�together�with�the��LCTRL����k��ge�٠y�on�the���k��ge�٠yboard.�������3�S8���̟��^�I���CtrlRightPBDown(�?��Lsheet�.�,��Lx���,��Ly��)����same��Nas��O�LeftPBDown��e�٠xcept�that�the�user�has�pressed�the�right�mouse�b���utton�together�with�the��LCTRL����k��ge�٠y�on�the���k��ge�٠yboard.��N8�Here��is�the�documentation�for�the�operations�to�control�the�callback�functions:�������3�S9���̟��^�I���InstallCallback(�?��Lsheet�.�,��Lk��ge��7y�,��Lfunc��)�!)j�O���Installs�-pa�-one��w�callback�function�for�the�sheet��Lsheet�[�for�the�k��ge�٠y��Lk�e��7y�.�-pNote�that�the�old�functions�for�this�k��ge�٠y�are��Hnot����deleted.�������3�S10���̟��^�I���RemoveCallback(�?��Lsheet�.�,��Lfunc�,��Lcall�B��)�$Ro�O���Remo�٠v�es���an���old�callback.�Note�that�you�ha���v�٠e�to�specify�not�only�the��Lk��ge��7y��b���ut�also�e�٠xplicitly�the��Lfunc��which�should�be���remo�٠v�ed��from�the�list!�������3�S11���̟��^�I���Callback(�?��Lsheet�.�,��Lk��ge��7y�,��Lar��Ggs��)�E���O���Ex�٠ecutes��all�callback�functions�of�the�sheet��Lsheet���that�are�stored�under�the�k��ge�y��Lfunc��with�the�ar���gument�list��Lar��Ggs�.��N8�Ev�٠ery���graphic�object�in��QXGAP����can�be��Lalive��or�not.�This�is�controlled�by�the�lter��IsAlive�.�Being��Lalive��means�that���the���object�can���be�used�for�further�operations.�If�for�e�٠xample�the�user�closes�a�windo��w�by�a�mouse�operation�the���corresponding��graphic�sheet�object�is�no�longer��Lalive�.�������3�S12���̟��^�I���IsAlive(�?��Lgobj��)���"�F���This��lter�controls�if�a�graphic�object�is��Lalive�,�meaning�that�it�can�be�used�for�further�graphic�operations.��N8�The��follo��wing�operations�apply�to�graphic�sheets:�������3�S13���̟��^�I���Close(�?��Lsheet�n�)����O���The��graphic��sheet��Lsheet�A��is�closed�which�means�that�the�corresponding�windo��w�is�closed�and�the�sheet�becomes��Lnot���alive�.�������3�S14���̟��^�I���Resize(�?��Lsheet�.�,��Lwidth�,��Lheight�n�)�?$I�O���The��U�Lwidth��and��Lheight�d�of�the�sheet��Lsheet��are�changed.�That�does��Hnot��automatically�mean�that�the�windo��w�size�is���changed.��It�may�also�happen�that�only�the�scrollbars�are�changed.�������3�S15���̟��^�I���WindowId(�?��Lsheet�n�)�y
�A���Ev�٠ery��graphic�sheet�has�a�unique�number���,�its��Lwindow�id�E�.�This�is�mainly�used�internally��Y�.�������3�S16���̟��^�I���SetTitle(�?��Lsheet�.�,��Ltitle��)�^���O���Ev�٠ery�'2graphic�'3sheet�has�a�title�which�appears�some��where�on�the�windo��w��Y�.�It�is�initially�set�via�the�call�to�the�constructor����GraphicSheet���and�can�be�changed�later�with�this�operation.�����&������38��Z�LChapter��6.�Gr�٠aphic�Sheets�-�Basic�gr�aphic�oper�ations���p���������3�S17���̟��^�I���SaveAsPS(�?��Lsheet�.�,��Llename��)�L���O����Sa���v�٠es��the�graphics�in�the�sheet��Lsheet���as�postscript�into�the�le��Llename�,�which�is�o�v�erwritten,�if�it�e�xists.���Ӎ����3�S18���̟��^�I���FastUpdate(�?��Lsheet�.�,��L
a��gg��)�U&��O���Switches��the��UseFastUpdate��~�lter�for�the�sheet��Lsheet���to�the�boolean�v��alue�of��L
a��gg�.�If�this�lter�is�set�for�a�sheet,�the���screen�U'is�no�U&longer�updated�completely�if�a�graphic�object�is�mo�٠v�ed�U'or�deleted.�Y���gou�should�call��FastUpdate(�?��Lsheet�.�,���true�?�)���before�you�start�lar���ge�rearrangements�of�the�graphic�objects�and��FastUpdate(��Lsheet�.�,�false�)��at�the�end.���[��P6.2��Graphic��&Objects�in�Sheets��k���All�!\graphics�within�!]graphic�sheets�are�so�called�graphic�objects.�The�٠y�are��QGAP�!D�objects�in�the�cate�٠gory��IsGraphicOb-���ject�.���These�objects�are�link��ged���internally�to�the�actual�graphics�within�the�windo��w��Y�.�Y���gou�can�modify�these�objects�via���certain��Zoperations��Ywhich�leads�to�the�corresponding�change�of�the�real�graphics�on�the�screen.�The�types�of�graphic���objects���supported�in��QXGAP��;�are:�box�٠es,�circles,�discs,�diamonds,�rectangles,�lines,�te�xts,�v�ertices�and�connections.���V����ertices��3are��4compound�objects�consisting�of�a�circle,�rectangle�oder�diamond�with�a�short�te�٠xt�inside.�The�٠y�remem-���ber�D�their�connections�to�other�v�٠ertices.�That�means�that�if�for�e�xample�the�position�of�a�v�erte�x�is�changed,�the�line���which��mak��ges�the�connection��to�some�other�v�٠erte�x��is�also�changed�automatically��Y�.�F�٠or�e��v�ery�graphic�object��there�is�a���constructor��which�has�the�same�name�as�the�graphic�object�(e.g.��Box��is�the�constructor�for�box�٠es).�������3�S1���̟��^�I���IsGraphicObject(�?��Lgobj��)�W��C����This��is�the�cate�٠gory�in�which�all�graphic�objects�are.���[��HConstructors:�������3�S2���̟��^�I���Box(�?��Lsheet�.�,��Lx���,��Ly�,��Lw�,��Lh��)�T���O�����������36�I���Box(�?��Lsheet�.�,��Lx���,��Ly�,��Lw�,��Lh�,��Ldefaults��)�*�Q�O����creates�!�a�!�ne��w�graphic�object,�namely�a�lled�black�box,�in�the�graphic�sheet��Lsheet�O��and�returns�a��QGAP�!��record�describing���this��object.�The�four�corners�of�the�box�are��(��Lx��xG�A;�����Ly��H�)�,��(��Lx���'�+��8��Lw���`�A;�����Ly���)�,��(��Lx���'�+��8��Lw���`�A;�����Ly��T(�+��8��Lh��8��)�,�and��(��Lx��xG�A;�����Ly���+��8��Lh��8��)�.��ش�Note��that�the�box�is���Lw��d`�+�8�1��pix�٠el�wide�and���Lh��	���+�1��pix�٠els�high.��ص�If���a���record��Ldefaults��is�gi��v�٠en�and�contains�a�component��color��of�v��alue��Lcolor�:��,�the�function�w��gorks�lik�e���the�rst�v�٠ersion���of���Box�,�e�٠xcept�that�the�color�of�the�box�will�be��Lcolor�:��.�See�6.3�for�ho��w�to�select�a��Lcolor��.���See��6.4�for�a�list�of�operations�that�apply�to�box�٠es.���Note�s�that�s��Reshape��for�box�٠es�tak��ges�three�parameters,�namely�the�box�object,�the�ne��w�width,�and�the�ne��w�height�of�the���box.���ԍ����3�S3���̟��^�I���Circle(�?��Lsheet�.�,��Lx���,��Ly�,��Lr�z��)�W��O�����������36�I���Circle(�?��Lsheet�.�,��Lx���,��Ly�,��Lr�:��,��Ldefaults��)�,�%�O����creates��2a�ne��w�graphic��3object,�namely�a�black�circle,�in�the�graphic�sheet��Lsheet� A�and�returns�a��QGAP���record�describing���this��object.�The�center�of�the�circle�is��(��Lx��xG�A;�����Ly��H�)��and�the�radius�is���Lr�����.���If���a���record��Ldefaults��is�gi��v�٠en�and�contains�a�component��color��of�v��alue��Lcolor�:��,�the�function�w��gorks�lik�e���the�rst�v�٠ersion���of��(�Circle�,��)e�٠xcept�that�the�color�of�the�circle�will�be��Lcolor�:��.�See�6.3�for�ho��w�to�select�a��Lcolor�:��.�If�the�record�contains�a���component���width��of�v��alue��Lwidth�,�the�line�width�of�the�circle�is�set�accordingly��Y�.���See��6.4�for�a�list�of�operations�that�apply�to�circles.��ص�Note��that��Reshape��for�circles�tak��ges�tw�o�parameters,�namely�the�circle�object,�and�the�ne��w�radius�of�the�circle.���Ӎ����3�S4���̟��^�I���Disc(�?��Lsheet�.�,��Lx���,��Ly�,��Lr�z��)�a�~�O�����������36�I���Disc(�?��Lsheet�.�,��Lx���,��Ly�,��Lr�:��,��Ldefaults��)�7Z�O����creates�_�a�ne��w�graphic�object,�_�namely�a�disc�(a�black�lled�circle),�in�the�graphic�sheet��Lsheet����and�returns�a��QGAP�_��record���describing��this�object.�The�center�of�the�disc�is��(��Lx��xG�A;�����Ly��H�)��and�the�radius�is���Lr�����.�����'�W�����LSection��2.�Gr�٠aphic�Objects�in�Sheets�7�_�39���p�����If���a���record��Ldefaults��is�gi��v�٠en�and�contains�a�component��color��of�v��alue��Lcolor�:��,�the�function�w��gorks�lik�e���the�rst�v�٠ersion���of���Disc�,�e�٠xcept�that�the�color�of�the�disc�will�be��Lcolor�:��.�See�6.3�for�ho��w�to�select�a��Lcolor��.��(7�See��6.4�for�a�list�of�operations�that�apply�to�discs.��(6�Note��that��Reshape��for�discs�tak��ges�tw�o�parameters,�namely�the�disc�object,�and�the�ne��w�radius.��ܲ�����3�S5���̟��^�I���Diamond(�?��Lsheet�.�,��Lx���,��Ly�,��Lw�,��Lh��)�?���O�����������36�I���Diamond(�?��Lsheet�.�,��Lx���,��Ly�,��Lw�,��Lh�,��Ldefaults��)��]�O����creates�E�a�E�ne��w�graphic�object,�namely�a�black�diamond,�in�the�graphic�sheet��Lsheet�s��and�returns�a��QGAP�E��record�describing���this��object.�The�left�corner�of�the�diamond�is��(��Lx��xG�A;�����Ly��H�)�,�the�others�are��(��Lx���'�+��8��Lw���`�A;�����Ly��T(�D��8��Lh��8��)�,��(��Lx���+��8��Lw���`�A;�����Ly��T(�+��8��Lh��8��)�,�and��(��Lx���+�8�2��Lw�����A;�����Ly��H�)�.���If���a���record��Ldefaults��is�gi��v�٠en�and�contains�a�component��color��of�v��alue��Lcolor�:��,�the�function�w��gorks�lik�e���the�rst�v�٠ersion���of�.[�Diamond�,�.Ze�٠xcept�that�the�color�of�the�diamond�will�be��Lcolor�:��.�See�6.3�for�ho��w�to�select�a��Lcolor�:��.�If�the�record�contains���a��component��width��with�inte�٠ger�v��alue��Lwidth�,�the�line�width�is�set�accordingly��Y�.��(6�See��6.4�for�a�list�of�operations�that�apply�to�diamonds.���Note��that���Reshape��for�diamonds�tak��ges�three�parameters,�namely�the�diamond�object,�and�the�ne��w��Lwidth��and��Lheight����v��alues.��ܱ�����3�S6���̟��^�I���Rectangle(�?��Lsheet�.�,��Lx���,��Ly�,��Lw�,��Lh��)�58��O�����������36�I���Rectangle(�?��Lsheet�.�,��Lx���,��Ly�,��Lw�,��Lh�,��Ldefaults��)�
c�O����creates�/�a�/�ne��w�graphic�object,�namely�a�black�rectangle,�in�the�graphic�sheet��Lsheet�]��and�returns�a��QGAP�/��record�describing���this��object.�The�four�corners�of�the�box�are��(��Lx��xG�A;�����Ly��H�)�,��(��Lx���'�+��8��Lw���`�A;�����Ly���)�,��(��Lx���'�+��8��Lw���`�A;�����Ly��T(�+��8��Lh��8��)�,�and��(��Lx��xG�A;�����Ly���+��8��Lh��8��)�.��(6�Note��that�the�rectangle�is���Lw��d`�+�8�1��pix�٠el�wide�and���Lh��	���+�1��pix�٠els�high.���If���a���record��Ldefaults��is�gi��v�٠en�and�contains�a�component��color��of�v��alue��Lcolor�:��,�the�function�w��gorks�lik�e���the�rst�v�٠ersion���of�>1�Rectangle�,�>0e�٠xcept�that�the�color�of�the�rectangle�will�be��Lcolor�:��.�See�6.3�for�ho��w�to�select�a��Lcolor�:��.�If�the�record���contains��a�component��width��with�inte�٠ger�v��alue��Lwidth�,�the�line�width�is�set�accordingly��Y�.���See��6.4�for�a�list�of�operations�that�apply�to�rectangles.��(6�Note��
that��	�Reshape��for�rectangles�tak��ges�three�parameters,�namely�the�rectangle�object,�and�the�ne��w��Lwidth��and��Lheight����v��alues.��ܲ�����3�S7���̟��^�I���Line(�?��Lsheet�.�,��Lx���,��Ly�,��Lw�,��Lh��)�Ox��O�����������36�I���Line(�?��Lsheet�.�,��Lx���,��Ly�,��Lw�,��Lh�,��Ldefaults��)�%MT�O����creates�o�a�o�ne��w�graphic�object,�namely�a�black�line,�in�the�graphic�sheet��Lsheet����and�returns�a��QGAP�o��record�describing�this���object.��The�line�has�the�end�points��(��Lx��xG�A;�����Ly��H�)��and��(��Lx���'�+��8��Lw���`�A;�����Ly��T(�+��8��Lh��8��)�.���If���a���record��Ldefaults��is�gi��v�٠en�and�contains�a�component��color��of�v��alue��Lcolor�:��,�the�function�w��gorks�lik�e���the�rst�v�٠ersion���of�e�Line�,�ee�٠xcept�that�the�color�of�the�line�will�be��Lcolor�:��.�See�6.3�for�ho��w�to�select�a��Lcolor�:��.�If�the�record�contains�a���component��;�width��with��<inte�٠ger�v��alue��Lwidth�,�the�line�width�is�set�accordingly��Y�.�If�the�record�contains�a�component����label���with�a�string�v��alue��Llabel���,�a�te�٠xt�object�is�attached�as�a�label�to�the�line.��(6�See��6.4�for�a�list�of�operations�that�apply�to�lines.���Note���that����Reshape��for�lines�tak��ges�three�parameters,�namely�the�line�object,�and�the�ne��w��Lw��and��Lh��v��alue.��Change��for���lines��in�contrast�tak��ges���v�٠e�parameters,�namely�the�line�object�and�all�four�coordinates�lik�e�in�the�original�call.��ܱ�����3�S8���̟��^�I���Text(�?��Lsheet�.�,��Lfont��,��Lx���,��Ly�,��Lstr�z��)�@���O�����������36�I���Text(�?��Lsheet�.�,��Lfont��,��Lx���,��Ly�,��Lstr�:��,��Ldefaults��)�qQ�O����creates�Pa�Pne��w�graphic�object,�namely�the�string��Lstr����as�a�black�te�٠xt,�in�the�graphic�sheet��Lsheet�~�and�returns�a��QGAP�O��record���describing��this�object.�The�te�٠xt�has�the�baseline�of�the�rst�character�at��(�Lx���A;����Ly�)�.��(6�If���a���record��Ldefaults��is�gi��v�٠en�and�contains�a�component��color��of�v��alue��Lcolor�:��,�the�function�w��gorks�lik�e���the�rst�v�٠ersion���of���Text�,�e�٠xcept�that�the�color�of�the�te�xt�will�be��Lcolor�:��.�See�6.3�for�ho��w�to�select�a��Lcolor��.���See��6.4�for�a�list�of�operations�that�apply�to�te�٠xts.�����(�������40��Z�LChapter��6.�Gr�٠aphic�Sheets�-�Basic�gr�aphic�oper�ations���p������Note��`that��Reshape��for�te�٠xts�tak��ges�tw�o�parameters,�namely�the��_te�٠xt�object,�and�the�ne��w�font.�Use��Relabel��to�change���the��string�of�the�te�٠xt.��N8��HOperations��f��or�graphic�objects:�������3�S9���̟��^�I���Connection(�?��Lverte���x���,��Lverte�x�G��)�HC�O�����������36�I���Connection(�?��Lverte���x���,��Lverte�x���,��Ldefaults��)���O��N8�Connects���tw��go�v�٠ertices�with�a�line.�The�second�v��ariation�can�get�a��Ldefaults��record�for�the�actual�line.�The�same�entries���as��in�the��Ldefaults��record�for�lines�are�allo��wed.�������3�S10���̟��^�I���Disconnect(�?��Lverte���x���,��Lverte�x�G��)�HC�O��N8�Deletes��connection�between�tw��go�v�٠ertices.�������3�S11���̟��^�I���Draw(�?��Lobject�n�)��)+�O���This��operation�(re-)dra�٠ws�a�graphic�object�on�the�screen.�Y���gou��normally�do�not�need�to�call�this�yourself.�But�in�some���rare��cases�of�object�o�٠v�erlaps��you�could�nd�it�useful.�������3�S12���̟��^�I���Delete(�?��Lsheet�.�,��Lobject�n�)�`nq�O�����������36�I���Delete(�?��Lobject�n�)��1�O��N8�Deletes��Wa��Xgraphic�object.�Calls��Destroy��rst,�so�the�graphic�object�is�no�more��Lalive��afterw��gards.�The�object�is�deleted���from��the�list�of�objects�in�its�graphic�sheet.�There�is�no�w��gay�to�reacti��v�ate��such�an�object�afterw�ards.�������3�S13���̟��^�I���Destroy(�?��Lobject�n�)�zi4�O��N8�Destro��gys�h�a�h�graphic�object.�It�disappears�from�the�screen�and�will�not�be��Lalive��an�٠y�more�after�this�call.�Note�that��Lobject����is����Hnot����deleted�from�the�list�of�objects�in�its�graphic�sheet��Lsheet�.�.�This�mak��ges�it�possible�to��Revive��it�ag��7ain.�In�order�to���delete���Lobject���from��Lsheet�.�,�use��Delete(�?��Lsheet��,��Lobj��)�,��which�calls��Destroy��for��Lobj�.�������3�S14���̟��^�I���Revive(�?��Lobject�n�)��1�O��N8�Note�E�that�E��Lobject�s��must�be�in�the�list�of�objects�in�its�graphic�sheet!�So�this�is�only�possible�for��Destroyed�,�not�for����Deleted���graphic�objects.�������3�S15���̟��^�I���Move(�?��Lobject�.�,��Lx���,��Ly��)�l@P�O��N8�Changes��the�position�of�a�graphic�object�absolutely��Y�.�It�must�be��Lalive��and�will�be�mo�٠v�ed��at�once�on�the�screen.�������3�S16���̟��^�I���MoveDelta(�?��Lobject�.�,��Ldx���,��Ldy��)�H_�O���Changes��the�position�of�a�graphic�object�relati��v�٠ely��Y�.�It�must�be��Lalive��and�will�be�mo�v�ed�at�once�on�the�screen.�������3�S17���̟��^�I���PSString(�?��Lobject�n�)�u)7�O���Creates�c�a�postscript�c�string�which�describes�the�graphic�object.�Normally�you�do�not�need�to�call�this�because�it�is�only���used��internally�if�the�user�e�٠xports�the�whole�graphic�sheet�to�encapsulated�postscript.�������3�S18���̟��^�I���PrintInfo(�?��Lobject�n�)�o�:�O���This��operation�prints�deb���ugging�info�about�a�graphic�object.�������3�S19���̟��^�I���Recolor(�?��Lobject�.�,��Lcol�B��)�c�k�O���Changes��the�color�of�a�graphic�object.�See�6.3�for�ho��w�to�select�a��Lcolor�:��.�������3�S20���̟��^�I���Reshape(�?��Lobject�.�,�...�)�`)C�O���Changes��the��shape�of�a�graphic�object.�The�parameters�depend�on�the�type�of�the�object.�See�the�descriptions�of�the���constructors��for�the�actual�usage.�����)
������LSection��3.�Color��gs�in�XGAP�^���41���p���������3�S21���̟��^�I���\in��N8��This��Winx�operation�needs�a�v�٠ector�of�tw��go�inte�gers�to�its��Xleft�and�a�graphic�object�to�its�right�(\v�ector�of�tw��go�inte�gers"���means��wa�list�of�tw��go��xinte�٠gers�e.g.��[15,9]�).�It�determines,�if�the�position�gi��v�en�by��xthe�tw��go�inte�ger�coordinates�is�inside���(e.g.��for�box�٠es)�or�on�(e.g.�for�lines)�the�graphic�objects.�Returns�a�boolean�v��alue.�������3�S22���̟��^�I���Change(�?��Lobject�.�,�...�)�ei@�O���Changes��the��shape�of�a�graphic�object.�The�parameters�depend�on�the�type�of�the�object.�See�the�descriptions�of�the���constructors��for�the�actual�usage.�������3�S23���̟��^�I���Relabel(�?��Lobject�.�,��Lstr�z��)�e�O���Changes��the�label�of�a�graphic�object.�The�second�ar���gument�must�al��gw�ays��be�a�string.�������3�S24���̟��^�I���SetWidth(�?��Lobject�.�,��Lw��)�c���O���Changes��the�line�width�of�the�graphic�object.�The�line�width��Lw��must�be�a�relati��v�٠ely�small�inte�ger��s8.�������3�S25���̟��^�I���Highlight(�?��Lverte���x�G��)�pEi�O�����������36�I���Highlight(�?��Lverte���x���,��L
a��gg��)�V��O���In���the���rst�form�this�operation�switches�the�highlighting�status�of�a�v�٠erte�x���to�ON.�In�the�second�form�the��L
a��gg��decides���about��ON�or�OFF��37.�Highlighting�normally�means�a�thick��ger�line�width�and�a�change�in�color��s8.��N8��P6.3��Color��s��&in�XGAP��N8��Depending��oon�the�type��nof�display�you�are�using,�there�may�be�more�or�fe��wer�colors�a���v�ailable.��nY���gou�should�write�your���programs�dxal��gw�ays�such�that�the�٠y�w�ork�e��v�٠en�on�monochrome�dwdisplays.�In��QXGAP�dq�these�dierences�can�be�read�o�from���the��so�called�\color�model".�The�global�v��ariable��COLORS��contains�all�a���v�ailable�information.�������3�S1���̟��^�I���COLORS��G��V���The�zUv��ariable�zV�COLORS�zS�contains�a�list�of�a���v��ailable�colors.�If�an�entry�is��false��this�color�is�not�a���v��ailable�on�your�screen.���Possible��colors�are:��"black"�,��"white"�,��"lightGrey"�,��"dimGrey"�,��"red"�,��"blue"�,�and��"green"�.��N8�The�V�follo��wing�e�٠xample�opens�a�ne�w�V�graphic�sheet�(see�6.1.1),�puts�a�black�box�(see�6.2.2)�onto�it�and�changes�its���color��s8.��Ob�٠viously�you�need�a�color�display�for�this�e�xample.����9��gap>�?�sheet�:=�GraphicSheet(�"Nice�Sheet",�300,�300�);����9�<graphic�?�sheet�"Nice�Sheet">����9�gap>�?�box�:=�Box(�sheet,�10,�10,�290,�290�);����9�<box>����9�gap>�?�Recolor(�box,�COLORS.green�);����9�gap>�?�Recolor(�box,�COLORS.blue�);����9�gap>�?�Recolor(�box,�COLORS.red�);����9�gap>�?�Recolor(�box,�COLORS.lightGrey�);����9�gap>�?�Recolor(�box,�COLORS.dimGrey�);����9�gap>�?�Close(sheet);��N8��The�component��model��is�al��gw�ays�a��string.�It�is��monochrome�,�if�the�display�does�not�support�colors.�It�is��gray��if�we���only��ha���v�٠e��gray�shades�and��colorX����if�we�ha���v�٠e�colors.�The�\X"���can�be�either�3�or�5,�depending�on�ho��w�man�٠y�colors���are��a���v��ailable.�����*�����42��Z�LChapter��6.�Gr�٠aphic�Sheets�-�Basic�gr�aphic�oper�ations���p������P6.4��Operations��&f��uor�Graphic�Objects��l���The���follo��wing���table�gi�v�٠es�an���o�v�ervie��w�o�v�er�the�supported���graphic�objects�and�the�functions�which�are�applicable���respecti��v�٠ely:���׍Here��are�the�supported�graphic�object�types:��Box�,��Circle�,��Disc�,��Diamond�,��Rectangle�,��Line�,��Text�,��Vertex�.���These���functions�apply�to�all�graphic�object�types:����Draw�,��Delete�,��Destroy�,��Revive�,��Move�,��MoveDelta�,��PSString�,����PrintInfo�,���ViewObj�,��Recolor�,��Reshape�,��\in�,��WindowId���֍�In��addition,��the�operation��Relabel��applies�to�objects�of�types��Line�,��Text�,�and��Vertex�;�the�operation��SetWidth����applies�Lto�objects�of�types��Diamond�,��Rectangle�,��Circle�,�and�K�Line�.�There�is�also��Change��for�a��Line��and��Highlight����for��a��Vertex�.��	Z��P6.5��Global��&Inf��uormation��l���There��are�some�global�data�structures�which�can�and��should�be�consulted�if�certain�information�is�needed.�The�rst���(about��color�handling)�w��gas�already�described�in�section�6.3.�The�second�is�for�v�٠ertices:���������3�S1���̟��^�I���VERTEX��G��V��8�This��globally�bound�record�contains�the�follo��wing�components:��7��circle����$�inte�٠ger��v��alue�for�the�v�erte�x�type�\circle"����diamond����$�inte�٠ger��v��alue�for�the�v�erte�x�type�\diamond"����rectangle����$�inte�٠ger��v��alue�for�the�v�erte�x�type�\rectangle"����radius����$�radius��in�pix�٠els�of�a�v�erte�x�on�the�screen���֍�diameter����$�diameter��in�pix�٠els�of�a�v�erte�x�on�the�screen��'��The��third�structure�is�about�the�a���v��ailable�fonts.�������3�S2���̟��^�I���FONTS�����V��7�This���globally���bound�record�has�the�follo��wing�components:��tiny�,��small�,��normal�,��large�,��huge��and��fonts�.�The�rst���5��are��	itself�records�each�for�one�a���v��ailable�font.�The�٠y�ha���v�e��components��name��for�the�name�of�the�font�and��fontInfo�,���which���is�a�list�of�3�inte�٠gers.�The�rst�is�the�maximal���size�of�a�character�abo�v�e�the�baseline�in�pix�els,�the�second�is�the���maximal��osize��nof�a�character�belo��w�the�baseline�in�pix�٠els,�and�the�third�is�the�width�in�pix�٠els�of��Hall��characters,�because���it��is�al��gw�ays��assumed,�that�the�fonts�are�non-proportional.�������3�S3���̟��^�I���FontInfo(�?��Lfont�n�)�~
w�O��7�Returns�b�the�information�about�the�font��Lfont�.�.�The�result�is�a�triple�b�of�inte�٠gers.�The�rst�number�is�the�maximal�size�of�a���character��`abo�٠v�e��athe�baseline�in�pix�٠els,�the�second�is�the�maximal�size�of�a�character�belo��w�the�baseline�in�pix�٠els,�and���the�hCthird�is�the�width�in�pix�٠els�of��Hall��characters,�hBbecause�it�is�al��gw�ays�hCassumed,�that�the�fonts�are�non-proportional.�Use���this��function�rather�than�accessing�the�component��fontInfo��of�a�font�object�directly!��	Z�There��is�another�global�structure:���������3�S4���̟��^�I���BUTTONS����V���This��record��contains�the�follo��wing�components:��left��and��right��contain�a�number�for�the�left�resp.�right�mouse���b���utton.���shift��and��ctrl��contain�codes�for�the�respecti��v�٠e�k��ge�ys�on�the�k��ge�yboard.��	Z�Y���gou��should�al��gw�ays��use�these�global�data�instead�of�hardwiring�an�٠y�inte�gers�into�your�code.�����+'n�����p�����������M7����jL<�NUser�
a�Comm��G�unication����8N8��QXGAP�^'�has�^`tw��go�main�means�to�communicate�with�the�user��s8.�The�rst�is�the�normal�command�processing:�The�user���types�v commands,�v!the�٠y�are�transmitted�to��QGAP�,�are�e�٠x�ecuted,�v and�produce�output,�which�is�displayed�in�the�command���windo��w��Y�.��The�second��is�the�mouse�and�the�other�parts�of�the�graphical�user�interf��gace.�This�latter�part�can�be�di��vided���into��menus,�mouse�e��v�٠ents,�dialogs,�and�popups.��N8�Menus����$Most��Vof�the�windo��ws��Wof��QXGAP��
�ha���v�٠e�menus.�The�user�can�select�entries�in�them�and�this�information�is����$transformed���to���a�function�call�in��QGAP�.�Menu�entries�can�be�check��ged�or�not,�so�menus�can�also�display����$information.��N8�Mouse��Ev�٠ents����$A� 
mouse� 6e��v�٠ent�is�the�pressing�or�releasing�of�a�mouse�b���utton,� 7together�with�the�position�where�the�mouse����$pointer�czis�in�cythe�e�٠xact�moment�this�happens�and�the�state�of�certain�k��ge�٠yboard�k�e�٠ys�cy(mainly�shift�and�control).����$Such��<e��v�٠ents��;also�trigger��QGAP�� �function�calls�and�the�corresponding�functions�can�react�on�these�e��v�٠ents�and����$for��e�٠xample�w��gait�for�others.���Dialogs����$Dialogs���are���windo��ws�which�display�information�and�into�which�the�user�can�enter�information�for�e�٠xample����$in��form�of�te�٠xt�elds.���Popups����$Popups�f�are�f�special�dialogs�where�the�user�can�not�type�te�٠xt�b���ut�can�only�click�on�certain�b���uttons.��QXGAP����$�has�u�so�called�u�\te�٠xt�selectors"�which�are�a�con���v�٠enient�construct�to�display�te�٠xtual�information�and�let�the�user����$select��parts�of�it.���p�Most���of���those�graphical�objects�ha���v�٠e�corresponding��QGAP����objects,�which�are�created�by�constructors�and�can�be�used���later��on�by�operations.��N8��P7.1��Men�޹us��&in�Graphic�Sheets�������3�S1���̟��^�I���Menu(�?��Lsheet�.�,��Ltitle�,��Lents�,��Lfncs��)�>Ū�O�����������36�I���Menu(�?��Lsheet�.�,��Ltitle�,��Lzipped���)�O��O��N8��Menu�
�returns�
a�pulldo��wn�menu.�It�is�attached�to�the�sheet��Lsheet�;"�under�the�title��Ltitle�.�In�the�rst�form��Lents��is�a�list�of���strings�bconsisting�of�the�names�of�bthe�menu�entries.��Lfncs��is�a�list�of�functions.�The�٠y�are�called�when�the�corresponding���menu�ىentry�is�selected�by�the�user��s8.�The�parameters�the�٠y�يget�are�the�graphic�sheet�as�rst�parameter���,�the�menu�object���as�Rsecond,�Sand�the�name�of�the�selected�entry�as�third�parameter��s8.�In�the�second�form�the�entry�names�and�functions���are��6all��5in�one�list��Lzipped�M�in�alternating�order���,�meaning�rst�a�menu�entry��Y�,�then�the�corresponding�function�and�so�on.���Note�{
that�{	you�can�delete�menus�b���ut�it�is�not�possible�to�modify�them,�once�the�٠y�are�attached�to�the�sheet.�If�a�name�of���a�{Cmenu�{Dentry�be�٠gins�with�a�minus�sign�or�the�list�entry�in��Lents��is�not�bound,�a�dummy�menu�entry�is�generated,�which���can��sort�the�menu�entries�within�a�menu�in�blocks.�The�corresponding�function�does�not�matter��s8.�������3�S2���̟��^�I���Check(�?��Lmenu�,��Lentry�,��L
a��gg��)�Ok��O��N8�Modies���the�\check��ged"���state�of�a�menu�entry��Y�.�This�is�visualized�by�a�small�check�mark�behind�the�menu�entry��Y�.��Lmenu����must��be�a�menu�object,��Lentry��the�string�e�٠xactly�as�in�the�denition�of�the�menu,�and��L
a��gg��a�boolean�v��alue.�����,4퍟���44�F�$�LChapter��7.�User�Communication���p���������3�S3���̟��^�I���Enable(�?��Lmenu�,��Lentry�,��L
a��gg��)�J+��O�����������36�I���Enable(�?��Lmenu�,��Lboollist�n�)�Y�i�O���ٍModies�L1the�L2\enabled"�state�of�a�menu�entries.�Only�enabled�menu�entries�can�be�selected�by�the�user��s8.�Disabled�menu���entries�Αare�visualized�by�gre�٠y�or�shaded�letters�in�the�menu.�Β�Lmenu��must�be�a�menu�object,��Lentry��the�string�e�xactly�as���in��^the��_denition�of�the�menu,�and��L
a��gg��a�boolean�v��alue.��Lentry��can�also�be�a�natural�number�meaning�the�inde�٠x�of�the���corresponding��	menu��entry��Y�.�In�the�second�form��Lboollist�
�must�be�a�list�where�each�entry�has�either�a�boolean�v��alue�or���the�צv��alue��fail��The�list�must�be�as�long�as�the�number�ץof�menu�entries�in�the�menu��Lmenu�.�All�menu�entries�where�a���boolean��v��alue�is�pro�٠vided�are�enabled�or�disabled�according�to�this�v�alue.����See�A�the�e�٠xplanation�of��GraphicSheet��(6.1.2)�for�the�\Close"�A�e��v�ent,�which�occurs�when�the�user�selects�the�menu���entry���close�?�graphic�sheet��in�the��Sheet��menu.��D��P7.2��Mouse��&Events������When��a��mouse�e��v�٠ent�occurs,�this�is�communicated�to��QGAP���via�a�function�call�which�in�turn�triggers�a�callback.�As���described�_�in�_�6.1.1�to�6.1.8�the�follo��wing�callback�k��ge�٠ys�are�predened�as�reactions�on�mouse�e��v�٠ents:��LeftPBDown�,����RightPBDown�,���ShiftLeftPBDown�,��ShiftRightPBDown�,��CtrlLeftPBDown�,��CtrlRightPBDown�.���Note���that�when���your�function�gets�called,�the�mouse�b���utton�will�still�be�pressed.�So�it�can�react�and�for�e�٠xample�w��gait���for��the�release.�There�is�an�easy�w��gay�to�nd�out�about�the�state�of�the�mouse�b���uttons�after�the�e��v�٠ent:���}�����3�S1���̟��^�I���WcQueryPointer(�?��Lid���)�g��F���ٍ�Lid��must���be���a��WindowId��of�an��QXGAP����sheet.�This�function�returns�a�v�٠ector�of�four�inte�٠gers.�The�rst�tw��go�are�the���coordinates��Uof�the��Tmouse�pointer�relati��v�٠e�to�the��QXGAP��K�sheet.�V����alues�outside�the�windo��w�are�represented�by��D�1�.�The���third��belement��cis�a�number�where�the�pressed�b���uttons�are�coded.�If�no�mouse�b���utton�is�pressed,�the�v��alue�is�zero.����BUTTONS.left�
��is�added�to�
�the�v��alue,�if�the�left�mouse�b���utton�is�pressed�and��BUTTONS.right��is�added,�if�the�right���mouse���b���utton���is�pressed.�The�fourth�v��alue�codes�the�state�of�the�shift�and�control.�Here�the�v��alues��BUTTONS.shift����and���BUTTONS.ctrl��are�used.����This��function�is�used�in�������3�S2���̟��^�I���Drag(�?��Lsheet�.�,��Lx���,��Ly�,��Lbt��,��Lfunc��)�A�6�O���ٍCall��this��function�when�a�b���utton�e��v�٠ent�has�occurred,�so�the�b���utton��Lbt�K��is�still�pressed.�It�w��gaits�until�the�user�releases���the���mouse�b���utton���and�calls��Lfunc��for�e��v�٠ery�change�of�the�mouse�position�with�the�ne��w�x�and�y�position�as�tw��go�inte�٠ger���parameters.�|^Y���gou�can�|_implement�a�dragging�procedure�in�this�w��gay�as�in�the�follo��wing�e�٠xample:�(we�assume�that�a����LeftPBDown���e��v�٠ent�just�occurred�and�x�and�y�contain�the�current�mouse�pointer�position):���~�����storex�?�:=�x;������storey�?�:=�y;������box�?�:=�Rectangle(sheet,x,y,0,0);������if�?�Drag(sheet,x,y,BUTTONS.left,����B��function(x,y)����M9�local�?�bx,by,bw,bh;����M9�if�?�x�<�storex�then����W��bx�?�:=�x;����W��bw�?�:=�storex�-�x;����M9�else����W��bx�?�:=�storex;����W��bw�?�:=�x�-�storex;����M9�fi;����M9�if�?�y�<�storey�then����W��by�?�:=�y;����W��bh�?�:=�storey�-�y;����M9�else�����-Bˍ����LSection��4.�P��37opups���C�45���p������W���by�?�:=�storey;����W��bh�?�:=�y�-�storey;����M9�fi;����M9�if�?�bx�<>�box!.x�or�by�<>�box!.y�then����W��Move(box,bx,by);����M9�fi;����M9�if�?�bw�<>�box!.w�or�bh�<>�box!.h�then����W��Reshape(box,bw,bh);����M9�fi;����B��end)�?�then����#9�the�?�box�had�at�one�time�at�least�a�certain�size����#9�...�?�work�with�box�...������else����#9�the�?�box�was�never�big�enough,�we�do�nothing������fi;������Delete(box);����P7.3��Dialogs�������3�S1���̟��^�I���Dialog(�?��Ltype�,��Lte���xt�n�)�n���O��N8�creates���a���dialog�box�and�returns�a��QGAP����object�describing�it.�There�are�currently�tw��go�types�of�dialogs:�A���le�selector���dialog��(called��Filename�)�and�a�dialog�type�called��OKcancel�.��Lte���xt���is�a�te�٠xt�that�appears�as�a�title�in�the�dialog�box.�������3�S2���̟��^�I���Query(�?��Lobj��)���$�O�����������36�I���Query(�?��Lobj�,��Ldefault�n�)�jJ��O��N8�Puts��a�dialog��on�screen.�Returns��false��if�the�user�clicks�\Cancel"�and�a�string�v��alue�or�lename,�if�the�user�clicks���\OK",��depending�on�the�type�of�dialog.��Ldefault���is�an�optional�initialization�v��alue�for�the�string.��N8��P7.4��P��z�opups�������3�S1���̟��^�I���PopupMenu(�?��Lname�,��Llabels��)�P{/�O��N8�creates���a�ne��w���popup�menu�and�returns�a��QGAP����object�describing�it.��Lname��is�the�title�of�the�menu�and��Llabels��is�a�list�of���strings��for�the�entries.�Use��Query��to�actually�put�the�popup�on�the�screen.�������3�S2���̟��^�I���Query��N8��actually���puts�a�popup���on�screen.��Query��returns�the�string�of�the�selected�entry�or��false��if�the�user�clicks�outside�the���popup.��See�also��Query��for�dialogs�in�7.3.2.�������3�S3���̟��^�I���TextSelector(�?��Lname�,��Llist�.�,��Lb���uttons��)�$v:�O��N8�creates��ea�ne��w�te�٠xt�selector�and�returns�a��QGAP��O�object�describing�it.��Lname��is�a�title.��Llist�t�is�an�alternating�list�of�strings���and�x�functions.�x�The�strings�are�displayed�and�can�be�selected�by�the�user��s8.�If�this�happens�the�corresponding�function�is���called���with�tw��go�parameters.�The�rst�is�the�te�٠xt�selector�object�itself,�the�second�the�string�that�is�selected.�A���selected���string��is�highlighted�and�all�other�strings�are�reset�at�the�same�time.�Use��Reset��to�reset�all�entries.��N8��Lb���uttons�.D�is�an�analogous�list�for�the�b�uttons�that�are�displayed�.Eat�the�bottom�of�the�te�٠xt�selector��s8.�The�te�xt�selector�is���displayed�Nimmediately�Mand�stays�on�screen�until�it�is�closed�(use�the��Close��operation).�Buttons�can�be�enabled�and���disabled��by�the��Enable��operation�and�the�string�of�a�te�٠xt�can�be�changed�via��Relabel�.�������3�S4���̟��^�I���Enable(�?��Lsel���,�Lbt�.�,�L
a��gg��)�����������36�I���Enable(�?��Lsel���,�Lbtinde���x���,�L
a��gg��)��N8��Enables��or�disables�the�b���utton��Lbt���(string�v��alue)�or��Lbtinde�x����(inte�٠ger�inde�x)�of�the�te�xt�selector��Lsel���,�according�to��L
a��gg�.�����.Q2�����46�F�$�LChapter��7.�User�Communication���p���������3�S5���̟��^�I���Relabel(�?��Lsel���,��Llist�n�)�����������36�I���Relabel(�?��Lsel���,��Linde���x���,��Lte�xt�n�)��N8��Changes�
lthe�strings�that�
mare�displayed�in�the�te�٠xt�selector��s8.�In�the�rst�form��Llist�8{�must�be�a�list�of�strings.�The�second���form��only�changes�the�te�٠xt�at�inde�x��Linde���x���.�������3�S6���̟��^�I���SetName(�?��Lsel���,��Linde���x���,��Lstring��)����Ev�٠ery��#string�in��"a�te�xt�selector�has��"a�name.�The�names�are�stored�in�the�list��names��component�of�the�te�٠xt�selector��s8.�So����sel!.names���ist�a�list�containing��the�names.�The�names�are�initialized�with�the�strings�from�the�creation�of�the�te�٠xt���selector��s8.�������3�S7���̟��^�I���Reset(�?��Lsel�B��)����Resets��all�strings�of�a�te�٠xt�selector���,�such�that�the�y�are�no�longer�selected.�������3�S8���̟��^�I���Close(�?��Lsel�B��)����Closes��a�te�٠xt�selector��s8.�It�v��anishes�from�screen.��N8�Note��that�you�ha���v�٠e�access�to�the�indices�and�names�of�strings�and�b�uttons:�������3�S9���̟��^�I���IndexOfSelectedText����Whene��v�٠er� �the�user�clicks�on�a�te�xt� �in�a�te�xt�selector���,�the�global�v��ariable�is�set�to�the�inde�x� �of�the�te�xt�in�the�te�xt�selector��s8.�������3�S10���̟��^�I���IndexOfSelectedButton����Whene��v�٠er���the�user���clicks�on�a�b���utton�in�a�te�xt���selector���,�the�global�v��ariable�is�set�to�the�inde�٠x�of�the�b���utton�in�the�te�٠xt���selector��s8.�����/]7�����p���Լ\�������M8�����w��NGraphic���P���rosets����<@Ս�This��chapter�describes�the�part�of��QXGAP��that�allo��ws�the�user�to�con���v�٠eniently�display�posets�graphically��Y�.��N8��P8.1��Intr��uoduction��N8��A���poset���is�just���a�partially�ordered�set.�T��37o�display�posets�reasonably�in�a�generic�w��gay�we�need�additional�structure.�So���for�#��QXGAP�#��a�#�poset�comes�in�so�called�le��v�٠els.�At�all�times�in�the�life�of�a�graphic�poset�there�are�only�nitely�man�٠y���le��v�٠els�B�and�B�the�y�are�totally�ordered,�B�that�is�for�tw��go�le��v�٠els�we�can�al��gw�ays�say��Y�,�which�B�one�is�\higher".�The�position�within���the��graphic�sheet�re
ects�this�ordering.��N8�The�Xle��v�٠els�Xare�parametrized�by�\le�v�٠el�Xparameters",�which�can�be�an�٠y��QGAP�X�object�b���ut�must�be�unique�within�a�graphic���poset.��A�le��v�٠el�is�al��gw�ays��accessed�by�its�le�v�٠el�parameter�and��Hnot��by�its�number!���The�5v�٠ertices�6in�each�le��v�el�6are�grouped�into�classes.�F�٠or�e�xample�for�6graphic�subgroup�lattices�v�٠ertices�in�the�same�class���correspond�$�to�conjug��7ate�subgroups,�v�٠ertices�$�in�the�same�le��v�el�ha���v�e�the�same�size�or�inde�x�$�in�the�whole�group.�The���classes��Zwithin�each�le��v�٠el�are�parametrized�by��[\class�parameters",�which�can�be�an�y��QGAP��A�object�b���ut�must�be�unique���within��a�le��v�٠el.�A�class�within�a�le�v�٠el�is�al��gw�ays��accessed�by�its�class�parameter�and��Hnot��by�its�number!���The��user�must�supply�a���Hpartial�order��for�all�of�his�le��v�٠els.�The�mechanism�to�achie��v�٠e�this�is�the�operation��Compar-���eLevels�,���which���compares�tw��go�le��v�٠el�parameters.�The�current��Htotal�order��of�the�le��v�٠els�is�al��gw�ays���a�renement�of�the���partial��order��s8.�The�user�can�permute�le��v�٠els,�if�that�does�not�contradict�the�partial�order�dened�by��CompareLevels�.���A���v�٠erte�x���in�the�poset�that���is�\contained�in"�another�v�٠erte�x���in�the�poset�order�(we�speak�of�\inclusion"�lik��ge�in�the�case���of�K�subgroup�K�lattices)�must�al��gw�ays�K�be�in�a�le��v�٠el�that�is�lo��wer�on�the�screen,�because�there�is�only�a�connecting�line���representing��the��inclusion.�This�is�achie��v�٠ed�by�the�f��gact,�that�inclusions�of�v�٠ertices�are�communicated�to��QXGAP�t�just���by�t�creating�an�t�\edge"�between�them.�This�means,�that�the�v�٠erte�x�in�t�the�\lo��wer"�le�v�٠el�t�lies�in�the�v�erte�x�t�in�the�\higher"���le��v�٠el.��There�must�not�be�edges�between�v�ertices�in�the�same�le��v�el!���The���terminology���\v�٠ertices"�and�\edges"�comes�from�the�f��gact,�that�a�graphic�poset�is�just�a�special�case�of�a�graphic���graph,���where���v�٠ertices�can�be�placed�an�٠ywhere�in�the�sheet�and�edges�ha���v�٠e�nothing�to�do�with�inclusion.�It�is�planned���that�?�also�a�graphic�graph�library�is�implemented�in��QXGAP�?P�b���ut�it�is�not�yet�operational.�Ho��we�v�٠er�?�e�v�erything�?�which���could��_be�done�not��`only�for�posets�b���ut�at�the�same�time�for�graphs�is�implemented�already�within�the�poset�package.���This��e�٠xplains�the�usage�of�\graph"�in�man�y�places�where�you�w��gould�otherwise�e�xpect�\poset".���What�xyou�ha���v�٠e�xto�do�to�use�the�graphic�poset�package�is�create�a�graphic�poset�(a�special�instance�of�a�graphic�sheet),���create��some��le��v�٠els�and�perhaps�classes�within�them.�Then�you�can�create�v�٠ertices�and�edges,�to�encode�the�ordering.���Ev�٠erything��else�is�done�by�the�library��Y�.�See�the�ne�xt�section�for�details�about�the�a���v��ailable�operations.���Note�h�that�h�we�chose�a�functional�approach�for�certain�decision�procedures.�This�means�that�for�e�٠xample�if�you�create�a���v�٠erte�x���and�do���not�specify�a�position,�an�operation�(�ChoosePosition�)�is�called�to�determine�the�actual�position.�Y���gou���can�WRuse�WSthe�generic�routines�or�install�your�o��wn�methods�for�all�of�those�decisions.�In�this�case�you�just�set�a�ne��w�lter���for��Zyour�posets�and�o�٠v�erload��[the��Zgeneric�methods�by�special�routines�for�objects�with�your�ne��w�lter�set.�Y���gou�can�see���this��approach�in�the�e�٠xample�in�8.3.�����0cn�����48�_��LChapter��8.�Gr�٠aphic�P��37osets���p������P8.2��Operations��a���HConstructors:��������3�S1���̟��^�I���GraphicPoset(�?��Lname�,��Lwidth�,��Lheight�n�)��1�O�����creates���a�ne��w�graphic�poset�which�is�a�specialization�of�a�graphic�graph�mainly�because�per�denition�a�poset�comes���in��\le��v�٠els"�or�\layers".�This�leads�to�some�algorithms�that�are�more�ecient�than�the�general�ones�for�graphs.�������3�S2���̟��^�I���CreateLevel(�?��Lposet�.�,��Lle�٠velpar�am�?��)�1�/�O�����������36�I���CreateLevel(�?��Lposet�.�,��Lle�٠velpar�am�,�?��Llpte���xt�n�)��!�O�����A��le��v�٠el��in�a�graphic�poset�can�be�thought�of�as��a�horizontal�slice�of�the�poset.�It�has�a�y�coordinate�of�the�top�of�the���le��v�٠el�.|relati�v�ely�.|to�the�graphic�sheet�and�a�height.�Ev�ery�class�of�v�ertices�in�a�graphic�poset�is�in�a�le��v�el.�The�le��v�els���are�%totally�ordered�&by�their�y�coordinate.�No�tw��go�v�٠ertices�which�are�included�in�each�other�are�in�the�same�le��v�٠el.�A���v�٠erte�x�}�containing�}�another�one�is�al��gw�ays�}�\higher"�on�the�screen,�meaning�in�a�\higher"�le��v�٠el.�Ev�ery�}�le��v�el�has�}�a�unique���le��v�٠el�@�parameter���,�@�which�can�be�an�٠y��QGAP�@��object.�The�user�is�responsible�for�all�methods�where�a�le��v�٠el�parameter�occurs���as�cparameter�cand�is�not�just�an�inte�٠ger��s8.�There�is�NO�b��QGAP��object�crepresenting�a�le��v�٠el�which�is�visible�for�the�user���of���posets.�All�communication�about���le��v�٠els�goes�via�the�le�v�٠el�parameter��s8.��CreateLevel��creates���a�ne�w�le�v�٠el�with�le�v�٠el���parameter�:�Lle�٠velpar�am��in�;the�graphic�poset��Lposet�.�.�It�returns��fail��if�there�is�already�a�le��v�٠el�with�a�le�v�٠el�;parameter�which���is��considered�\equal"�to��Lle�٠velpar�am���by��CompareLevels��or��Lle�٠velpar�am���if�e��v�٠erything�went�well.��ӊ�The��second�method�allo��ws�to�specify�which�te�٠xt�appears�for�the�le�v�٠el�at�the�right�edge�of�the�sheet.�������3�S3���̟��^�I���CreateClass(�?��Lposet�.�,��Lle�٠velpar�am�,�?��Lclasspar�am��)����O�����A��1class��4in��3a�graphic�poset�is�a�collection�of�v�٠ertices�within�a�le��v�٠el�which�belong�together�in�some�sense.�Ev�٠ery�v�erte�x���in��a�graphic�poset�is�in�a��class,�which�in�turn�belongs�to�a�le��v�٠el.�Ev�ery�class�in�a��le��v�el�has�a�unique�class�parameter���,���which���can���be�an�٠y��QGAP����object.�The�user�is�responsible�for�all�methods�where�a�class�parameter�occurs�as�parameter���and�`�is�`�not�just�an�inte�٠ger��s8.�There�is�NO�`o�QGAP�`p�object�representing�a�class�which�is�visible�to�the�user�of�posets.�All���communication���about���classes�goes�via�the�class�parameter��s8.��CreateClass��creates�a�ne��w�class�in�the�le��v�٠el�with�le��v�٠el���parameter����Lle�٠velpar�am��in�the���graphic�poset��Lposet�.�.�It�returns��fail��if�there�is�no�le��v�٠el�with�le��v�٠el�parameter��Lle�velpar�am����or�~�there�~�is�already�a�class�in�this�le��v�٠el�with�class�parameter��Lclasspar�٠am�.��CreateClass��returns��Lclasspar�٠am��otherwise.��������3�S4���̟��^�I���Vertex(�?��Lgr�٠aph�,��Ldata�[,��Linf�u��]�)�C=��O���Creates���a�ne��w�v�٠erte�x.����Linf���is�a�record�in�which�additional���info�can�be�supplied�for�the�ne�w�v�٠erte�x.���F�or�general�graphic���graphs��only�the��label�,��color�,���shape�,��x��and��y��components�are�applicable,�the�٠y�contain�a�short�label�which�will�be���attached��nto�the��mv�٠erte�x,��nthe�color���,�the�shape�(�circle�,��diamond�,�or��rectangle�)�and�the�coordinates�relati��v�٠e�to�the���graphic��sheet�respecti��v�٠ely��Y�.��F�or��graphic�posets�also�the�components��levelparam��and��classparam��are�e��v�aluated.��If���the���component��hints����is�bound�in��Linf�<��it�must�be�a�list�of�x�coordinates�which�will�be�deli��v�٠ered�to��ChoosePosition����to���help�placement.�Those���x�coordinates�will�be�the�coordinates�of�other�v�٠ertices�related�to�the�ne��w�one.�All�v��alues�of���record���components���which�are�not�specied�will�be�determined�by�calling�some�methods�for�graphic�graphs�or�posets.���Those��[are:��Z�ChooseLabel��for�the�label,��ChooseColor��for�the�color���,��ChooseShape��for�the�shape,��ChoosePosition����for���the�position,����ChooseLevel��for�the�le��v�٠el�parameter���,��ChooseClass��for�the�class�parameter���,�and��ChooseWidth��for���the��line�width��of�the�v�٠erte�x.���Vertex��returns��fail��if�no�v�٠erte�x��w��gas�created.�This�happens�only��Y�,�if�one�of�the�choose���functions�t�return�t��fail��or�no�possible�v��alue,�for�e�٠xample�a�non-e�٠xisting�le��v�el�t�or�class�parameter��s8.��Vertex��returns�a���v�٠erte�x��object�if�e��v�٠erything�went�well.��������3�S5���̟��^�I���Edge(�?��Lgr�٠aph�,��Lverte���x1�,��Lverte�x2��)�;���O�����������36�I���Edge(�?��Lgr�٠aph�,��Lverte���x1�,��Lverte�x2�,��Ldefaults��)�iw�O�����Adds�a�ne��w�edge�from��Lverte���x1��to��Lverte���x2�.�F�٠or�posets�this�puts�one�of�the�v�٠ertices�into�the�other�as�a�maximal�sub�٠v�erte�x.���So�p�either��Lverte���x1�p��must�lie�in�a�\higher"�le��v�٠el�than��Lverte���x2��or�the�other�w��gay�round.�There�must�be�no�v�٠erte�x�p�\between"����Lverte���x1��$�and��Lverte�x2�.��#If�the�tw��go�v�٠ertices�are�in�the�same�le��v�٠el�or�one�is�already�indirectly�included�in�the�other��fail��is���returned,���otherwise����true�.�That�means,�that�in�the�case�where�one�of�the�tw��go�v�٠ertices�is�already�a�maximal�subobject���of��
the��	other���,�then�the�method�does�nothing�and�returns��true�.�The�v��ariation�with�a��Ldefaults��record�just�hands�this�o�٠v�er���to��the�lo��wer�le�v�٠els,�meaning�that�the�line�width�and�color�are�modied.�����1t�����LSection��2.�Oper�٠ations�s5��49���p������HDestructors:��,n�����3�S6���̟��^�I���Delete(�?��Lposet�.�,��Lverte���x1�,��Lverte�x2��)�����������36�I���Delete(�?��Lposet�.�,��Lverte���x1�)�����������36�I���Delete(�?��Lposet�.�,��Lle�٠velpar�am�,�?��Lclasspar�am��)�����These��three�v��ariants�of�the��Delete��operation�delete�an�edge,�a�v�٠erte�x��and�a�class�respecti�v�٠ely��Y�.�������3�S7���̟��^�I���DeleteLevel(�?��Lposet�.�,��Lle�٠velpar�am�?��)�1�/�O����The��
follo��wing��	method�applies�to�a�le��v�٠el.�It�returns��fail��if�no�le��v�٠el�with�le��v�٠el�parameter��Lle�٠velpar�am��is��
in�the�poset.���Otherwise�t�the�le��v�٠el�is�deleted�and�all�classes�within�it�t�are�also�deleted!��DeleteLevel��returns��true��if�the�le�v�٠el�is���successfully��deleted.�����HOperations��to�change�a�poset:�������3�S8���̟��^�I���ResizeLevel(�?��Lposet�.�,��Lle�٠velpar�am�,�?��Lheight�n�)�
�8�O����Changes��^the�height�of�a��_le��v�٠el.�The�y�coordinate�can�only�be�changed�by�permuting�le��v�٠els,�see�belo�w��Y�.�Attention:�This���can�'�increase�'�the�size�of�the�sheet!�Returns��fail��if�no�le��v�٠el�with�le��v�٠el�parameter��Lle�٠velpar�am�'��e�xists�and�'��true��otherwise.�������3�S9���̟��^�I���MoveLevel(�?��Lposet�.�,��Lle�٠velpar�am�,�?��Lposition��)�Rj�O����Mo�٠v�es�3a�3le��v�el�to�3another�position.��Lposition��is�an�absolute�inde�٠x�in�the�list�of�le��v�٠els.�The�le��v�٠el�with�le��v�٠el�parameter����Lle�٠velpar�am����will���be�at�the�position��Lposition��after�the�operation.�This�is�only�allo��wed�if�the�ne��w�ordering�is�compatible���with�Fsthe�partial�order�gi��v�٠en�by��CompareLevels��and�if�there�is�no�connection�of�a�v�erte�x�in�the�mo�ving�le��v�el�with���another��-le��v�٠el�with�which�it�is�interchanged.�So��Lle�velpar�am��is�compared�with�all�le��v�el�parameters�between�the�old�and���the�
�ne��w�position.�
�If�there�is�a�contradiction,�nothing�happens�and�the�method�returns��fail�.�If�e��v�٠erything�w��gorks�the���operation��returns��true�.�������3�S10���̟��^�I���Relabel(�?��Lgr�٠aph�,��Lverte���x���,��Llabel�B��)�:��O�����������36�I���Relabel(�?��Lgr�٠aph�,��Lverte���x�G��)�X���O�����������36�I���Relabel(�?��Lposet�.�,��Lverte���x1�,��Lverte�x2�,��Llabel�B��)�Ź�O�����������36�I���Relabel(�?��Lposet�.�,��Lverte���x1�,��Lverte�x2��)�.H)�O����Changes�4�the�label�of�4�the�v�٠erte�x�4��Lverte���x�<@�or�the�edge�between��Lverte���x1��and��Lverte�x2�.�This�must�be�a�4�short�string.�In�the���method�$where�no�$label�is�specied�the�ne��w�label�is�chosen�functionally:�the�operation��ChooseLabel��is�called.�Returns����fail���if�an�error�occurs�and��true��otherwise.�This�operation�already�e�٠xists�in��QXGAP��for�graphic�objects.��,o�����3�S11���̟��^�I���Move(�?��Lgr�٠aph�,��Lverte���x���,��Lx��,��Ly��)�J_�O�����������36�I���Move(�?��Lgr�٠aph�,��Lverte���x�G��)�hG��O���Mo�٠v�es��v�erte�x��Lverte���x���.�F�or�posets�coordinates�are�relati��v�e�to�the�le��v�el��of�the�v�erte�x.��Lverte���x���must�be�a�v�erte�x�object�in����Lgr�٠aph�.��eIf��fno�coordinates�are�specied�the�operation��ChoosePosition��is�called.��Move��returns��fail��if�an�error�occurs���and���true��otherwise.�This�operation�already�e�٠xists�in��QXGAP��for�graphic�objects.��,n�����3�S12���̟��^�I���Reshape(�?��Lgr�٠aph�,��Lverte���x�G��)�X���O�����������36�I���Reshape(�?��Lgr�٠aph�,��Lverte���x���,��Lshape��)�6���O���Changes��the�shape�of��the�v�٠erte�x���Lverte���x���.��Lverte�x�%r�must�be�a��v�٠erte�x��object�in�the�graph�or�poset��Lgr�٠aph�.�F�or�the�method���where���no�shape�is�specied���the�ne��w�shape�is�chosen�functionally:��ChooseShape��is�called�for�the�corresponding�data.����Reshape����returns��fail����if�an�error�occurs�and��true��otherwise.�This�operation�already�e�٠xists�in��QXGAP����for�graphic���objects.��,o�����3�S13���̟��^�I���Recolor(�?��Lgr�٠aph�,��Lverte���x�G��)�X���O�����������36�I���Recolor(�?��Lgr�٠aph�,��Lverte���x���,��Lcolor�z��)�8�	�O�����������36�I���Recolor(�?��Lposet�.�,��Lverte���x1�,��Lverte�x2�,��Lcolor�z��)�q9�O�����������36�I���Recolor(�?��Lposet�.�,��Lverte���x1�,��Lverte�x2��)�.H)�O���Changes�n�the�color�of�the�n�v�٠erte�x�n��Lverte���x�vM�or�the�edge�between��Lverte�x1��and��Lverte�x2�.��Lverte�x�vN�must�be�a�v�٠erte�x�n�object�in����Lgr�٠aph�.���F�or�the�method�where���no�color�is�specied�the�ne��w�color�is�chosen�functionally:��ChooseColor��is�called�for�����2������50�_��LChapter��8.�Gr�٠aphic�P��37osets���p������the�cucorresponding�data.��Recolor��returns�ct�fail��if�an�error�occurs�and��true��otherwise.�This�operation�already�e�٠xists�in����QXGAP���for�graphic�objects.�������3�S14���̟��^�I���SetWidth(�?��Lgr�٠aph�,��Lverte���x1�,��Lverte�x2�,��Lwidth��)���O�����������36�I���SetWidth(�?��Lgr�٠aph�,��Lverte���x1�,��Lverte�x2��)�&���O��N8�Changes�the�line�width�of�an�edge.��Lverte���x1��and��Lverte���x2��must�be�v�٠ertices�in�the�graph��Lgr�٠aph�.�F�or�the�method�where���no�+�line�+�width�is�specied�the�width�is�chosen�functionally:��ChooseWidth��is�called�for�the�corresponding�data�pair��s8.���Returns���fail��if�an�error�occurs�and��true��otherwise.�This�operation�already�e�٠xists�in��QXGAP��for�graphic�objects.�������3�S15���̟��^�I���Highlight(�?��Lgr�٠aph�,��Lverte���x�G��)�N��O�����������36�I���Highlight(�?��Lgr�٠aph�,��Lverte���x���,��L
a��gg��)�4���O��N8�Changes���the�highlighting�status�of�the�v�٠erte�x����Lverte���x���.��Lverte�x�a�must���be�a�v�٠erte�x���object�in��Lgr�٠aph�.�F�or�the�method�where���no�df
ag�is�specied�the�dene��w�status�is�chosen�functionally:��ChooseHighlight��is�called�for�the�corresponding�data.���Returns���fail��if�an�error�occurs�and��true��otherwise.�This�operation�already�e�٠xists�in��QXGAP��for�graphic�objects.�������3�S16���̟��^�I���Select(�?��Lgr�٠aph�,��Lverte���x���,��L
a��gg��)�Da��O�����������36�I���Select(�?��Lgr�٠aph�,��Lverte���x�G��)�]���O��N8�Changes���the���selection�state�of�the�v�٠erte�x����Lverte���x���.��Lverte�x����must�be���a�v�٠erte�x���object�in��Lgr�٠aph�.�The�
ag�determines�whether���the��*v�٠erte�x��)should�be�selected�or�deselected.�This�operation�already�e�٠xists�in��QXGAP���for�graphic�objects.�The�method���without��
ags�assumes��true�.�������3�S17���̟��^�I���DeselectAll(�?��Lgr�٠aph��)�fJm�O��N8�Deselects��all�v�٠ertices�in�the�graph�or�poset��Lgr�aph�.�������3�S18���̟��^�I���Selected(�?��Lgr�٠aph��)�v
d�O���Returns��a�(shallo��w-)cop��gy�of�the�set�of�all�selected�v�٠ertices.��N8��HOperations��f��or�decisions:�������3�S19���̟��^�I���ChooseLabel(�?��Lgr�٠aph�,��Ldata��)�J��O�����������36�I���ChooseLabel(�?��Lgr�٠aph�,��Ldata�,��Ldata��)�-�+�O���This�:Soperation�is�called�during�v�٠erte�x�:Sor�edge�creation,�if�the�:Rcaller�didn'���t�specify�a�label�for�the�v�٠erte�x�:Sor�edge.�It���has�-4to�-3return�a�short�string�which�will�be�attached�to�the�v�٠erte�x.�If�-4it�returns��fail��the�ne��w�v�٠erte�x�-4is�not�generated!���The���generic�method�just���returns�the�empty�string,�so�no�label�is�generated.�This�method�is�also�called�in�the��Relabel����method��without�label�parameter��s8.�������3�S20���̟��^�I���ChooseLevel(�?��Lposet�.�,��Ldata��)�Lv�O���This�_coperation�is�called�_dduring�v�٠erte�x�_ccreation,�if�the�caller�didn'���t�specify�a�le��v�٠el�to�which�the�v�erte�x�_dbelongs.�It�has�to���return��a�le��v�٠el�parameter�which�e�xists�in�the�poset.�If�it�returns��fail��the�ne��w�v�erte�x�is�not�generated!�������3�S21���̟��^�I���ChooseClass(�?��Lposet�.�,��Ldata�,��Lle�٠velpar�am�?��)�E��O���This��9operation�is��8called�during�v�٠erte�x��9creation,�if�the�caller�didn'���t�specify�a�class�to�which�the�v�٠erte�x�belongs.��9It�has���to�jreturn�a�class�i�parameter�which�e�٠xists�in�the�poset�in�the�le��v�٠el�with�parameter��Lle�velpar�am�.�If�it�i�returns��fail��the�ne��w���v�٠erte�x��is�not�generated!�������3�S22���̟��^�I���ChooseColor(�?��Lgr�٠aph�,��Ldata��)�J��O�����������36�I���ChooseColor(�?��Lgr�٠aph�,��Ldata1�,��Ldata2��)�#�+�O���This�~�operation�~�is�called�during�v�٠erte�x�~�or�edge�creation.�It�has�to�return�a�color��s8.�If�it�returns��fail��the�ne��w�v�٠erte�x�is�~�not���generated!��It�is�also�called�in�the��Recolor��method�without�color�parameter��s8.�����3�$�����LSection��2.�Oper�٠ations�s5��51���p���������3�S23���̟��^�I���ChooseHighlight(�?��Lgr�٠aph�,��Ldata��)�5��O��N8�This�6operation�is�called�during�v�٠erte�x�6creation.�It�has�to�6return�a�
ag�which�indicates,�whether�the�v�٠erte�x�6is�highlighted���or�x"not.�x!If�it�returns��fail��the�ne��w�v�٠erte�x�is�x"not�generated!�It�is�also�called�in�the��Highlight��method�without�
ag���parameter��s8.�������3�S24���̟��^�I���ChoosePosition(�?��Lposet�.�,��Ldata�,��Lle�٠velpar�am�,�?��Lclasspar�am�,��Lhints��)����O�����������36�I���ChoosePosition(�?��Lgr�٠aph�,��Ldata��)�:B��O���This�D�operation�is�called�during�v�٠erte�x�D�creation.�It�has�to�D�return�a�list�with�tw��go�inte�٠gers:�the�coordinates.�F�or�posets���those��1are�relati��v�٠e�to��0the�le�v�٠el�the�v�erte�x�resides�in.�If��0it�returns��fail��the�ne��w�v�erte�x�is��0not�generated!�The�parameters����Lle�٠velpar�am���and��Lclasspar�٠am��are�le��v�el�and�class�parameters�respecti��v�ely��Y�.�������3�S25���̟��^�I���ChooseShape(�?��Lgr�٠aph�,��Ldata��)�J��O���This�boperation�is�called�during�v�٠erte�x�bcreation.�It�has�to�creturn�a�string�out�of�the�follo��wing�list:��circle�,��diamond�,����rectangle�.��If�it�returns��fail��the�ne��w�v�٠erte�x��is�not�generated!�������3�S26���̟��^�I���ChooseWidth(�?��Lgr�٠aph�,��Ldata��)�J��O�����������36�I���ChooseWidth(�?��Lgr�٠aph�,��Ldata1�,��Ldata2��)�#�+�O���This��.operation�is�called�during�v�٠erte�x��-or��.edge�creation.�It�has�to�return�a�line�width.�If�it�returns��fail��the�ne��w�v�٠erte�x���or��edge�is�not�generated!�This�is�also�called�by�the��SetWidth��operation�without�width�parameter��s8.�������3�S27���̟��^�I���CompareLevels(�?��Lposet�.�,��Lle�٠velpar�am1�,�?��Lle�velpar�am2��)��ܭ�O���p�Compare��ytw��go��zle��v�٠el�parameters.�-1�means�that�the�le��v�٠el�with�parameter��Lle�٠velpar�am1��is��y\higher",�1�means�that�the�one���with��parameter��Lle�٠velpar�am2���is�\higher",�0�means�that�the�٠y�are�equal.��fail��means�that�the�y�are�not�comparable.��N8��HOperations��to�get�inf��ormation:�������3�S28���̟��^�I���WhichLevel(�?��Lposet�.�,��Ly��)�_
�O��N8�Determines��the�le��v�٠el�in�which�position��Ly��is.��WhichLevel��returns�the�le�v�٠el�parameter�or��fail�.�������3�S29���̟��^�I���WhichClass(�?��Lposet�.�,��Lx���,��Ly��)�P��O���Determines�>�a�>�class�with�a�v�٠erte�x�which�>�contains�the�position��(��Lx��xG�A;�����Ly��H�)�.�The�rst�class�found�is�tak��gen.��WhichClass��returns���a�Q�list�Q�with�the�le��v�٠el�parameter�as�rst�and�the�class�parameter�as�second�element.��WhichClass��returns��fail��if�no�such���class��is�found.�������3�S30���̟��^�I���WhichVertex(�?��Lgr�٠aph�,��Lx���,��Ly��)�Ha��O�����������36�I���WhichVertex(�?��Lgr�٠aph�,��Ldata��)�J��O�����������36�I���WhichVertex(�?��Lgr�٠aph�,��Ldata�,��Lfunc��)�.J��O��N8�Determines��1a�v�٠erte�x��1which�contains�the�position��(��Lx��xG�A;�����Ly��H�)�.��WhichVertex��0�returns�a�v�٠erte�x.��1In�the�third�form�the�function����Lfunc�.�must�tak��ge�tw�o�parameters��Ldata�.�and�the�data�entry�of�a�v�٠erte�x�.in�question.�It�must�return��true��or��false�,�according���to���the�right���v�٠erte�x���being�found�or�not.�The�function�can�for�e�٠xample�consider�just�one�record�component�of�data���records.���WhichVertex��returns��fail��in�case�no�v�٠erte�x��is�found.�������3�S31���̟��^�I���WhichVertices(�?��Lgr�٠aph�,��Lx���,��Ly��)�=��O�����������36�I���WhichVertices(�?��Lgr�٠aph�,��Ldata��)�?���O�����������36�I���WhichVertices(�?��Lgr�٠aph�,��Ldata�,��Lfunc��)�#ʑ�O��N8�Determines��1the�list�of�v�٠ertices�which�contain�the�position��2�(��Lx��xG�A;�����Ly��H�)�.��WhichVertices��returns�a�list.�In�the�third�form���the�A�function�A��Lfunc��must�tak��ge�tw�o�A�parameters��Ldata��and�the�data�entry�of�a�v�٠erte�x�A�in�question.�It�must�return��true��or����false�,�_.according�_-to�the�v�٠erte�x�_.belonging�into�the�result�or�not.�The�function�can�for�e�٠xample�consider�just�one�record���component��of�data�records.�Returns�the�empty�list�in�case�no�v�٠erte�x��is�found.�����4�͍����52�_��LChapter��8.�Gr�٠aphic�P��37osets���p���������3�S32���̟��^�I���Levels(�?��Lposet�n�)�����O��N8�Returns��the�list�of�le��v�٠el�parameters�in�descending�order�meaning�highest�to�lo�west.�������3�S33���̟��^�I���Classes(�?��Lposet�.�,��Lle�٠velpar�am�?��)�F�#�O���Returns��the�list�of�class�parameters�in�the�le��v�٠el�with��parameter��Lle�velpar�am�.��Classes��Returns��fail��if�no�le��v�el�with���parameter���Lle�٠velpar�am��e�xists.�������3�S34���̟��^�I���Vertices(�?��Lposet�.�,��Lle�٠velpar�am�,�?��Lclasspar�am��)�ׅ�O���Returns�:�the�:�list�of�v�٠ertices�in�the�class�with�parameter��Lclasspar�٠am��in�the�le��v�٠el�with�parameter��Lle�٠velpar�am�.�:�Returns����fail���if�no�le��v�٠el�with�parameter��Lle�velpar�am��or�no�class�with�parameter��Lclasspar�am��e�xists�in�the�le��v�el.�������3�S35���̟��^�I���Maximals(�?��Lposet�.�,��Lverte���x�G��)�U�F�O���Returns��the�list�of�maximal�sub�٠v�ertices��in��Lverte���x���.�������3�S36���̟��^�I���MaximalIn(�?��Lposet�.�,��Lverte���x�G��)�P{I�O���Returns��the�list�of�v�٠ertices,�in�which��Lverte���x����is�maximal.�������3�S37���̟��^�I���PositionLevel(�?��Lposet�.�,��Lle�٠velpar�am�?��)�'
5�O���Returns�O�the�O�y�position�of�the�le��v�٠el�relati�v�٠e�to�O�the�graphic�sheet�and�the�height.�Returns��fail��if�no�le��v�٠el�with�parameter����Lle�٠velpar�am���e�xists.��N8��HOperations��f��or�user�communication:�������3�S38���̟��^�I���Menu(�?��Lgr�٠aph�,��Ltitle�,��Lentrylist�.�,��Ltypelist��,��Lfunctionslist�n�)��_��O���This�]coperation�already�e�٠xists�in��QXGAP�]*�for�graphic�sheets.�Builds�]da�ne��w�menu�with�title��Ltitle��b���ut�with�information���about�#the�type�"of�the�menu�entry��Y�.�This�information�describes�the�relation�between�the�selection�state�of�the�v�٠ertices���and��the��parameters�supplied�to�the�functions.�It�is�stored�in�the�list��Ltypelist�.�,�which�consists�of�strings.�The�follo��wing���types��are�supported:��N8��forany����$�al��gw�ays��enabled,�generic�routines�don'���t�change�an�٠ything��N8��forone����$�enabled��i�e�٠xactly�one�v�erte�x�is�selected����fortwo����$�enabled��i�e�٠xactly�tw��go�v�ertices�are�selected����forthree����$�enabled��i�e�٠xactly�three�v�ertices�are�selected����forsubset����$�enabled��i�at�least�one�v�٠erte�x��is�selected����foredge����$�enabled��i�a�connected�pair�of�tw��go�v�٠ertices�is�selected����formin2����$�enabled��i�at�least�tw��go�v�٠ertices�are�selected����formin3����$�enabled��i�at�least�three�v�٠ertices�are�selected���p��Lentrylist���and�Q��Lfunctionslist��are�lik��ge�in�the�original�operation�for�Q�graphic�sheets.�The��IsMenu��object�is�returned.�It�is�also���stored��in�the�sheet.�����5������LSection��2.�Oper�٠ations�s5��53���p���������3�S39���̟��^�I���ModifyEnabled(�?��Lgr�٠aph�,��Lfr���om�,��Lto��)�,�B�O��N8�Modies���the�\Enabledness"���of�menu�entries�according�to�their�type�and�number�of�selected�v�٠ertices.�This�operation���w��gorks�w�on�all�menu�entries�of�some�menus:��Lfr���om��is�the�rst�w�menu�to�w�ork�on�and��Lto��the�last�one�(indices).�Only�menus���with��the�property��IsAlive��are�considered.��ModifyEnabled��returns�nothing.�������3�S40���̟��^�I���InstallPopup(�?��Lgr�٠aph�,��Lfunc��)�ER/�O���Installs��>a��?function�that�is�called�if�the�user�clicks�with�the�right�b���utton�on�a�v�٠erte�x.��>The�function�gets�as�parameters:����Lposet�.�,�Lverte���x���,�Lx��,�Ly���(click�position)�������3�S41���̟��^�I���PosetLeftClick(�?��Lposet�.�,��Lx���,��Ly��)�;��O���This���operation�is�called���when�the�user�does�a�left�click�in�the�poset��Lposet�.�.�The�current�pointer�position�is�supplied�in���the�Ǜparameters�ǜ�Lx��B�and��Ly�.�The�generic�method�for��PosetLeftClick��lets�the�user�mo�٠v�e,�Ǜselect�and�deselect�v�٠ertices�or���edges.��An�edge�is�selected�as�pair�of�v�٠ertices.�������3�S42���̟��^�I���PosetCtrlLeftClick(�?��Lposet�.�,��Lx���,��Ly��)�&��O���p�This���operation���is�called�when�the�user�does�a�left�click�in�a�poset��Lposet����while�holding�do��wn�the�control�k��ge�٠y��Y�.�The���current�r_pointer�position�r`is�supplied�in�the�parameters��Lx�z�and��Ly�.�The�generic�method�for��PosetCtrlLeftClick��lets�the���user��8mo�٠v�e,��9select�and�deselect�v�٠ertices�or�edges.�The�dierence�to�the�operation�without�the�control�k��ge�٠y�is,�that�while���selecting�L�the�L�old�v�٠ertices�are�NO���T�L�deselected.�Mo�٠ving�does�not�mo�٠v�e�L�the�whole�class�b���ut�only�one�v�٠erte�x.�This�L�allo��ws���for��permuting�the�v�٠ertices�within�a�class.�An�edge�is�selected�as�pair�of�v�ertices.�������3�S43���̟��^�I���PosetRightClick(�?��Lposet�.�,��Lx���,��Ly��)�5���O��N8�This��#operation�is�called��"when�the�user�does�a�right�click�in�the�graph��Lgr�٠aph�.�The�generic�method�just�nds�the�v�٠erte�x���under�a4the�mouse�pointer�and�a5calls�the��rightclickfunction��of�the�poset�or�graph�which�is�a�component�in�the��QGAP����object.��Note�that�the��rightclickfunction��can�be�called�with��fail��if�no�v�٠erte�x��is�hit.��N8��HOperations��f��or�user�actions:�������3�S44���̟��^�I���UserDeleteVerticesOp(�?��Lsheet�.�,��Lmenu�,��Lentry��)��ח�O���p�This��poperation��ois�called�when�the�user�selects��Delete�?�vertices�.�The�generic�method�actually�deletes�the�selected���v�٠ertices��including�all�their�edges.�������3�S45���̟��^�I���UserDeleteEdgeOp(�?��Lsheet�.�,��Lmenu�,��Lentry��)�׋�O���p�This�E~operation�Eis�called�when�the�user�selects��Delete�?�edge�.�The�generic�method�deletes�the�edge�with�no�further���w��garning!�������3�S46���̟��^�I���UserMergeClassesOp(�?��Lsheet�.�,��Lmenu�,��Lentry��)�W��O���p�This��<operation�is�called��=when�the�user�selects��Merge�?�Classes�.�The�generic�method�w��galks�through�all�le��v�٠els�and���mer���ges��all�classes�that�contain�a�selected�v�٠erte�x.��Afterw��gards��UserRearrangeClasses��is�called.�������3�S47���̟��^�I���UserMagnifyLattice(�?��Lsheet�.�,��Lmenu�,��Lentry��)�W��O���p�This�{Loperation�is�called�when�the�user�selects��Magnify�?�Lattice�.�The�generic�method�scales�e��v�٠erything�by��144�A=�100����including��the�sheet,�all�heights�of�le��v�٠els�and�positions�of�v�ertices.�������3�S48���̟��^�I���UserShrinkLattice(�?��Lsheet�.�,��Lmenu�,��Lentry��)�
���O���p�This���operation�is���called�when�the�user�selects��Shrink�?�Lattice�.�The�generic�method�scales�e��v�٠erything�by�100/144���including��the�sheet,�all�heights�of�le��v�٠els�and�positions�of�v�ertices.�����6Ȼ�����54�_��LChapter��8.�Gr�٠aphic�P��37osets���p���������3�S49���̟��^�I���UserResizeLattice(�?��Lsheet�.�,��Lmenu�,��Lentry��)�
���O���p�This���operation���is�called�when�the�user�selects��Resize�?�Lattice�.�The�generic�method�asks�the�user�for�an�x�and�a�y���f��gactor��and�scales�e��v�٠erything�including�the�sheet,�all�heights�of�le�v�٠els�and�positions�of�v�ertices.�������3�S50���̟��^�I���UserResizeSheet(�?��Lsheet�.�,��Lmenu�,��Lentry��)���O���This�L�operation�is�called�when�the�user�selects��Resize�?�Sheet�.�The�generic�L�method�asks�the�user�for�an�x�and�a�y�pix�٠el���number�<�and�changes�the�width�and�height�of�the�sheet.�No�<�positions�of�le��v�٠els�and�v�ertices�are�changed.�If�the�user�asks���for��trouble�he�gets�it!�������3�S51���̟��^�I���UserMoveLattice(�?��Lsheet�.�,��Lmenu�,��Lentry��)���O���This��8operation�is��7called�when�the�user�selects��Move�?�Lattice�.�The�generic�method�asks�the�user�for�a�pix�٠el�number���and��changes�the�position�of�all�v�٠ertices�horizontally��Y�.�No�positions�of�le��v�els�are�changed.�������3�S52���̟��^�I���UserChangeLabels(�?��Lsheet�.�,��Lmenu�,��Lentry��)�׋�O���This�Q�operation�is�called�when�the�user�selects��Change�?�Labels�.�The�user�is�prompted�for�e��v�٠ery�selected�v�erte�x,�which���label��it�should�ha���v�٠e.�������3�S53���̟��^�I���UserAverageY(�?��Lsheet�.�,��Lmenu�,��Lentry��)�$��O���This�Y:operation�Y9is�called�when�the�user�selects��Average�?�Y�Positions�.�In�Y:all�le��v�٠els�the�a���v�erage�Y9y�coordinate�is�calcu-���lated��and�all�v�٠ertices�are�mo�v�ed�to�this�y�position.�������3�S54���̟��^�I���UserAverageX(�?��Lsheet�.�,��Lmenu�,��Lentry��)�$��O���This���operation���is�called�when�the�user�selects��Average�?�X�Positions�.�The���a���v�٠erage�of�all�x�coordinates�of�the�selected���v�٠ertices��is��calculated.�Then�all�classes�with�a�selected�v�٠erte�x�are��mo�v�ed�such��that�the�rst�selected�v�٠erte�x�in��this�class���has��the�calculated�position�as�x�position.�������3�S55���̟��^�I���UserRearrangeClasses(�?��Lsheet�.�,��Lmenu�,��Lentry��)��ח�O���This�8�operation�8�is�called�when�the�user�selects��Rearrange�?�Classes�.�All�classes�with�a�selected�v�٠erte�x�are�8�rearranged:���The��v�٠ertices�are�lined�up�neatly�one�after�the�other���,�sorted�according�to�their�current�x�position.�������3�S56���̟��^�I���UserUseBlackWhite(�?��Lsheet�.�,��Lmenu�,��Lentry��)�
���O���This��is�called�if�the�user�selects��Use�?�Black�and�White���in�the�menu.�������3�S57���̟��^�I���PosetShowLevels(�?��Lsheet�.�,��Lmenu�,��Lentry��)���O���This��operation��is�called�when�the�user�selects��Show�?�Levels��in�the�menu.�Switches�the�display�of�the�little�box�٠es�for���le��v�٠el��handling�on�and�o.�������3�S58���̟��^�I���PosetShowLevelparams(�?��Lsheet�.�,��Lmenu�,��Lentry��)��ח�O���This�?qoperation�?pis�called�when�the�user�selects��Show�?�Level�Parameters��in�?qthe�menu.�Switches�the�display�of�the���le��v�٠el��parameters�at�the�right�of�the�screen�on�and�o.�������3�S59���̟��^�I���DoRedraw(�?��Lgr�٠aph��)�v
d�O��N8�Redra�٠ws��all�v�ertices�and�connections.�����7������LSection��3.�An�Example�ou��55���p������P8.3��An��&Example��N8��This�8�section�sho��ws�ho�w�to�use�the�poset�package�to�8�display�posets.�The�code�presented�here�is�actually�part�of�the����QXGAP���library�and�mak��ges�up�the�link�to�the�C�MeatAx�٠e.��N8�This��is�the�declaration�part:����9��#############################################################################����9�##����9�#W�
�meataxe.gd�^�XGAP�?�library�Max�Neunhoeffer����9�##����9�#Y�
�Copyright�?�1998,�$��Max�Neunhoeffer,�I�Aachen,�Germany����9�##����9�##�
�This�?�file�contains�declarations�for�MeatAxe�posets����9�##����9�DeclareFilter("IsMeatAxeLattice");����9�#############################################################################����9�##����9�#O�
�GraphicMeatAxeLattice(<name>,�?�<width>,�<height>)�.�creates�graphic�poset����9�##����9�##�
�creates�?�a�new�graphic�MeatAxe�lattice�which�is�a�specialization�of�a����9�##�
�graphic�?�poset.�Those�posets�have�a�new�filter�for�method�selection.����9�##����9�DeclareOperation("GraphicMeatAxeLattice",[IsString,�?�IsInt,�IsInt]);����The��code�only�declares�a�ne��w�lter�and�declares�a�constructor�operation�for�posets�that�lie�in�this�ne�w�lter��s8.��N8�The��implementation:����9��#############################################################################����9�##����9�#W�
�meataxe.gi�^�XGAP�?�library�Max�Neunhoeffer����9�##����9�#Y�
�Copyright�?�1998,�$��Max�Neunhoeffer,�I�Aachen,�Germany����9�##����9�##�
�This�?�file�contains�code�for�MeatAxe�posets����9�##����9�#############################################################################����9�##����9�#M�
�GraphicMeatAxeLattice(<name>,�?�<width>,�<height>)�.�creates�graphic�poset����9�##����9�##�
�creates�?�a�new�graphic�MeatAxe�lattice�which�is�a�specialization�of�a����9�##�
�graphic�?�poset.�Those�posets�have�a�new�filter�for�method�selection.����9�##����9�InstallMethod(�?�GraphicMeatAxeLattice,����#9�"for�?�a�string,�and�two�integers",����#9�true,����#9�[�?�IsString,����-��IsInt,����-��IsInt�?�],����#9�0,�����8�损���56�_��LChapter��8.�Gr�٠aphic�P��37osets���p������9��function(�?�name,�width,�height�)������local�?�P;������P�?�:=�GraphicPoset(name,width,height);������SetFilterObj(P,IsMeatAxeLattice);������return�?�P;����9�end);����9�#############################################################################����9�##����9�#M�
�CompareLevels(<poset>,<levelparam1>,<levelparam2>)�.�?�.�.�.�.�.�.�.�.�.�.����9�##�
�.�?�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�.�compares�two�levelparams����9�##����9�##�
�Compare�?�two�level�parameters.�-1�means�that�<levelparam1>�is�"higher",����9�##�
�1�?�means�that�<levelparam2>�is�"higher",�0�means�that�they�are�equal.����9�##�
�fail�?�means�that�they�are�not�comparable.�This�method�is�for�the�case����9�##�
�if�?�level�parameters�are�integers�and�lower�values�mean�lower�levels����9�##�
�like�?�in�the�case�of�MeatAxe�lattices�of�Michael�Ringe.����9�##����9�InstallMethod(�?�CompareLevels,����#9�"for�?�a�graphic�MeatAxe�lattice,�and�two�integers",����#9�true,����#9�[�?�IsGraphicPosetRep�and�IsMeatAxeLattice,�IsInt,�IsInt�],����#9�0,����9�function(�?�poset,�l1,�l2�)������if�?�l1�<�l2�then����#9�return�?�1;������elif�?�l1�>�l2�then����#9�return�?�-1;������else����#9�return�?�0;������fi;����9�end);��N8��Besides���the���ne��w�constructor�(which�only�adds�a�ne��w�lter)�we�only�ha���v�٠e�to�supply�a�ne��w�method�for�comparison�of���le��v�٠el�u�parameters�u�for�such�posets.�The�le��v�٠els�are�numbered�with�inte�٠ger�numbers�such�that�lo��wer�numbers�are�lo��wer�in���the��lattice.��N8�There���is���a�C���program�in�the�MeatAx�٠e�that�e�٠xports�a�poset�to�a��QGAP����program�which�generates�the�lattice�in�a�graphic���poset�H�sheet.�H�The�user�can�then�interacti��v�٠ely�mo�v�e�H�around�v�٠ertices�and�shrink�or�magnify�le��v�٠els.�He�can�then�e�٠xport�the���resulting��Tlattice�to��Uan�encapsulated�postscript�le.�Note�that�you�need�a�full�installation�of�the�C��IMeatAx�٠e�apart�from����QGAP���to�use�this�feature.���Another��enice��dlittle�e�٠xample�is�in�the��examples��subdirectory�in�the��QXGAP��"�distrib���ution.�It�w��gas�written�by�Thomas���Breuer���(Aachen)���to�demonstrate�the�features�of��QXGAP�.�The�user�gets�a�small�windo��w�with�a�puzzle�and�can�solv�٠e�it���using�:tthe�:smouse.�Y���gou�can�test�this�e�٠xample�by�starting��QXGAP�:b�and��Read�ing�the�le��pkg/xgap/examples/puzzle.g�.���Y���gou��can�do�this�by�using����9��gap>�?�ReadPkg("xgap","examples/puzzle.g");����9�gap>�?�p�:=�Puzzle(4,4);�����9	�`�����p���Լ\�������M9�����.2�NGraphic��
Graphs����<@Ս�In�P�this�v�٠ersion�of�P��QXGAP�P��this�is�not�fully�implemented�and�not�yet�usable.�Only�those�parts�which�are�e�٠xactly�the�same���for��Fgraphic�posets�are�already�written.��EPlease�contact�the�author�if�you�w��gould�lik�e�to�ha���v�٠e��Ecode�to�display�graphs�in���graphic��sheets.�����:
�������p����C�������M10������Nf�NDi���erences��,���yto���XGAP��3����8N8��This���rather�short���chapter�is�intended�for�the�user�who�kno��ws��QXGAP��J�3�well�and�quickly�w��gants�to�kno��w�what�has���changed.�3�So�3�it�co�٠v�ers�mainly�3�those�parts,�where�e�٠xisting�code�using��QXGAP�3��has�to�be�changed.�F�٠or�the�totally�ne��w���features��and�packages�there�are�only�a�fe��w�references�to�the�other�parts�of�the�documentation.��N8��P10.1��Concept��N8��There�<�are�<�tw��go�main�changes�in�the�concept.�The�rst�is�the�migration�to��QGAP�4�with�all�the�bells�and�whistles�lik��ge���object��oriented�design�with��operations,�methods�and�method�selection�via�lters.��QXGAP�4�is�re��written�nearly�totally���with���these���technologies.�This�should�mak��ge�the�reusage�of�code�in�the�future�easier��s8.�One�can�no��w�use�big�parts�of�the���code��of��QXGAP��for�o��wn�structures�by�just�replacing�some�methods�via�o�٠v�erloading.��N8�The��,second��+change�is�that�there�is�no�longer�an�٠y�mathematical�\kno��wledge"�or�algorithm�in��QXGAP�.�It�is�no��w�only�a���front��Eend�and��Da�graphical�user�interf��gace.�All�code�for�nitely�presented�groups�resides�no��w�in�the��QGAP��,�library��Y�.�This���is���a�much�cleaner�concept�and�should�mak��ge�the�management�of�the�source�code�easier��s8.�At�the���same�time��QXGAP����has���become���a�much�more�generic���program.�Operations�for�subgroups�are�for�e�٠xample�no�longer�hard�wired�into��QXGAP����case��by�case�b���ut�there�is�generic�code�which�can�be�adapted�just�by�hacking�a�fe��w�tables.���These�T�generalizations�made�some�sacrices�necessary��Y�,�because��QXGAP�T��does�no�longer�kno��w�an�٠ything�about�the�math-���ematics��it��is�displaying.�It�may�for�e�٠xample�happen�that��QXGAP����does�no�longer�adapt�its�beha���viour�to�the�amount�of���data���that���is�kno��wn�about�some�nitely�presented�groups.�The�reason�for�this�is,�that�the�generic�poset�routines�cannot���kno��w�axthat�aythe�v�٠ertices�stand�for�groups�at�all.�So�sometimes�one�has�to�trigger�the�comparison�of�subgroups�of�nitely���presented��groups�manually�(see�section�5.12.4�for�a�description�ho��w�to�do�this).���In��	the�old��QGAP�3�v�٠ersion�of���QXGAP�γ�there�were�three�dierent�programs�for�the�full�subgroup�lattice�of�a�(nite)���group�ʹ(�GraphicLattice�),�ʸthe�interacti��v�٠e�partial�subgroup�lattice�of�a�nite�group�(�InteractiveLattice�)�and�the���interacti��v�٠e���partial�subgroup�lattice�of�a�nitely���presented�group�(�InteractiveFpLattice�)�respecti�v�٠ely��Y�.�No�w�there���is��only�one�generic�program�to�display�subgroup�lattices�interacti��v�٠ely�(�GraphicSubgroupLattice�).����QXGAP����can���no��w�handle�subgroups�of�innite�inde�٠x.���The�y���are�either�placed�in�a�\nite�size"�le��v�٠el�or�in�an�\innity"���le��v�٠el.��See�5.3�for�details.���A��ne��w��logging�f��gacility��allo�ws�to�automatically�produce��a�protocol�of�the�actions�the�user�performs�via�mouse�clicks.���This�O is�O!con���v�٠enient�because�the�normal��QGAP�O�command�script�contains�no�useful�information�about�the�selected�entries���in��the�menus.�See�5.2�for�details.���There�d�is�a�ne��w�layer�to�display�generic�posets�that�do�not�d�ha���v�٠e�to�be�subgroup�lattices.�It�can�be�used�to�display�posets���interacti��v�٠ely��v�ery��easily��Y�.�This�is�for�e�٠xample�used�in�the�ne��w�link�to�the�C-MeatAx�٠e�written�by�Michael�Ringe.�The���code��for�this�link�is�also�included�in��QXGAP�4.���Code��for�the�display�of�graphic�graphs�is�planned�b���ut�not�yet�completed.���The��`user�of��QXGAP��Q�should�not�realize�much�of�those�changes�(e�٠xcept�of�course��_the�name�of�the�function�to�display�a���subgroup��xlattice).�The��yprogrammer�on�the�other�hand�has�to�get�used�to�the�ne��w�techniques.�It�w��gas�not�in�all�places���possible�x�to�x�achie��v�٠e�total�compatibility�for�e�٠xisting�code.�Some�changes�also�were�introduced�deliberately�to�mak��ge�the���programmers��adapt�their�programs�to�the�ne��w�situation!�����;
�I�����LSection��3.�Wher��Ge�code�has�to�be�c�٠hang��ged�&6�59���p������P10.2��User��&Interface��N8��Some�_smenu�_tentries�ha���v�٠e�been�mo�٠v�ed�to�_sne��w�places,�mainly�because�of�the�di��vision�of�generic�poset�code�and�special-���ized���code�for�graphic�subgroup�lattices.�There�are�some�ne��w�features���and�nearly�all�old�features�ha���v�٠e�made�it�into�the���ne��w��v�٠ersion.��N8�The��handling�of�the�mouse�is�unchanged.�Ho��we�v�٠er��the�introduction�of�le��v�els�gi��v�es�the�user�ne��w�possibilities.��N8��P10.3��Where��&code�has�to�be�c�޹hang�!Fed����All���QGAP���objects��corresponding�to�graphic�sheets�and�graphic�objects�are�no�longer�records�b���ut�component�objects.���This�w	means�wthat�the�programmer�can�no�longer�mess�around�in�the�data�structures.�If�you�w��gant�to�add�ne��w�elds,�then���you�a�ha���v�٠e�to�use�inheritance�and�dene�ne��w�cate�gories.�This�a�means�also�that�the�(internal)�data�structures�of�sheets�has���changed��massi��v�٠ely��Y�.�Programs�that�try�to�access�record�components�of�old��QXGAP��structures�will�no�longer�w��gork!��N8�The�"�operation�"��InstallGSMethod��is�no�longer�present.�It�is�replaced�by�the�\callback"�mechanism�with�the�opera-���tions�b�InstallCallback�,��RemoveCallback��and�b�Callback��(see�6.1.1�for�details).�This�means,�that�mouse�e��v�٠ents�are���handled��ndierently��Y�.��oThis�w��gas�changed�deliberately�because�there�is�a�big�dierence:�In��QXGAP�4�you�can�install�more���than��one��
function�for�one�type�of�mouse�e��v�٠ent.�All�such�callback�functions�are�called�one�after�the�other��s8.�There�w��gas���only��one�graphic�sheet��method�for�each�e��v�٠ent�in��QXGAP�3.�So�you�can��Hnot��just�change�the�name�of�the�operation�to���install��the�callback.�Y���gou�ha���v�٠e�to�think�about�this�dierence!���See��Othe��Psection�6.4�for�an�o�٠v�ervie��w��Owhich�operations�e�٠xist�no��w�for�which�graphic�objects.�The�main�dierence�is�the���introduction��of��Revive�,��ViewObj��and��WindowId��together�with�the�concept�of�the��IsAlive��lter��s8.���There���w��gas���a�b���ug�in��QXGAP�3�in�the�creation�of�menus:�If�an�entry�starts�with�a�minus�sign,�it�will�become�a�separating���line��cinstead��bof�a�real�menu�entry��Y�.�This�disturbed�the�numbering�of�the�menu�entries,�such�that��Enable��and��Check��did���not���w��gork�on�the�correct�entry��Y�.���This�b���ug�is�x�٠ed�in��QXGAP�4�so�code�which�contained�a�w��gorkaround�for�this�b���ug�has�to���be��changed.��Enable��and��Check��beha���v�٠e�no��w�lik��ge�e�xpected�and�documented�in�7.1.3�and�7.1.2.�����<	������p����C�������NBib���liograph��G�y����<!�����n �[Ca���v86]��$Alberto�¥Ca���vicchioli.�A�”countable�class�of�non-homeomorphic�homology�spheres�with�Hee�٠g��7aard�genus�tw��go.����$�K3{�

ptmro7t�KGeom.��Dedicata�,�20:345{348,�1986.��������[FJ70]��$K.��)Ferber��*and�H.�J���Ğ�3�ur���gensen.�A���Programme�for�Dra�٠wing�a�Lattice.�In�J.�Leech,�editor���,��KComputational����$Problems��in�Abstract�Algebra�,�pages�83{86,�1970.�����s@[HR91]��$Derek��;F��37.�Holt�and�Sarah��<Rees.�A���Graphics�System�for�Displaying�Finite�Quotients�of�Finitely�Presented����$Groups.��In�L.�Fink��gelstein�and�W��.�M.�Kantor���,�editors,��KGroups�and�Computation�,�pages�113{126,�1991.�����&y[K��ei95]��$Susanne��/K��eitemeier��s8.��0Graphische�Darstellung�v���on�Unter���gruppendiagrammen�im�Computeralgebraprogramm����$�QGAP�.��Diplomarbeit,�1995.�����=�����p����Ƣ����v�/�NInde��u�x����8N8��This��8inde�٠x��7co�v�ers�only��7this�manual.�A���page�number�in��Litalics��refers�to�a�whole�section�which�is�de��v���oted�to�the���inde�٠x�ed���subject.���K��e�yw��gords�are���sorted�with�case�and�spaces�ignored,�e.g.,�\�PermutationCharacter�"�comes�before���\permutation��group".���c���������D��PA����Abelian�?�Invariants�,��35����Abelian�?�Prime�Quotient�,��32����All�?�Overgroups�,��32����All�?�Subgroups�,��29���An��Example,��L55����A�*�P�٠artial�*�Subgroup�*�Lattice�of�a�Finitely�Presented�Group,�����L20����A��P�٠artial�Subgroup�Lattice�of�a�Space�Group,��L21����A��P�٠artial�Subgroup�Lattice�of�the�Ca���vicchioli�Group,��L17����A���P�٠artial���Subgroup�Lattice���of�the�Symmetric�Group�on�6����Points,���L15����A�u�P�٠artial�u�Subgroup�u�Lattice�of�the�T��grefoil�Knot�Group,��L19����Average�?�X�Positions�,��28����Average�?�Y�Positions�,��28����PB����Basics,���L6����Box�,��38����BUTTONS�,��42����PC����Callback�,��37����Centralizers�,��29����Centres�,��29����Change�,��41����Change�?�Labels�,��28����Check�,��43����ChooseClass�,��50����ChooseColor�,��50����ChooseHighlight�,��51����ChooseLabel�,��50����ChooseLevel�,��50����ChoosePosition�,��51����ChooseShape�,��51����ChooseWidth�,��51����Circle�,��38����circle�,��v�٠erte�x�shape,�32����Classes�,��52������������>����Close�,��37�����Callback,��36�����for��te�٠xt�selectors,�46������close�?�graphic�sheet�,��27������Closure�,��29�����for��FpGroups,�32������Closures�,��29������COLORS�,��41�����Colors��in�XGAP����,��L41������Commutator�?�Subgroups�,��29������CompareLevels�,��51������Compare�?�Subgroups�,��33�����Concept,���L58������Conguring��and�Compiling�the�C�part,��L10������Conjugacy�?�Class�,��33������Conjugate�?�Subgroups�,��29������Connection�,��40������Cores�,��29�����for��FpGroups,�33������Coset�?�Table�,��35������CreateClass�,��48������CreateLevel�,��48������CtrlLeftPBDown�,��37������CtrlRightPBDown�,��37������PD������Delete�,���[gobject]�,�40�����for��class�in�poset,�49�����for��edge�in�poset,�49�����for��v�٠erte�x�in�poset,�49������Delete�?�Edge�,��27������DeleteLevel�,��49������Delete�?�Vertices�,��27������Derived�?�Series�,��29������Derived�?�Subgroups�,��29�����Deri��v�٠ed��Subgroups,�33������DeselectAll�,��50������Destroy�,��40������Dialog�,��45���������>ɍ����62���x�LInde���x���p���8䍍����������Dialogs,���L45����Diamond�,��39����diamond�,��v�٠erte�x�shape,�32����Disc�,��38����Disconnect�,��40����DoRedraw�,��54����Drag�,��44����Draw�,��40����PE����Edge�,��48����Enable�,��44����for��te�٠xt�selectors,�45����Epimorphisms�?�(GQuotients)�,��33����PF����Factor�?�Fp�Group�,��35����FastUpdate�,��38����Fitting�?�Subgroups�,��29����FontInfo�,��42����FONTS�,��42����PG����Getting��and�unpacking�the�sources,��L9����GGLLimitForIsNormalCalc�,��32���Global��Information,��L42����Graphic��Objects�in�Sheets,��L38����GraphicPoset�,��48����GraphicSheet�,��36���Graphic��Sheet�Objects,��L36����GraphicSubgroupLattice�,��def��gault�sheet�size�form,�24����sheet��size�setting�form,�24���GraphicSubgroupLattice,���L24����GraphicSubgroupLattice,��Information�Menu,��L31����GraphicSubgroupLattice,��Inserting�V����ertices,��L26����GraphicSubgroupLattice,��Labelling�of�Le��v�٠els,��L25����GraphicSubgroupLattice,��Mo�٠ving�V����ertices,��L25����GraphicSubgroupLattice,��Poset�Menu,��L27����GraphicSubgroupLattice,��Protocol��of�Group�Theoretic����Constructions,���L24����GraphicSubgroupLattice,��Selecting�V����ertices,��L26����GraphicSubgroupLattice,��Sheet�Menu,��L27����GraphicSubgroupLattice,��Subgroups�Menu,��L28����GraphicSubgroupLattice���for�FpGroups,�Information����Menu,���L35����GraphicSubgroupLattice��for�FpGroups,�Subgroups����Menu,���L32����PH����Highlight�,���[gobject]�,�41�����������������[poset]�,��50�����Historical��Remarks�and�Ackno��wledgements,��L8������Ho��w��does�it�w��gork?,��L7������PI������in�,��for�graphic�objects,�41������Index�,��31�����for��FpGroups,�35������IndexOfSelectedButton�,��46������IndexOfSelectedText�,��46������InsertVertex�,��26������InsertVertices�?�from�GAP�,��30�����for��FpGroups,�34������InstallCallback�,��37�����Installing��in�a�dierent�than�the�standard�location,��L11������Installing��the�Startup�Script,��L11������InstallPopup�,��53������Intermediate�?�Subgroups�,��29�����for��FpGroups,�33������Intersection�,��30�����Intersection,��for�FpGroups,�33������Intersections�,��30�����Intersections,��for�FpGroups,�33�����Introduction,���L47������IsAbelian�,��31������IsAlive�,��37������IsCentral�,��31������IsCyclic�,��31������IsFpGroup�,��35������IsGraphicObject�,��38������IsNilpotent�,��31������IsNormal�,��31�����for��FpGroups,�35������Isomorphism�,��31������IsomorphismFpGroup�,��35������IsPerfect�,��31������IsSimple�,��31������IsSolvable�,��31������PL������LeftPBDown�,��36������Levels�,��52������Line�,��39������Low�?�Index�Subgroups�,��34������PM������Magnify�?�Lattice�,��28������MaximalIn�,��52������Maximals�,��52���������?".�����LInde���x���x�63���p���8䍍����������Menu�,���[menu]�,�43�����[poset]�,��52���Menus��in�Graphic�Sheets,��L43����Merge�?�Classes�,��27����ModifyEnabled�,��53���Mouse��Ev�٠ents,��L44����Move�,���[gobject]�,�40�����[poset]�,��49����MoveDelta�,��40����MoveLevel�,��49����PN����Normal�?�Closures�,��30����Normalizers�,��30����for��FpGroups,�34����Normal�?�Subgroups�,��30����PO����Operations,���L48����Operations��for�Graphic�Objects,��L42����Ov�٠ervie��w��Y�,���L9����PP����PopupMenu�,��45���Popups,���L45����PosetCtrlLeftClick�,��53����PosetLeftClick�,��53����PosetRightClick�,��53����PosetShowLevelparams�,��54����PosetShowLevels�,��54����PositionLevel�,��52����Prime�?�Quotient�,��34����PrintInfo�,��40����PSString�,��40����PQ����Query�,��45����for��popup,�45����PR����Rearrange�?�Classes�,��28����Recolor�,���[gobject]�,�40�����[poset]�,��49����Rectangle�,��39����rectangle�,��v�٠erte�x�shape,�32����Redraw�,��27����Relabel�,���[gobject]�,�41�����[poset]�,��49����for��te�٠xt�selectors,�46����RemoveCallback�,��37�����������������Reset�,��for�te�٠xt�selectors,�46������Reshape�,���[gobject]�,�40������[poset]�,��49������Resize�,��37������Resize�?�Lattice�,��28������ResizeLevel�,��49������Resize�?�Sheet�,��28������Revive�,��40������RightPBDown�,��36������PS������save�?�as�postscript�,��27������SaveAsPS�,��38������Select�,��50������Selected�,��50������SelectedGroups�?�to�GAP�,��30�����for��FpGroups,�34������SetName�,��for�te�٠xt�selectors,�46������SetTitle�,��37������SetWidth�,���[gobject]�,�41������[poset]�,��50������ShiftLeftPBDown�,��37������ShiftRightPBDown�,��37������Show�?�Levelparameters�,��27������Show�?�Levels�,��27������Shrink�?�Lattice�,��28������Size�,��31������Start�?�Logging�,��30�����for��FpGroups,�34������Stop�?�Logging�,��30�����for��FpGroups,�34������Sylow�?�Subgroups�,��30������PT������Test�?�Conjugacy�,��34������Text�,��39������TextSelector�,��45�����The���Subgroup���Lattice�of�the�Dihedral�Group�of�Order�8,������L12������PU������Use�?�Black&White�,��28������UserAverageX�,��54������UserAverageY�,��54������UserChangeLabels�,��54������UserDeleteEdgeOp�,��53������UserDeleteVerticesOp�,��53�����User��Interf��gace,��L59������UserMagnifyLattice�,��53���������@.�����64���x�LInde���x���p���*8������ȍ����UserMergeClassesOp�,��53����UserMoveLattice�,��54����UserRearrangeClasses�,��54����UserResizeLattice�,��54����UserResizeSheet�,��54����UserShrinkLattice�,��53����UserUseBlackWhite�,��54����PV����VERTEX�,��record,�42����Vertex�,���[poset]�,�48���V����erte�٠x��Shapes,��L32���������ȍ������Vertices�,��52������PW������WcQueryPointer�,��44�����What��you�can�do�with�XGAP����,��L6������What��you�need�to�install�XGAP����,��L9������Where��code�has�to�be�changed,��L59������WhichClass�,��51������WhichLevel�,��51������WhichVertex�,��51������WhichVertices�,��51������WindowId�,��37���������8<���;���
@�TKj�
ptmri7t�S3{�
ptmr7t�Q�l�

phvr7t�P�e9V

phvb7t�N�e9V$
phvb7t�M�e9V`
phvb7t�LKj�

ptmri7t�K3{�

ptmro7t�H�ߌ�

ptmb7t�Eƛ�
zptmcm7y�Dƛ�

zptmcm7y�A���?

zptmcm7m�?�޾V
zptmcm7t�>�޾V

zptmcm7t�;3{�

ptmr7t�5���

msbm10�3�u�7msam7���<x

cmtt10�;=����