ebook img

Discovering Mathematics with Magma: Reducing the Abstract to the Concrete PDF

386 Pages·2006·3.45 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Discovering Mathematics with Magma: Reducing the Abstract to the Concrete

Algorithms and Computation in Mathematics Volume 19 • Editors ArjehM.Cohen HenriCohen DavidEisenbud BerndSturmfels Wieb Bosma John Cannon (Eds.) Discovering Mathematics with Magma Reducing the Abstract to the Concrete With9Figuresand16Tables ABC Editors Dr.WiebBosma ProfessorDr.JohnCannon KatholiekeUniv.Nijmegen UniversitySydney VakgroepWiskunde DepartmentPureMathematicsF07 Postbus9010,6500GL 2006Sydney,Australia Nijmegen,Netherlands E-mail:[email protected] E-mail:[email protected] LibraryofCongressControlNumber:2006931477 Mathematics Subject Classification (2000): 68W30, 11Yxx, 12Y05, 13Pxx, 14Qxx, 16Z05 ISSN1431-1550 ISBN-10 3-540-37632-1SpringerBerlinHeidelbergNewYork ISBN-13 978-3-540-37632-3SpringerBerlinHeidelbergNewYork Thisworkissubjecttocopyright.Allrightsarereserved,whetherthewholeorpartofthematerialis concerned,specificallytherightsoftranslation,reprinting,reuseofillustrations,recitation,broadcasting, reproductiononmicrofilmorinanyotherway,andstorageindatabanks.Duplicationofthispublication orpartsthereofispermittedonlyundertheprovisionsoftheGermanCopyrightLawofSeptember9, 1965,initscurrentversion,andpermissionforusemustalwaysbeobtainedfromSpringer.Violationsare liableforprosecutionundertheGermanCopyrightLaw. SpringerisapartofSpringerScience+BusinessMedia springer.com (cid:1)c Springer-VerlagBerlinHeidelberg2006 Theuseofgeneraldescriptivenames,registerednames,trademarks,etc.inthispublicationdoesnotimply, evenintheabsenceofaspecificstatement,thatsuchnamesareexemptfromtherelevantprotectivelaws andregulationsandthereforefreeforgeneraluse. Typesetting:bytheauthorsandtechbooksusingaSpringerLATEXmacropackage Coverdesign:design&productionGmbH,Heidelberg Printedonacid-freepaper SPIN:11693079 17/techbooks 543210 Preface The appearance of this volume celebrates the first decade of Magma, a new computeralgebrasystemlaunchedattheFirstMagmaConferenceonCompu- tational Algebra held at Queen Mary and Westfield College, London, August 1993. This book introduces the reader to the role Magma plays in advanced mathematical research. Each paper examines how the computer can be used to gain insight into either a single problem or a small group of closely related problems. The intention is to present sufficient detail so that a reader can (a), gain insight into the mathematical questions that are the origin of the problems,and(b),developanunderstandingastohowsuchcomputationsare specifiedinMagma.Itishopedthatthereaderwillcometoarealisationofthe importantrolethatcomputationalalgebracanplayinmathematicalresearch. Readers not primarily interested in using Magma will easily acquire the skills neededtoundertakebasicprogramminginMagma,whileexperiencedMagma users can learn both mathematics and advanced computational methods in areas related to their own. The core of the volume comprises 14 papers. The authors were invited to submit articles on designated topics and these articles were then reviewed by referees. Although by no means exhaustive, the topics range over a consider- ablepartofMagma’scoverageofalgorithmicalgebra:fromnumbertheoryand algebraicgeometry,viarepresentationtheoryandcomputationalgrouptheory to some branches of discrete mathematics and graph theory. The papers are preceded by an outline of the Magma project, a brief summary of the papers and some instructions on reading the Magma code. A basic introduction to the Magma language is given in an appendix. Theeditorsexpresstheirgratitudetothecontributorstothisvolume,both for the work put into producing the papers and for their patience. John Cannon, Sydney Wieb Bosma, Nijmegen April 2006 Magma: The project Computer Algebra Computers are transforming the manner in which mathematics is discovered, communicated and applied. Thus, computers are used todetermine the prop- erties of, and relations between, mathematical objects, thereby enabling the mathematician to formulate new conjectures or disprove old conjectures. The application of mathematics often requires extensive calculations which are practicalonlyifperformedbyacomputer.Increasingly,computersareusedto generateorverifyformalmathematicalproofs,sometimesincombinationwith extensive computations. Finally, computers allow mathematicians to typeset their own papers and books, which can then be placed in a web archive for instant access by colleagues in every part of the world. The non-trivial use of computers in the creation and application of math- ematics typically requires sophisticated software and it is here that a ma- jor problem appears. Even experiments in elementary number theory require multi-precision integer arithmetic, something which is found in very few gen- eralscientificprogramminglanguages.Ifthesoftwarenecessaryforperforming an algebraic calculation in an abstract area of mathematics has to be imple- mented in a standard scientific programming language, it is likely to be at a degreeofsophisticationandcomplexityfarbeyondtheabilityortime-budget of most mathematicians. General systems Toaddressthisproblem,anumberofso-calledgeneralsymbolicComputerAl- gebrasystemshaveemerged.Thesepackagesaredesignedfortheeasymanip- ulation of symbolic expressions and have, as their central motivation, the so- lutionofdifferentialequations.ThepackagesMACSYMAandReduce,whose development commenced in the 1960’s, are two early examples. Currently, Maple and Mathematica are the two most popular general symbolic systems. VIII Magma: The project The developers of these systems claim that they are suitable for all areas of mathematics. However, while their symbolic-expression, transformation-rule (SETR) model of computation with mathematical objects works well for the large number of applied and theoretical problems that use tools such as cal- culus and differential equations, it is inappropriate for much of mathematics. For example, implementing code to determine the structure of a finite group ineitherMapleorMathematicaisunnatural,difficultandresultsinextremely inefficient code. Specific area systems The failure of general systems to meet the needs of many areas led to the proliferationofspecialisedlibrariesandpackagesthatfocusonafairlynarrow area.Inparticular,suchsystemscanprovidefunctionsthatarehighlyefficient (compared to a general symbolic system) and which also provide specialised coverage ofthearea.Furthermore,beingcomparatively smallmeansthatone person or a small group can write and maintain the package. We will refer to this class of packages as the specific area systems. The computational model is usually quite different to the SETR model and it is often not explicit. An important example of a specific area system is the number theory package Pari,whichprovidesaClibraryoffunctionsforhigher-orderobjects(suchas number fields and elliptic curves). Pari also provides a simple user interface (GP) so that for many applications it is unnecessary to resort to writing C code in order to use the package. Thenarrowfocusofspecificareasystemshasamajordownsideinthatthe user soon reaches the point where tools outside the scope of the package are needed.Forexample,advancedmethodsforcomputingtheGaloisgroupofan equation(anumbertheoryproblem)requiretheuseofsophisticatedtoolsfrom computational group theory. This results in the user having to acquire and learn a number of different packages and then somehow enable the packages to communicate with one another. Generally speaking, mathematicians are reluctant to invest the considerable time needed to gain a basic fluency with more than one or two packages such as Pari. The Magma project A good computational model properly implemented should make it possi- ble to code calculations at a high degree of abstraction in a manner which is both concise and natural to the subject matter. Because of the quite dif- ferent flavours of different parts of mathematics, it seems very unlikely that a single model will work effectively across most of mathematics. A key aim of the Magma project is the development of an effective model for a broad area sharing a strong commonality of approach. We concentrate on topics where the concepts of structure and morphism are central, areas where the Magma: The project IX SETR model provides an inadequate description of the underlying data and itsoperations.Specifically,wechosetoconcentrateontopicsthatmakeheavy use of the axiomatic approach to modern algebra as exemplified by van der Waerden. This is taken to include algebra, number theory, algebraic geome- try, algebraic topology and algebraic combinatorics. Indeed, modern algebra provides a natural setting for the application of the Object-Oriented (OO) programming paradigm, which is also the basis of the Axiom system. Some general characteristics of Magma include: • Concepts from universal algebra and category theory are used to provide a formal basis for the computational model. • The language design attempts to approximate the usual algebraic modes ofthoughtandnotation.Inparticular,theprincipalconstructsintheuser language are set, algebraic structure and morphism. • Thesystemisdesignedtoautomaticallyrememberandutiliserelationships between objects. • Animportantgoalistoprovidehighly-tunedimplementationsofthemost efficientalgorithmsknownforcomputingwiththevariousclassesofstruc- ture supported. The objective is to provide performance similar to, or better than, specialised stand-alone programs. The computational model Each object definable in Magma is considered to belong to a unique mathe- maticalstructure(magma),calleditsparent,andthisparentmustbepresent at the time the object is created. For instance, Magma does not have the concept of a matrix as a primitive object; rather, a matrix may only exist as an element of some particular ring or bimodule. Moreover, Magma employs evaluation semantics, so that an expression may only be evaluated if every identifier appearing in it has a value. Thus, notions such as “indeterminates” or “unknowns” must be defined as elements of the appropriate magma, such as a univariate polynomial ring over a field, before any use is made of them. This philosophy makes programming a great deal easier, since there is never any ambiguity as to the current interpretation of an object. In programming language parlance, Magma is a strongly typed language. Magmas are organised hierarchically. At the top level are varieties, which arefamiliesofmagmassharingthesamebasicoperationsandaxioms.Typical varieties include groups, commutative rings and modules. A variety has at- tached to it functions (or methods in OO parlance) that do not depend upon properties of a specific representation of a magma. When computing with a structure A it is necessary that A be represented in some concrete form; here we come to the level of categories. For example, within the variety of groups there are categories for finitely-presented groups, permutation groups and matrix groups (among others). The category to which a magma belongs determinesnotonlyhowthemagmaanditselementsarerepresented,butalso X Magma: The project the permitted operations. Note that operations independent of the represen- tation are inherited from the parent variety while representation-dependent operations are attached to the category. Categories of magma that are spe- cialised subcategories of an existing category C may, in turn, inherit opera- tions from C, in addition to having further operations that are specific to the subcategory. Thegeneralmodelforconstructingamagmaistostartwitha‘free’magma and then successively form submagmas, quotients and extensions until the desired magma is obtained. This approach, which has its foundations in Uni- versalAlgebra,providesapowerfulandgeneralmechanismforconstructinga vastrangeofalgebraicandgeometricstructures.Sincemostcommonlyoccur- ring structures in computational algebra are finitely generated, in general, a magmaM isgivenintermsofafinitegeneratingset.Specialhandlingapplies to the rare cases of infinitely generated magmas, such as R, C, and Laurent series rings. The user language TheMagmauserlanguageisaninterpretedhigh-levellanguagewithdynamic typing. The data structures are designed around the ideas of set, sequence, mapping and structure. While the language formally belongs to the class of imperative languages there is also a strong functional flavour. Powerful con- structors allow complex sets and magmas to be constructed in a single state- ment. Typically, a magma is created from another magma M by means of constructor expressions, such as the submagma and quotient constructors: sub< M | generators> quo< M | normal subgroup> These constructors not only return the new submagmaSor quotient Q, but also return a morphism relating the new magma to the existing magma M givenintheleftpartoftheconstructor;herethemorphismsaretheinclusion monomorphism S→M and the natural epimorphism M→Q. Other map- pingsfrommagmaM toM maybedirectlycreatedbymeansofthemapping 1 2 or the homomorphism constructors: map< M → M | x (cid:2)→ expressioninx > 1 2 hom< M → M | imagesof generatorsof M > 1 2 1 Magma has a powerful collection of set and sequence constructors whose syn- tax is based on traditional mathematical set notation and was influenced by SETL [1]. For example, {1..10} is the set of integers {x∈Z|1≤x≤10} and { i2 : i in{1..10} | not IsPrime(i) }; { 1, 16, 36, 64, 81, 100 } is the set of squares of the non-primes in this set. Magma: The project XI The language has a functional subset, providing functions and procedures asfirst-classobjects.Functionsareallowedmultiplereturnvalues.Valueargu- ments and parameters are supported both for functions and procedures while reference arguments are supported for procedures only. As first-class objects, functionsandproceduresarecreatedasthevaluesofexpressions,ratherthan by means of special statements. For a more complete description, the reader should consult the concise introductionintheappendixonpage331,or[2]and[3]foraformaloverview, or [4] and [5] for full user documentation. Acknowledgements The core of the Magma system has been developed by the Computational Algebra Group at the University of Sydney. In addition, Magma includes algorithms and code generously contributed by many mathematicians from around the world. In many ways theMagma project represents a major coop- erative effort by mathematicians to develop a system properly tuned to their needs. A full list of contributors may be found at the front of Volume 1 of [5]. References 1. J.T.Schwartz,R.B.K.Dewar,E.Dubinsky,E.Schonberg, Programming With Sets: An Introduction to SETL, New York: Springer, 1986. 2. WiebBosma,JohnCannon,CatherinePlayoust, TheMagmaalgebrasystemI: The user language, J. Symbolic Comput. 24 (1997), 235–265. See also the Magma home page at http://magma.maths.usyd.edu.au/magma/. 3. Wieb Bosma, John Cannon, Graham Matthews, Programming with algebraic structures:designoftheMagmalanguage,pp.52–57in:M.Giesbrecht(ed),Pro- ceedings of International Symposium on Symbolic and Algebraic Computation, Oxford (1994), Association for Computing Machinery, 1994. 4. Wieb Bosma, John Cannon, Catherine Playoust, Algebraic programming with Magma, to appear. 5. JohnCannon,WiebBosma(eds.),HandbookofMagmaFunctions,Version2.13, Volumes 1–10, Sydney, July 2006, 4320 pages. Discovering mathematics: About this volume Introduction A major motivation behind the design and implementation of Magma has been the desire to make advanced areas of algebra and geometry much more accessible to effective computation. We believe that the system represents a major step towards achieving these aims. Since its first public release in 1994, Magma has been widely adopted and has been used for applications in a wide variety of fields both inside and outside of mathematics. Magma has been used by many mathematicians to develop packages for new areas. Ex- amplesincludealgebraicgeometryviaschemes(GavinBrown),cohomological rings of group modules (Jon Carlson), quantum groups (Willem de Graaf), Kronecker’s algorithm for solving systems of polynomial equations (Gregoire Lecerf),Aschbacheranalysisoflargedegreematrixgroups(EamonnO’Brien), hyperelliptic curves (Michael Stoll) and modular forms and modular abelian varieties (William Stein). Magma has been cited in more than 2000 books, papers and theses. ThisvolumeisacollectionofcasestudiesshowinghowMagmaisappliedto problemsacrossarangeofdifferentareas.Inmostinstancestheworkledtothe publicationofoneormoretheoreticalpapers.Thecorrespondingpaperinthis volume presentsthe Magma computations behind the theoretical results.The collection of papers can be regarded as a series of tutorials on the application of Magma to advanced research problems. The authors were asked to provide some mathematical background on their problem(s) and then present the Magmacodewithanextendedcommentary.Itishopedthatreaderswillgain insight into the possible applications of Magma and also detailed examples of its use in various contexts. For the convenience of readers not particularly familiarwiththeMagmalanguage,abriefintroductionwrittenbyGeoffBailey isincludedasanappendixtothisbook.Inaddition,areadermeetingMagma forthefirsttimemayalsowishtoconsultVolume1oftheHandbookofMagma Functions (shipped in electronic form as part of the Magma distribution) in order to get a detailed description of the language and its intrinsic functions.

Description:
This volume celebrates the first decade of the Computer Algebra system Magma. With a design based on the ontology and semantics of algebra, Magma enables users to rapidly formulate and perform calculations in the more abstract parts of mathematics. This book introduces the reader to the role Magma p
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.