Prerequisites ============= Get and install curl (see http://curl.haxx.se/) Installing the Maple package Qaos ================================= This latest version of this package is available at http://www.math.tu-berlin.de/~kant/download/maple/qaos.mpl Read the package into Maple with read "qaos.mpl"; Description of the Maple package Qaos ===================================== # Maple interface to the QaoS databases module Qaos( ) # QaosNumberField(query::string [,limit::integer])::list(qaosnumberfield) # QaosNumberField([limit::integer])::list(qaosnumberfield) # # Searches the KANT number field database in Berlin. Returns at most # 'limit' matches. The string 'query' is made up of terms of the form # invariant=value, where invariant is one of: # # degree or deg, # classnumber or classnum or class, # real signature or sig-real or rsig, # imaginary signature or sig-im or isig, # discriminant or disc, # regulator or reg, or # galoisgroup or galgrp. # # If value is a number then >, <, >=,, <= or <> can be used instead of =. # You can omit the relation if you want it to be =. The Galois group may # be enclosed in single quotes, e.g. galoisgroup='S5' or galgrp is 's5'. # Several terms are implied to be connected by AND, e.g. degree=3 cls 2 # |disc| <= 9876. # # Called without an argument NumberFieldQuery returns more fields # matching the previous search query. # # The procedure DefiningPolynomial returns a defining polynomial of a # field. The invariants of the returned fields can be accessed withh the # procedure: ClassGroup, ClassNumber, Degree, Discriminant, GaloisGroup, # Regulator, Signature # # Properties of the Galois group can be obtained with the procedures: # IsAbelian, IsMetaAbelian, IsSimple, IsSolvable, IsSuperSolvable, # IsCyclic, IsPrimitive, IsNilpotent # # You must have 'curl' installed and properly configured in order to use # the database. QaosNumberField( ) # The defining polynomial of a number field from the KANT database. DefiningPolynomial( q::qaosnumberfield ) # The regulator of a number field from the KANT database. Regulator( q::qaosnumberfield ) # A name of the Galois group of a number field from the KANT database. GaloisGroup( q::qaosnumberfield ) # The signature [r_1,r_2] of a number field from the KANT database. Signature( q::qaosnumberfield ) Degree( ) # The discriminant of a number field from the KANT database. Discriminant( q::qaosnumberfield ) # The class number of a number field from the KANT database. ClassNumber( q::qaosnumberfield ) # The class group of a number field from the KANT database. ClassGroup( q::qaosnumberfield ) # QaosTransitiveGroup(query::string[,limit::integer])::list(qaostransitivegroup) # QaosTransitiveGroup([limit::integer])::list(qaostransitivegroup) # # Searches the QaoS transitive group database in Berlin. Returns at most # 'limit' matches. The string 'query' is made up of terms of the form # invariant=value, where invariant is one of: # # Keywords with integer values, Syntax: keyword integer # # d, deg, degr, degree: The degree of the transitive group # o, ord, order: The order of the transitive group # of, ord fac, order factor: A factor of the order of the transitive # group # n, num, numb: The number of the transitive group in the tn nomenclature # csl, compser len, compseries length: The length of the composition # series # lcsl, lcentser len, lowercentralseries length: The length of the lower # central series # # Keywords with string values, Syntax: keyword 'string' # # name: The name of the transitive group, either a trivial name or a name # in the tn nomenclature # # Keywords with boolean values, Syntax: keyword | not keyword # # a ab abel abelian: The abelian property of the group # ma metab metabel metabelian: The metabelian property of the group # c cyc cyclic: The cyclic property of the group # p pr prim primitive: The primitive property of the group # si sim simp simple: The simple property of the group # s sol solv solvable: The solvable property of the group # ss supsol supsolv supersolvable: The supersolvable property of the # group # np nilp nilpot nilpotent: The nilpotent property of the group # # If value is a number then >, <, >=, <= or != can be used instead of =. # You can omit the relation if you want it to be =. # # Called without an argument QaosTransitiveGroup returns more groups # matching the previous search query. # # The procedure PermutationGroup converts groups from the database to # permutation groups. The invariants of the returned groups can be # accessed withh the procedure: GroupOrder, IsAbelian, IsMetaAbelian, # IsSimple, IsSolvable, IsSuperSolvable, IsCyclic, IsPrimitive, # IsNilpotent, TransitiveGroupIdentification, LengthCompositionSeries. # # You must have 'curl' installed and properly configured in order to use # the database. QaosTransitiveGroup( ) # Convert a transitive group from the QaoS database into a permutation # group. PermutationGroup( q::qaostransitivegroup ) GroupOrder( q::qaostransitivegroup ) IsAbelian( ) IsMetaAbelian( ) IsSimple( ) IsSolvable( ) IsSuperSolvable( ) IsCyclic( ) IsPrimitive( ) IsNilpotent( ) LengthCompositionSeries( q::qaostransitivegroup ) TransitiveGroupIdentification( q::qaostransitivegroup ) LengthLowerCentralSeries( q::qaostransitivegroup ) A Sample Session ================ |\^/| Maple 10 (IBM INTEL LINUX) ._|\| |/|_. Copyright (c) Maplesoft, a division of Waterloo Maple Inc. 2005 \ MAPLE / All rights reserved. Maple is a trademark of <____ ____> Waterloo Maple Inc. | Type ? for help. > read "qaos.mpl"; Maple interface to the KANT databases (Qaos) by Sebastian Freundt and Sebastian Pauli [ClassGroup, ClassNumber, DefiningPolynomial, Degree, Discriminant, GaloisGroup, GroupOrder, IsAbelian, IsCyclic, IsMetaAbelian, IsNilpotent, IsPrimitive, IsSimple, IsSolvable, IsSuperSolvable, LengthCompositionSeries, LengthLowerCentralSeries, PermutationGroup, QaosNumberField, QaosTransitiveGroup, Regulator, Signature, TransitiveGroupIdentification] > L := QaosNumberField("deg 4 class_number 25",4); 4 3 2 L := [Number field defined by, X - X + 89 X - 15 X + 1845, 4 3 2 Number field defined by, X - 2 X + 75 X - 4 X + 796, 4 2 Number field defined by, X + 13 X - 26 X + 56, Number field defined by, 4 3 2 X - 2 X + 96 X - 95 X + 2225] > Discriminant(L[3]); 864028 > M := QaosNumberField(); 4 3 2 M := [Number field defined by, X - X + 102 X - 94 X + 2291, 4 2 Number field defined by, X + 60 X + 6 X + 1, Number field defined by, 4 3 2 X - 2 X + 39 X - 38 X + 348, Number field defined by, 4 3 2 X - X + 98 X - 72 X + 2349] > [seq(Regulator(k),k in M)]; [0.96242398, 4.0942302, 2.3895299, 0.96242398]