Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Views: 418346����; � TeX output 2017.12.01:1400� ������� ��p ����Ƣ�� �/�N�e9V $ phvb7t�NALNUTH����� ���P�e9V phvb7t�PV��Y�er��sion��&3.1.0,�December�2017�� T�� � �N|�� L��g8��O�e9V phvb7t�OALg�31ebraic��ONUmber�THeor�y��$��� �O�and��Oan�interface�to�� �!�� ��jP����ARI/GP��G��� � �N|���� �et�PGAP��&code�written�b��uy:��� ��*Bj��Ι��h�orn��&Assmann��-D��� �=.���<x cmtt10�http://www.dcs.st-and.ac.uk/~bjoern���Z��� ����PAndreas��&Distler����|��;3{� ptmr7t�CA��s8UL�� (Centro�de��q������Algebra�da�Uni�� v�٠ersidade�de�Lisboa)���� � 1A��B�v��Y�.�� Prof.�Gama�Pinto,�2;�1649-003�Lisboa;�Portug��7al���� ���[email protected]���� ���PBettina��&Eic��uk����+?L�A���G�� Algebra�und�Diskrete�Mathematik;�Institut�Computational�Mathematics;�TU�Braunschweig���� �Pock��gelsstr��s8.�� 14;�D-38106�Braunschweig;�German�٠y��-E�� �[email protected]���@�� � �N|����� ���PGP��&code�written�b��uy:���Z�� ��>Bill��&Allomber�B�t��Q,��LKj� ptmri7t�LNote:�� �P��ARI/GP�is��H�ߌ� ptmb7t�Hnot��part�of�this�package.�It�can�be�obtained�from��http://pari.math.u-bordeaux.fr/��� �� *��� ��p ���Լ\����8P�NContents����N ������ �H1���$ Intr���oduction���t� 3������ ������� �1.1���$ Ackno�� wledgements����� .�� ��� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .���� 3������������� 1.2���$ License�恍�� .�� ��� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .���� 3������������ �H2���$ Methods�� f�� or�number�elds���9�)4������������� �2.1���$ Creation�� of�number�elds��ԍ�� .�� ��� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .���� 4������������� 2.2���$ Methods�� for�number�elds� ����� .�� ��� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .���� 4������������� 2.3���$ Presentations�� of�multiplicati�� v�٠e�subgroups��s��� .�� ��� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .���� 5������������� 2.4���$ Methods�� to�compute�with�subgroups�of�the�unit�group�s���� .�� ��� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .���� 6������������� 2.5���$ F�٠actorisation�� of�polynomials�o�v�er�a�number�eld��j��� .�� ��� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .���� 6������������� 2.6���$ Examples��z��� .�� ��� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .���� 6������������ �H3���$ An�� example�application���E�7������������� �3.1���$ Number�� elds�dened�by�matrices�=͍�� .�� ��� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .���� 7������������� 3.2���$ Number�� elds�dened�by�a�polynomial����� .�� ��� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .���� 8������������ �H4���$ Installation���z�9������������� �4.1���$ Installing�� Alnuth��ލ�� .�� ��� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .���� 9������������� 4.2���$ Getting�� P��ARI/GP����� .�� ��� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .���� 9������������� 4.3���$ Adjust�� the�path�of�the�e�٠x�ecutable�� for�GP������ .�� ��� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .���� 10������������� 4.4���$ Loading�� and�testing�the�package��ō�� .�� ��� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .����� .���� 11����������$ �HBibliograph�٠y���nC12����������$ Index������13������� �� ���� ��p ���Լ\�������M�e9V ` phvb7t�M1�������NIntr��G�oduction����8N8��A�Anumber�A%eld�is�a�nite�e�٠xtension�of�the�eld�A&of�rational�numbers.��Q�l� phvr7t�QAln��guth��pro�vides�v�� arious�methods�to�compute�with�� �number���elds�which�are�gi�� v�٠en���by�a�dening�polynomial�or�by�generators.�F�or�background���on�number�elds�we�refer���to�� [ST79].��N8�Some� of�the�methods�pro�٠vided�in�this�package� are�written�in��QGAP���code.�The�other�part�of�the�methods�is�imported���from�X+the�Computer�X*Algebra�System�P��ARI/GP�W�[P�AR11].�X+Hence�this�package�contains�some��QGAP�W��functions�and�an���interf��gace�c�to�c�some�functions�in�the�computer�algebra�system�P��ARI/GP����.�Therefore�one�has�to�ha���v�٠e�P��ARI/GP�c�installed�to���use�� the�full�functionality�of��QAln��guth�.���W��37e��Fnote�that�only�a��Gv�٠ery�small�part�of�the�functions�a���v�� ailable�in�P��ARI/GP��6are�link��ged�to��QGAP��6�and�P��ARI/GP�pro�٠vides���man�٠y�� more�methods�for�computations�in�number�elds.���The��main��methods�included�in��QAln��guth��are:�creating�a�number�eld,�computing�its�maximal�order�(using�P��ARI/GP),���computing� �its�unit�group�(using� �P��ARI/GP)� �and�a�presentation�of�this�unit�group,�computing�the�elements�of�a�gi�� v�٠en���norm�~�of�~�the�number�eld�(using�P��ARI/GP),�determining�a�presentation�for�a�nitely�generated�multiplicati�� v�٠e�sub-���group���(using�P��ARI/GP),���and�f��gactoring�polynomials�dened�o�٠v�er�number���elds�(using�P��ARI/GP).�F�٠or�background�on���algorithms�� for�number�elds�we�refer�to�[Poh93],�[PZ89]�and�[Coh93].���The��functions�pro�٠vided�by��QAln��guth��are�introduced�in�the��follo�� wing�chapter��s8.�Then�an�e�xample�application�is�outlined.���In�_�the�nal�chapter�_�of�this�manual�the�installation�of�the�package�and�conguration�of�the�interf��gace,�including�hints�on���the�� installation�of�P��ARI/GP����,�are�described.��N8��P1.1�� Ac��ukno��wledg�!Fements��N8��T��37o�� be�٠gin�with�we�are�v�ery�grateful�for�all�the�feedback�by�users�of�former�v�ersions�of��QAln��guth�.���W��37e��zthank�Bill�Allombert�who�wrote�the�GP��ocode�for�the�interf��gace�to�P��ARI/GP�and�who�w��gas�e�٠xtremely�helpful�in�the���transition�� from�KANT�to�P��ARI/GP����.���F�٠or�� feedback�on�the�de�� v�elopment�v�ersion,�including�a�code�patch,�we�are�much�obliged�to�Max�Horn.���The�T�second�T�author�ackno�� wledges�the�nancial�support�at�CA��s8UL�T[within�the�projects�PTDC/MA����T/101993/2008�and���ISFL-1-143,�� nanced�by�FEDER�and�FCT��B�,�in�the�de�� v�٠elopment�of�V����ersion�3�of��QAln��guth�.��N8��P1.2�� License��N8��This�0�program�0�is�free�softw��gare:�you�can�redistrib���ute�it�and/or�modify�it�under�the�terms�of�the�GNU�0fGeneral�Public���License�$�as�$�published�by�the�Free�Softw��gare�F�٠oundation,�either�v�٠ersion�2�of�the�license,�or�(at�your�option)�an�٠y�later���v�٠ersion.���This�.program�is�distrib���uted�in�/the�hope�that�it�will�be�useful,�b�ut�/WITHOUT�ANY�W����ARRANTY��;�.without�e�� v�٠en�the���implied��Lw��garranty��Mof�MERCHANT���ABILITY��9or�FITNESS�FOR��8A�P��AR��fgTICULAR�PURPOSE.��MSee��Lthe�GNU��8General���Public�� License�for�more�details.���Y���gou�� should�ha���v�٠e�recei�� v�ed�a�cop��gy�of�the�GNU�General�Public�License�along�with�this�program.�If�not,�see�����9��http://www.gnu.org/licenses/���� �� A��� ��p ����C�������M2���� �����NMethods���f��G�or��, �� �:n���umber�L'elds����8N8��An�w#algebraic�w"number�eld�is�a�nite-dimensional�e�٠xtension�of�the�rational�numbers��5��� msbm10�Q�.�Such�a�number�eld�has�a�� �primiti�� v�٠e��element��and�it�can�be�dened�by�the�minimal�polynomial�of�this�primiti�� v�٠e�element.�Another�important�w��gay���to�� dene�an�algebraic�number�eld�is�by�a�set�of�rational�matrices�which�generate�a�number�eld.��N8��P2.1�� Creation��&of�n�umber�elds��N8��W��37e�� pro�٠vide�functions�to�create�number�elds�dened�by�rational�matrices�or�by�rational�polynomials.�� �����3�S3{� ptmr7t�S1���̟��^�3�u�7 msam7�I���FieldByMatricesNC(�?��Lmatrices��)�����������36�I���FieldByMatrices(�?��Lmatrices��)��N8��Creates�E�a�eld�E�generated�by�the�rational�matrices��Lmatrices�.�In�the�f��gaster�NC�Epv�٠ersion,�the�function�assumes�that�the���input�� generates�a�eld�and�there�are�no�checks�on�this�performed.�������3�S2���̟��^�I���FieldByMatrixBasisNC(�?��Lmatrices��)�����������36�I���FieldByMatrixBasis(�?��Lmatrices��)��N8��Creates��a�eld�with�basis��Lmatrices�.�The�list��Lmatrices��must��consist�of�rational�matrices�which�form�a�basis�for�a���number��~eld.�In�the�f��gaster�NC��pv�٠ersion,�the�function�assumes�that�the�input�is�a�matrix��}basis�for�a�eld�and�no�checks���are�� performed.�������3�S3���̟��^�I���FieldByPolynomialNC(�?��Lpolynomial�B��)�����������36�I���FieldByPolynomial(�?��Lpolynomial�B��)��N8��Creates���a�eld�dened�by��Lpolynomial���.�The�polynomial����Lpolynomial��+�must�be�an�irreducible�rational�polynomial.�In�the���f��gaster�� NC�v�٠ersion,�no�checks�on�the�input�are�performed.��N8��P2.2�� Methods��&f��uor�n�umber�elds��N8��W��37e�� outline�a�number�of�functions�for�number�elds.�������3�S1���̟��^�I���PrimitiveElement(�?��LF���)�����������36�I���DefiningPolynomial(�?��LF���)��N8��Computes��:a�primiti�� v�٠e�element�and�a�dening�polynomial��;for�the�gi�v�٠en�number�eld.�The�dening�polynomial�is���the�̸minimal�̷polynomial�of�the�primiti�� v�٠e�element.�Since��LF�#��contains�v�� arious�primiti�v�٠e�̷elements,��PrimitiveElement����tries���to���nd�a�primiti�� v�٠e�element�which�has�a�minimal�polynomial�with�small�coecients.�V��fgia�the�global�v�� ariable����LPRIM�� ��� ff ����TEST�E�the�� user�can�decide�ho�� w�man�٠y�primiti�v�٠e�elements�will�be�compared.�The�def��gault�v�alue�is�20.�������3�S2���̟��^�I���IsPrimitiveElementOfNumberField(�?��LF�W�,��La��)��N8��Checks�� if�the�gi�� v�٠en�element�generates�the�eld.�������3�S3���̟��^�I���DegreeOverPrimeField(�?��LF���)����Returns�� the�de�٠gree�of��LF���o�v�er�the�rationals.��� �� !���� ��LSection�� 3.�Pr��Gesentations�of�multiplicative�subgr���oups� ���5���p ���� �����3�S4���̟��^�I���EquationOrderBasis(�?��LF���)�� ���������36�I���MaximalOrderBasis(�?��LF���)�����������36�I���IsIntegerOfNumberField(�?��LF�W�,��Lk�k|�)��N8��These��ufunctions��treturn�bases�for�the�equation�order�or�the�maximal�order�of�the�number�eld��LF�W�.�Also,�the�٠y�allo�� w�to���check�� if�a�gi�� v�٠en�element�is�an�inte�ger�in�the�gi�� v�en�number�eld.�� �����3�S5���̟��^�I���UnitGroup(�?��LF���)����determines�� the�unit�group�of��LF�W�.��N8�Recall�ւthat�փthe�unit�group�of��LF�-t�is�a�nitely�generated�abelian�group.�The�function��IsomorphismPcpGroup��from�the����QP���olycyclic����[EHN11]�package�gi�� v�٠es�an�isomorphism�to�a�pcp���group�which�can�be�used�for�v�arious�computations�with���the�� unit�group.�� �����3�S6���̟��^�I���IsUnitOfNumberField(�?��LF�W�,��Lk�k|�)����checks�� whether�the�element��Lk���is�a�unit�in��LF�W�.�������3�S7���̟��^�I���ExponentsOfUnits(�?��LF�W�,��Lelms��)����This�m�function�m�determines�the�e�٠xponent�v�ectors�m�of�the�elements�in��Lelms��with�respect�to�the�generators�of�the�unit�group�� �of�� �LF�W�.�If�the�unit�group�of��LF���is�not�kno�� wn,�then�the�function�computes�this�unit�group�also.�������3�S8���̟��^�I���IsCyclotomicField(�?��LF���)����Check�� whether��LF���is�c�٠yclotomic.�������3�S9���̟��^�I���NormCosetsOfNumberField(�?��LF�W�,��Lnorm��)����Returns�s%a�s&description�for�the�set�of�all�elements�of�norm��Lnorm��in��LF�W�.�These�elements�can�be�written�as�a�nite�union�of�� �cosets�� of�the�unit�group�of��LF�W�.�The�function�returns�coset�representati�� v�٠es�for�these�cosets.��N8��P2.3�� Presentations��&of�m��uultiplicative�subgr�oups��N8��Suppose�(that�a�nite�number�of�in���v�٠ertible�elements�of�a�(number�eld�are�gi�� v�en.�Then�these�elements�generate�a�nitely���generated��abelian�group.��Ho�� we�v�٠er���,��it�is�a�non-tri�� vial�task�to�pro�٠vide�a�presentation�for�this�abelian�group.�The�most���useful�� representation�for�such�groups�is�as�pcp�group.�� �����3�S1���̟��^�I���PcpPresentationOfMultiplicativeSubgroup(�?��LF�W�,��Lelms��)�����������36�I���IsomorphismPcpGroup(�?��LF�W�,��Lelms��)����Determine��a�pcp�presentation�for�the�multiplicati�� v�٠e�group�of����LF�� �/�Dƛ� zptmcm7y�Dnf�>�V zptmcm7t�0�Dg��generated�by��Lelms��and�an�isomorphism�on�this���presentation.�i�Note,�that�i�the�method��IsomorphismPcpGroup��is�dened�in�the��QP���olycyclic��package�[EHN11].�W��37e�refer���to�� the�manual�of�this�package�for�further�background.��N8�In�y�the�y�determination�of�the�Pcp-presentation�of�a�multiplicati�� v�٠e�subgroup�generated�by��Lelms��the�relations�between�the���elements�t�in��Lelms��play�an�important�role.�Let��Lelms���=��Df�Le����?�V zptmcm7t�1�� �A���? zptmcm7m�A;����:�:�:����;����Le����TKj� ptmri7t�Tl��s��Dg�t��be�t�a�nite�subset�of�a�eld��LF�W�.�The�relation�lattice�for����Lelms�� �is���� ���Lrl���(�Lelms�)��:=�������G�Cq zptmcm7v�Gn�� p�(�Lh����1�� �A;����:�:�:����;����Lh����Tl��s��)��D2��Z������Tl���Dj�Le�������Th����@�V zptmcm7t�@1���U"��1�������D���������Le���w���Th����UKj� ptmri7t�Ul���{Ǎ�Tl����/�=�1�����Go��� �W �D��p{�����3�S2���̟��^�I���RelationLattice(�?��LF�W�,��Lelms��)����Determines�� a�generating�set�for�the�relation�lattice�of�the�eld�elements��Lelms�.��� �� -��� ��6�8s��LChapter�� 2.�Methods�for�number�elds���p ���� ��P2.4�� Methods��&to�compute�with�subgr��uoups�of�the�unit�gr�oup���덍���3�S1���̟��^�I���RelationLatticeOfUnits(�?��LF�W�,��Lelms��)��nߍ�Determines��Ha�basis�for�the�relation�lattice�of�the�units��G�Lelms��in�triangularized�form.�Note�that�this�method�is�more�� �ecient�� than�the�method��RelationLattice�.�������3�S2���̟��^�I���IntersectionOfUnitSubgroups(�?��LF�W�,��Lg��gen1�,��Lg�en2��)��nލ�The�f�lists��Lg��gen1��and��Lg�en2��are�supposed�to�generate�tw�o�subgroups�f��LU����1��f��and��LU����2���of�the�unit�group�of��LF�W�.�This�function���determines��the�intersection��of��LU����1����with��LU����2�� �.�The�result�is�returned�as�a�list�of�v�٠ectors�generating�the�lattice��Df�Le����D2����Z���^��Tn�����Dj����Lg�������Te����@1���U"��1����FK�D���������Lg���^���Te����Un������Tn��� b��D2���LU����2�� �Dg�� �for��Lg��gen1��=��[�Lg����1���A;����:�:�:����;����Lg����Tn���]�.���F�٠or�Yecienc�y�Yreasons�this�function�does�not�check�the�input�and�it�may�return�wrong�results�if�the�input�generators�do���not�� full�the�requirements.������P2.5�� F��uactorisation��&of�pol��ynomials�o�ver�a�n�umber�eld�������3�S1���̟��^�I���FactorsPolynomialAlgExt(�?��LF�W�,��Lpol�B��)��nލ�embeds�D�the�rational�polynomial��Lpol�G%�into�the�polynomial�ring�o�٠v�er�D�the�D�number�eld��LF�W�,�which�has�to�be�constructed���by��FieldByPolynomial��or��AlgebraicExtension�,�and�returns�the�f��gactorization�of�the�embedded�polynomial.�By���def��gault�[��La�[��denotes�the�primiti�� v�٠e�element�of�the�eld�one�can�obtain�from��PrimitiveElement(�LF�W�)�,�that�is,�a�root�of�the���dening�� polynomial�of��LF�W�.���썍���3�S2���̟��^�I���FactorsPolynomialPari(�?��Lpol�B��)����tak��ges�� a�polynomial��Lpol����dened�o�٠v�er�� an�algebraic�e�٠xtension�of�the�Rationals�and�f�actors�it�using�P��ARI/GP����.���덑9��gap>�?�x�:=�Indeterminate(�Rationals,�"x"�);;����9�gap>�?�pol�:=�2*x^7+2*x^5+8*x^4+8*x^2;����9�2*x^7+2*x^5+8*x^4+8*x^2����9�gap>�?�L�:=�FieldByPolynomial(�x^3-4�);����9�<algebraic�?�extension�over�the�Rationals�of�degree�3>����9�gap>�?�y�:=�Indeterminate(�L,�"y"�);;����9�gap>�?�FactorsPolynomialAlgExt(�L,�pol�);����9�[�?�!2*y,�y,�y+(a),�y^2+!1,�y^2+((-1*a))*y+(a^2)�]����9�gap>�?�FactorsPolynomialPari(�last[5]�);����9�[�?�y^2+((-1*a))*y+(a^2)�]����9�gap>��o�P2.6�� Examples�������3�S1���̟��^�I���ExampleMatField(�?��Ll�B��)��nߍ�This� �function�returns� �some�e�٠xamples�of�elds�generated�by�matrices.�There�are�9�such�e�٠xample�elds�pro�٠vided�and���the�٠y���can���be�obtained�by�assigning�the�input��Ll��Y�to�an�inte�٠ger�between�1�and�9.�Some�of�the�properties�of�the�e�٠xamples���are�� summarized�in�the�follo�� wing�table.����w9��degree�?�over�Q� �number�of�generators�dim.�of�generators����9�ExampleMatField(1)�I�4�n?�4�c��4����9�ExampleMatField(2)�I�4�n?�4�c��4����9�ExampleMatField(3)�I�4�n?�4�c��4����9�ExampleMatField(4)�I�4�h��13�c��4����9�ExampleMatField(5)�I�4�h��13�c��4����9�ExampleMatField(6)�I�4�n?�7�c��4����9�ExampleMatField(7)�I�4�h��18�c��4����9�ExampleMatField(8)�I�4�h��13�c��4����9�ExampleMatField(9)�I�4�n?�7�c��4��� �� ;��� ��p ����Ƣ�������M3���� �����NAn�ыe��u�xample��, ���Bapplication����;d��In�2Fthis�2Gsection�we�outline�tw��go�e�٠xample�computations�with�the�functions�of�the�pre�� vious�chapter��s8.�The�rst�e�٠xample�uses�� �number�� elds�dened�by�matrices�and�the�second�e�٠xample�considers�number�elds�dened�by�a�polynomial.��iʍ�P3.1�� Number��&elds�dened�b��uy�matrices��k��9��gap>�?�m1�:=�[�[�1,�0,�0,�-7�],����Ry�[�?�7,�1,�0,�-7�],����Ry�[�?�0,�7,�1,�-7�],����Ry�[�?�0,�0,�7,�-6�]�];;�� ��9�gap>�?�m2�:=�[�[�0,�0,�-13,�14�],����Ry�[�?�-1,�0,�-13,�1�],����Ry�[�?�13,�-1,�-13,�1�],����Ry�[�?�0,�13,�-14,�1�]�];;����9�gap>�?�F�:=�FieldByMatricesNC(�[m1,�m2]�);����9�<rational�?�matrix�field�of�unknown�degree>����9�gap>�?�DegreeOverPrimeField(F);����9�4����9�gap>�?�PrimitiveElement(F);����9�[�?�[�-1,�1,�1,�0�],�[�-2,�0,�2,�1�],�[�-2,�-1,�1,�2�],�[�-1,�-1,�0,�1�]�]����9�gap>�?�Basis(F);����9�Basis(�?�<rational�matrix�field�of�degree�4>,����9�[�?�[�[�1,�0,�0,�0�],�[�0,�1,�0,�0�],�[�0,�0,�1,�0�],�[�0,�0,�0,�1�]�],������[�?�[�0,�1,�0,�0�],�[�-1,�1,�1,�0�],�[�-1,�0,�1,�1�],�[�-1,�0,�0,�1�]�],������[�?�[�0,�0,�1,�0�],�[�-1,�0,�1,�1�],�[�-1,�-1,�1,�1�],�[�0,�-1,�0,�1�]�],������[�?�[�0,�0,�0,�1�],�[�-1,�0,�0,�1�],�[�0,�-1,�0,�1�],�[�0,�0,�-1,�1�]�]�]�)����9�gap>�?�MaximalOrderBasis(F);����9�Basis(�?�<rational�matrix�field�of�degree�4>,����9�[�?�[�[�1,�0,�0,�0�],�[�0,�1,�0,�0�],�[�0,�0,�1,�0�],�[�0,�0,�0,�1�]�],������[�?�[�-1,�1,�1,�0�],�[�-2,�0,�2,�1�],�[�-2,�-1,�1,�2�],�[�-1,�-1,�0,�1�]�],������[�?�[�-3,�-2,�2,�3�],�[�-3,�-5,�0,�5�],�[�0,�-5,�-3,�3�],�[�2,�-2,�-3,�0�]�],������[�?�[�-1,�-1,�0,�1�],�[�0,�-2,�-1,�1�],�[�1,�-1,�-2,�0�],�[�1,�0,�-1,�-1�]�]����y�]�?�)����9�gap>�?�U�:=�UnitGroup(F);����9�<matrix�?�group�with�2�generators>����9�gap>�?�u�:=�GeneratorsOfGroup(�U�);;��� �� H$��� ��8�B�^�LChapter�� 3.�An�e���xample�application���p ���� ��9��gap>�?�nat�:=�IsomorphismPcpGroup(U);;�� ��9�gap>�?�H�:=�Image(nat);����9�Pcp-group�?�with�orders�[�10,�0�]����9�gap>�?�ImageElm(�nat,�u[1]�);����9�g1����9�gap>�?�ImageElm(�nat,�u[2]�);����9�g2����9�gap>�?�ImageElm(�nat,�u[1]*u[2]�);����9�g1*g2����9�gap>�?�u[1]�=�PreImagesRepresentative(nat,�GeneratorsOfGroup(H)[1]�);����9�true�� ��P3.2�� Number��&elds�dened�b��uy�a�pol��ynomial�� ��9��gap>�?�g�:=�UnivariatePolynomial(�Rationals,�[�16,�64,�-28,�-4,�1�]�);����9�x_1^4-4*x_1^3-28*x_1^2+64*x_1+16����9�gap>�?�F�:=�FieldByPolynomialNC(g);����9�<algebraic�?�extension�over�the�Rationals�of�degree�4>����9�gap>�?�PrimitiveElement(F);����9�a����9�gap>�?�MaximalOrderBasis(F);����9�Basis(�?�<algebraic�extension�over�the�Rationals�of�degree�4>,����9�[�?�!1,�1/2*a,�1/4*a^2,�1/56*a^3+1/14*a^2+1/14*a-2/7�]�)����9�gap>�?�U�:=�UnitGroup(F);����9�<group�?�with�4�generators>����9�gap>�?�natU�:=�IsomorphismPcpGroup(U);;����9�gap>�?�elms�:=�List(�[1..10],�x->�Random(F)�);;����9�gap>� �PcpPresentationOfMultiplicativeSubgroup(�?�F,�elms�);����9�Pcp-group�?�with�orders�[�0,�0,�0,�0,�0,�0,�0,�0,�0,�0�]����9�gap>�?�isom�:=�IsomorphismPcpGroup(�F,�elms�);;����9�gap>�?�y�:=�RandomGroupElement(�elms�);;����9�gap>�?�z�:=�ImageElm(�isom,�y�);;����9�gap>�?�y�=�PreImagesRepresentative(�isom,�z�);����9�true����9�gap>�?�FactorsPolynomialAlgExt(�F,�g�);����9�[�?�x_1+(-a),�x_1+(a-2),�x_1+(-1/7*a^3+3/7*a^2+31/7*a-40/7),������x_1+(1/7*a^3-3/7*a^2-31/7*a+26/7)�?�]��� �� O���� ��p ���Լ\�������M4�����_�NInstallation����7k��This�Хpackage�pro�٠vides�an�interf��gace�between��QGAP�А�and�P��ARI/GP����.�P�ARI/GP�Бitself�is�not�part�of�this�package.�It�has�to�� �be�� obtained�and�installed�independently�of�this�package.��QAln��guth��w�orks�with�P��ARI/GP�V����ersion�2.5�or�higher��s8.��ۦ��P4.1�� Installing��&Aln�uth������The�[�package�[��QAln��guth��is�part�of�the�standard�distrib���ution�of��QGAP�[n�so�that�in�most�cases�there�is�no�need�to�install�it���separately��Y�.�BTT��37o�BUuse��QAln��guth��you�need�to�ha���v�٠e�P��ARI/GP�BEinstalled.�See�the�follo�� wing�section�for�information�on�P��ARI/GP����.��k�In�L�case�you�w��gant�to�update��QAln�uth��independently�of�your�main��QGAP�L��installation�or�if�you�are�interested�in�an�old���v�٠ersion�$�of��QAln��guth��interf�acing�to�KANT/KASH�$�you�$�can�nd�all�released�v�٠ersions�of��QAln�uth��at�the�package'��s8s�homepage�����9��http://www.icm.tu-bs.de/ag�� �E� ff &f��ǫalgebra/software/Alnuth/�����in� Pthe� Oform�of�gzipped�tar���-archi�� v�٠es�or�as�uncompressed�tar���-archi�� v�٠es,�and�starting�with�V����ersion�3.0.0�also�as�zip�archi�� v�٠es���for���W���indo�� ws.�The�main�page���al��gw�ays���contains�the�latest�v�٠ersion�of��QAln��guth�,�while�older�v�٠ersions�can�be�found�under����Archives�.��l�There� �are�tw��go�w�ays�of� �installing�a��QGAP� ��package.�If�you�ha���v�٠e�permission�to�add�les�to�the�installation�of��QGAP� ��on���your�Visystem�Vjyou�may�install��QAln��guth��into�the��pkg��subdirectory�of�the��QGAP�V_�installation�tree.�Otherwise�you�may�install����QAln��guth�� �in�a�pri�� v�ate�� �pkg��directory�(for�details�see�Subsections�76.1�and�9.2�in�the��QGAP��reference�manual).���T��37o���install���the�latest�v�٠ersion�of��QAln��guth��under�Linux�do�� wnload�one�of�the�archi�� v�٠es��alnuth.tar��and��alnuth.tar.gz�,���mo�٠v�e��<it��=to�the�directory��pkg��in�which�you�w��gant�to�install,�and�unpack�the�archi�� v�٠e.�If�you�are�using�the�command�line���you�L?can�unpack�the�former�with�the�L@command��tar�?�xf�alnuth.tar�,�L?respecti�� v�٠ely��tar�?�xzf�alnuth.tar.gz�L?�for�the���gzipped�� tar���-archi�� v�٠e.���F�٠or���installation�under�W���indo�� ws�do�wnload�the�archi�v�٠e��alnuth-win.zip�,�mo�v�e���it�to�the��pkg��directory�in�which�you���w��gant�7to�install,�8and�e�٠xtract�the�archi�� v�e�(If�8you�right�click�on�the�archi�� v�٠e�there�should�appear�a�menu�containing�the���entry�� �Extract�?�here�.).��ۥ��P4.2�� Getting��&P���2ARI/GP������Using����QAln��guth��requires�an�installation�of�P��ARI/GP���in�V����ersion�2.5�or�higher��s8.�The�softw�are�P��ARI/GP���is�freely�a���v�� ailable���at�����9��http://pari.math.u-bordeaux.fr/�����Note�� that�the�place�where�P��ARI/GP�is�located�in�your�system�is�independent�of�the�place�where��QAln��guth��is�installed.�������� �Ha.�� Installing�� under�Linux���� �In��zman�٠y��{Linux�distrib���utions�P��ARI/GP��`can�be�installed�via�the�softw��gare�package�manager���,�b���ut�this�might�some-���times�Ѹbe�an�older�v�٠ersion�ѷwhich�cannot�be�used�together�with��QAln��guth�.�(Starting�GP�ѣfrom�the�command�line�with�the���option�� �--version-short��will�sho�� w�you�the�v�٠ersion�number��s8.)���� If�pyou�oinstall�P��ARI/GP�Vfrom�source�mak��ge�sure�you�install�with�GMP�Vsupport�for�better�performance�and�complete���the�� installation�with��make�?�install��so�that�you�can�start�GP�by�just�calling��gp��from�the�command�line.�����W �Hb���.�� Installing�� under�W���indo��gws���� �F�٠or�� W���indo�� ws�it�is�sucient�to�get�the�basic�GP�binary�which�can�be�found�at�����"9��http://pari.math.u-bordeaux.fr/download.html���� �� V��� ��10�n���LChapter�� 4.�Installation���p ���� ��P4.3�� Adjust��&the�path�of�the�e��x�ecutab�le��&f��uor�GP��p;��This�\\package�\]needs�to�kno�� w�where�the�e�٠x�ecutable�\\for�GP�\$is.�In�the�def��gault�setting��QAln��guth��looks�for�an�e�٠x�ecutable�� �program��Bnamed��gp��A�in�the�search�paths�of�the�system.�More�precisely��Y�,�for�a�le��gp��inside�one�of�the�directories�in�the���list�� returned�by��DirectoriesSystemPrograms()��(called�in�a��QGAP��session).��M�Under�� Linux�the�def��gault�setting�should�w�ork�with�a�standard�installation�of�P��ARI/GP����.��M�F�٠or�.�the�.�def��gault�setting�to�w��gork�under�W���indo�� ws�the�do�� wnloaded�e�٠x�ecutable�le,�.�for�e�xample�.��gp-2-5-0.exe��has�to���be���renamed�to��gp.exe����and�mo�٠v�ed���to�one�of�the�directories�listed�by��DirectoriesSystemPrograms()��(Ignore���the�,leading��cygdrive��in�,each�path�name�and�note�that�the�single�letter�species�the�dri�� v�٠e,�for�e�٠xample��/cyg-���drive/c/Windows/�� �denotes�the�folder��Windows��on�dri�� v�٠e��C:�).���T��37o���check���whether�an�e�٠x�ecutable���of�GP��in�V����ersion�2.5�or�higher�is�a���v�� ailable�with�the�def��gault�setting,�you�can�use�the���function��#7�����3�S1���̟��^�I���PariVersion(�?�)��^���which�� prints�the�v�٠erion�number���,�if�the�global�v�� ariable��AL�� �E� ff &f��ǫEXECUTABLE��is�bound�to�the�le�name�of�a�GP�e�x�ecutable.���If��Qyou�cannot��Puse�the�def��gault�setting�for�you�purpose,�you�ha���v�٠e�tw��go�options�to�specify�a�ne�� w�place�and�name�for�the���GP�� e�٠x�ecutable.���If�� you�are�able�to�edit�the�le��defs.g��in�the�main�directory�of��QAln��guth�,�then�you�can�change�the�line��#7��#9��BindGlobal("AL_EXECUTABLE",�?�Filename(DirectoriesSystemPrograms(),�"gp"));����to�� something�lik��ge����#9��BindGlobal("AL_EXECUTABLE",�?�"/home/my/pari-2.5.0/gp");����under�� Linux�or����#9��BindGlobal("AL_EXECUTABLE",�?�"/cygdrive/c/Users/my/Downloads/gp-2-5-0");����under��W���indo�� ws,��where�the�second�ar���gument�gi�� v�٠es�the�path�to�the�GP��e�٠x�ecutable��you�w��gant�to�use�(Change�the�strings�� �gi�� v�٠en� wabo�v�e�to�re ect� xthe�actual�path�on�your�system.).�Please�note�that�in�case�of�a�ne�� w�installation�of��QAln��guth��you���will�� ha���v�٠e�to�change��defs.g��ag��7ain.���Alternati�� v�٠ely�ϼyou�ϻcan�also�change�your�personal��gaprc��le�(see�the�Subsection�3.2.2�in�the��QGAP�Ϧ�reference�manual)���for�u�setting�u�the�v�� ariable�AL�� ��� ff ����EXECUT���ABLE�u�to�a�proper�v�� alue.�T��37o�do�this�add�the�appropriate�line�from�abo�٠v�e�with�u�the����BindGlobal�� �command�to��gaprc�.���The�g�third�g�possibility�is�to�change�the�path�to�the�GP�g�e�٠x�ecutable�g�from�within��QGAP�g��using�one�of�the�follo�� wing�tw��go���functions.�� T��37o�do�this�you�rst�ha���v�٠e�to�load�the�package�(see�Section�4.4).��#7�����3�S2���̟��^�I���SetAlnuthExternalExecutable(�?��Lpath��)��^���adjusts�y�the�y�global�v�� ariable��AL�� �E� ff &f��ǫEXECUTABLE�y��for�the�current��QGAP�y��session.�Depending�on�your�installation�of�P��ARI/GP���and���your���operating�system�the�string��Lpath��has�to�be�either�the�command�to�start�GP���in�a�terminal�(for�e�٠xample��gp�)�or���the�}�complete�}�path�to�the�e�٠x�ecutable�of�}�GP�(for�e�xample�}��/cygwindrive/c/windows/gp�).�The�function�returns��fail����if�� �Lpath��does�not�e�٠x�ecute�� GP�in�V����ersion�2.5.0�or�higher��s8.���T��37o���mak��ge���the�change�tak��ge�eect�for�all�of�your��QGAP����sessions,�you�can�add��SetKantExecutable��with�the�path�to�the���GP�� e�٠x�ecutable�as�ar���gument�to�your�personal��gaprc��le�(see�the�Subsection�3.2.2�in�the��QGAP��reference�manual).��M�If��you��w��gant�the�change�to�aect�all��QGAP����session�of�all�users�of�the��QGAP����installation�you�can�use�the�follo�� wing���function:��#7�����3�S3���̟��^�I���SetAlnuthExternalExecutablePermanently(�?��Lpath��)��^���does�P<the�P;same�as��SetAlnuthExternalExecutable��and�in�addition�trys�to�change�the�le��defs.g��accordingly�in�the���currently���loaded���v�٠ersion�of��QAln��guth�.�A�ͯw�arning���is�issued�if�there�is�no�write�access�to��defs.g��from�the�current��QGAP����session.�������3�S4���̟��^�I���RestoreAlnuthExternalExecutable(�?�)��^���trys���to���restore�the�original�content�of�the�le��defs.g��in�the�directory�corresponding�to�the�loaded�v�٠ersion�of��QAln��guth�.���The�� function�returns��fail��if�there�is�no�write�access�to��defs.g��from�the�current��QGAP��session.��� �� d덟� ��LSection�� 4.�Loading�and�testing�the�pac���ka��gg�e��I�11���p ���� ��P4.4�� Loading��&and�testing�the�pac��uka�g�!Fe��N8��If�� �QAln��guth���is�not�loaded�when�GAP���is�started�you�ha���v�٠e�to�request�it�e�٠xplicitly�to�use�it.�This�is�done�by�calling��Load-�� �Package("Alnuth");�� �in�a�GAP�session.�If��QAln��guth��had�not�been�loaded�already�a�short�banner�will�be�displayed.�� ��#9��gap>�?�LoadingPackage("alnuth");����#9�Loading�?�Alnuth�3.0.0�...����#9�true����#9�gap>����T��37o���load�a�certain�v�٠ersion�of�Alnuth�you�can�specify���the�v�ersion�number�as�second�ar���gument�in�the�call�to��LoadPack-���age�.�� (See��77.2�?�Loading�a�GAP�package�� �in�the�reference�manual�or�type��?LoadPackage��within�a�GAP�session).��N8�Once���the���package�is�loaded,�it�is�possible�to�check�the�correct�installation�running�a�short�test�by�calling��ReadPack-���age("Alnuth",�?�"tst/testinstall.tst");�.����#9��gap>�?�ReadPackage("Alnuth",�"tst/testinstall.g");����#9�Line�?�5�:����#9�+�?�Test�availability�and�version�of�PARI/GP����#9�Line�?�5�:����#9�+�?�GAP4stones:�25000����#9�Line�?�85�:����#9�+�?�Installation�test�of�Alnuth�package����#9�Line�?�85�:����#9�+�?�GAP4stones:�609����#9�true����#9�gap>��N8��The�� number�of�GAP4stones�will�usually�dier;�other�discrepancies�in�the�output�indicate�some�problem.��N8�If��the��test�suite�runs�into�an�error�in�the�rst�part,�which�v�٠eries�the�a���v�� ailability�of�P��ARI/GP����,�check�your�installation���of�� P��ARI/GP�and�consult�the�last�chapter�of�the�documentation�of�Alnuth�for�more�information.���If�/�you�/�nd�an�٠y�b���ugs�or�ha�v�٠e�/�an�y�/�suggestions�or�comments,�we�w��gould�v�٠ery�much�appreciate�it�if�you�w��gould�let�us�kno�� w���by�� writing�to��a.distler(at)tu-bs.de�.��� �� v���� ��p ����C���� ���NBib���liograph��G�y����<!��������[Coh93]��$ Henri���Cohen.��K3{� ptmro7t�KA�˾course�in�computational�algebraic�number�theory�.�Springer���-V����erlag,�Ne�� w�Y���gork,�Heidelber���g,�� ��$ Berlin,�� 1993.��������H[EHN11]��$ Bettina�� Eick,�Max�Horn,�and�W��37erner�Nick��gel.��KPolyc�٠yclic�-�a�GAP�package�,�2011.�����29��http://www.icm.tu-bs.de/ag�� �E� ff &f��ǫalgebra/software/polycyclic/��Q���.�������i[P��AR11]��$ The�� P��ARI�Group,�Bordeaux.��KP�ARI/GP����,�v�٠ersion��2.5.0�,�2011.�a���v�� ailable�from�����29��http://pari.math.u-bordeaux.fr/�� ����.������Ǹ[Poh93]��$ Michael�x E.�w�Pohst.��KComputational�Algebraic�Number�Theory�,�v���olume�21�of��KDMV�w�Seminar�.�Birk�� ���3�auser���,�1993.�������[PZ89]��$ M.�� Pohst�and�H.�Zassenhaus.��KAlgorithmic�algebraic�number�theory�.�Cambridge�Uni�� v�٠ersity�Press,�1989.�������[ST79]��$ I.�� N.�Stuart�and�D.�O.�T��37all.��KAlgebraic�number�theory�.�Chapman�and�Hall,�1979.��� �� ~?��� ��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".���*8����� ���� ��PA����Ackno�� wledgements,�� �L3����Adjust�� the�path�of�the�e�٠x�ecutable�� for�GP����,��L10�� ��PC����Creation�� of�number�elds,��L4����PD����DefiningPolynomial�,�� 4����DegreeOverPrimeField�,�� 4����PE����EquationOrderBasis�,�� 5����ExampleMatField�,�� 6���Examples,�� �L6����ExponentsOfUnits�,�� 5����PF����F�٠actorisation�� of�polynomials�o�v�er�a�number�eld,��L6����FactorsPolynomialAlgExt�,�� 6����FactorsPolynomialPari�,�� 6����FieldByMatrices�,�� 4����FieldByMatricesNC�,�� 4����FieldByMatrixBasis�,�� 4����FieldByMatrixBasisNC�,�� 4����FieldByPolynomial�,�� 4����FieldByPolynomialNC�,�� 4����PG����Getting�� P��ARI/GP����,��L9����PI����Installing�� Alnuth,��L9����IntersectionOfUnitSubgroups�,�� 6����IsCyclotomicField�,�� 5���������� �� � �IsIntegerOfNumberField�,�� 5���� � �IsomorphismPcpGroup�,�� 5���� � �IsPrimitiveElementOfNumberField�,�� 4���� � �IsUnitOfNumberField�,�� 5�� �� � �PL���� � �License,�� �L3���� � �Loading�� and�testing�the�package,��L11���� � �PM���� � �MaximalOrderBasis�,�� 5���� � Methods�� for�number�elds,��L4���� � �Methods�� to�compute�with�subgroups�of�the�unit�group,��L6���� � �PN���� � �NormCosetsOfNumberField�,�� 5���� � Number�� elds�dened�by�a�polynomial,��L8���� � �Number�� elds�dened�by�matrices,��L7���� � �PP���� � �PariVersion�,�� 10���� � �PcpPresentationOfMultiplicativeSubgroup�,�� 5���� � Presentations�� of�multiplicati�� v�٠e�subgroups,��L5���� � �PrimitiveElement�,�� 4���� � �PR���� � �RelationLattice�,�� 5���� � �RelationLatticeOfUnits�,�� 6���� � �RestoreAlnuthExternalExecutable�,�� 10���� � �PS���� � �SetAlnuthExternalExecutable�,�� 10���� � �SetAlnuthExternalExecutablePermanently�,�� 10���� � �PU���� � �UnitGroup�,�� 5������� �� �a���; �� � �UKj� ptmri7t�TKj� ptmri7t�S3{� ptmr7t�Q�l� phvr7t�P�e9V phvb7t�O�e9V phvb7t�N�e9V $ phvb7t�M�e9V ` phvb7t�LKj� ptmri7t�K3{� ptmro7t�H�ߌ� ptmb7t�G�Cq zptmcm7v�Dƛ� zptmcm7y�A���? zptmcm7m�@�V zptmcm7t�?�V zptmcm7t�>�V zptmcm7t�;3{� ptmr7t�5��� msbm10�3�u�7 msam7���<x cmtt10� ��������