CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

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

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�dened�by�matrices�=͍��.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.�����.����7�������������3.2���$Number��elds�dened�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�dening�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�dened�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�conguration�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�dened�by�the�minimal�polynomial�of�this�primiti��v�٠e�element.�Another�important�w��gay���to��dene�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�dened�by�rational�matrices�or�by�rational�polynomials.�������3�S3{�
ptmr7t�S1���̟��^�3�u�7msam7�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�dened�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�dening�polynomial��;for�the�gi�v�٠en�number�eld.�The�dening�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�dened�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��full�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���dening��polynomial�of��LF�W�.���썍���3�S2���̟��^�I���FactorsPolynomialPari(�?��Lpol�B��)����tak��ges��a�polynomial��Lpol����dened�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�dened�by�matrices�and�the�second�e�٠xample�considers�number�elds�dened�by�a�polynomial.��iʍ�P3.1��Number��&elds�dened�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�dened�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�species�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�٠eries�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�xE.�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�dened�by�a�polynomial,��L8������Number��elds�dened�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�7msam7���<x

cmtt10���������