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: 4183461[1X1 [33X[0;0YIntroduction[133X[101X234[1X1.1 [33X[0;0YWhat is the role of the [5XModules[105X[101X[1X package in the [5Xhomalg[105X[101X[1X project?[133X[101X567[1X1.1-1 [33X[0;0Y[5XModules[105X[101X[1X provides ...[133X[101X89[33X[0;0YIt provides procedures to construct basic objects in homological algebra:[133X1011[30X [33X[0;6Ymodules (generators, relations)[133X1213[30X [33X[0;6Ysubmodules (as images of maps)[133X1415[30X [33X[0;6Ymaps[133X1617[33X[0;0YBeside these so-called constructors [5XModules[105X provides [13Xoperations[113X to perform18computations with these objects. The list of operations includes:[133X1920[30X [33X[0;6Yresolution of modules[133X2122[30X [33X[0;6Yimages of maps[133X2324[30X [33X[0;6Ythe functors [10XHom[110X and [10XTensorProduct[110X ([10XExt[110X and [10XTor[110X are then provided by25[5Xhomalg[105X)[133X2627[30X [33X[0;6Ytest if a module is torsion-free, reflexive, projective, stably free,28free, pure[133X2930[30X [33X[0;6Ydetermine the rank, grade, projective dimension, degree of31torsion-freeness, and codegree of purity of a module[133X3233[33X[0;0YUsing the philosophy of [5XGAP4[105X, one or more methods are [13Xinstalled[113X for each34operation, depending on [13Xproperties[113X and [13Xattributes[113X of these objects. These35properties and attributes can themselves be computed by methods installed36for this purpose.[133X373839[1X1.1-2 [33X[0;0YRings supported in a sufficient way[133X[101X4041[33X[0;0YThrough out this manual the following terminology is used. We say that a42computer algebra system [21Xsufficiently supports[121X a ring [22XR[122X, if it contains43procedures to effectively solve one-sided inhomogeneous linear systems [22XXA=B[122X44and [22XAX=B[122X with coefficients over [22XR[122X (--> [14X1.1-3[114X).[133X454647[1X1.1-3 [33X[0;0YPrincipal limitation[133X[101X4849[33X[0;0YNote that the solution space of the one-sided finite dimensional system [22XYA=0[122X50(resp. [22XAY=0[122X) over a left (resp. right) noetherian ring [22XR[122X is a finitely51generated left (resp. right) [22XR[122X-module, even if [22XR[122X is not commutative. The52solution space of the linear system [22XX_1 A_1 + A_2 X_2 + A_3 X_3 A_4=0[122X is in53general not an [22XR[122X-module, and worse, in general not finitely generated over54the center of [22XR[122X. [5XModules[105X can only handle homological problems that lead to55[13Xone sided[113X [13Xfinite dimensional[113X homogeneous or inhomogeneous systems over the56underlying ring [22XR[122X. Such problems are called problems of [13Xfinite type[113X over [22XR[122X.57Typically, the computation of [10XHom[110X[22X(M,N)[122X of two (even) finitely generated58modules over a [13Xnon[113Xcommutative ring [22XR[122X is generally [13Xnot[113X of finite type over [22XR[122X,59unless at least one of the two modules is an [22XR[122X-bimodule. Also note that over60a commutative ring any linear system can be easily brought to a one-sided61form. For more details see [BR08].[133X626364[1X1.1-4 [33X[0;0YRing dictionaries (technical)[133X[101X6566[33X[0;0Y[5XModules[105X uses the so-called [10XhomalgTable[110X, which is stored in the ring, to know67how to delegate the necessary matrix operations. I.e. the [10XhomalgTable[110X serves68as a small dictionary that enables [5XModules[105X to speak (as much as needed of)69the language of the computer algebra system which hosts the ring and the70matrices. The [5XGAP[105X internal ring of integers is the only ring which [5XModules[105X71endows with a [10XhomalgTable[110X. Other packages like [5XGaussForHomalg[105X and72[5XRingsForHomalg[105X provide dictionaries for further rings. While [5XGaussForHomalg[105X73defines internal rings and matrices, the package [5XRingsForHomalg[105X enables74defining external rings and matrices in a wide range of (external) computer75algebra systems ([5XSingular[105X, [5XSage[105X, [5XMacaulay2[105X, [5XMAGMA[105X, [5XMaple[105X) by providing76appropriate dictionaries.[133X7778[33X[0;0YSince these dictionaries are all what is needed to handle matrix operations,79[5XModules[105X does not distinguish between handling internal and handling external80matrices. Even the physical communication with the external systems is not81at all a concern of [5XModules[105X. This is the job of the package [5XIO_ForHomalg[105X,82which is based on the powerful [5XIO[105X package of Max Neunhöffer. Furthermore,83for all structures beyond matrices (from relations, generators, and modules,84to functors and spectral sequences) [5XModules[105X no longer distinguishes between85internal and external.[133X868788[1X1.1-5 [33X[0;0YThe advantages of the outsourcing concept[133X[101X8990[33X[0;0YLinking different systems to achieve one task is a highly attractive idea,91especially if it helps to avoid reinventing wheels over and over again. This92was essential for [5Xhomalg[105X, since [5XSingular[105X and [5XMAGMA[105X provide the fastest and93most advanced Gröbner basis algorithms, while [5XGAP4[105X is by far the most94convenient programming language to realize complex mathematical structures95(--> Appendix [14X'homalg: Why GAP4?'[114X). Second, the implementation of the96homological constructions is automatically universal, since it is97independent of where the matrices reside and how the several matrix98operations are realized. In particular, [5Xhomalg[105X will always be able to use99the system with the fastest Gröbner basis implementation. In this respect is100[5Xhomalg[105X and all packages that build upon it future proof.[133X101102103[1X1.1-6 [33X[0;0YDoes this mean that [5Xhomalg[105X[101X[1X has only algorithms for the generic case?[133X[101X104105[33X[0;0YNo, on the contrary. There are a lot of specialized algorithms installed in106[5Xhomalg[105X. These algorithms are based on properties and attributes that --107thanks to [5XGAP4[105X -- [5Xhomalg[105X objects can carry (--> Appendix [14X'homalg: GAP4 is a108mathematical object-oriented programming language'[114X): Not only can [5Xhomalg[105X109take the special nature of the underlying ring into account, it also deals110with modules, complexes, ... depending on their special properties. Still,111these special algorithms, like all algorithms in [5Xhomalg[105X, are independent of112the computer algebra system which hosts the matrices and which will perform113the several matrix operations.[133X114115116[1X1.1-7 [33X[0;0YThe principle of least communication (technical)[133X[101X117118[33X[0;0YLinking different systems can also be highly problematic. The following two119points are often among the major sources of difficulties:[133X120121[30X [33X[0;6YDifferent systems use different languages:[133X122[33X[0;6YIt takes a huge amount of time and effort to teach systems the123dialects of each others. These dialects are also rarely fixed forever,124and might very well be subject to slight modifications. So the larger125the dictionary, the more difficult is its maintenance.[133X126127[30X [33X[0;6YData has to be transferred from one system to another:[133X128[33X[0;6YEven if there is a unified data format, transferring data between129systems can lead to performance losses, especially when a big amount130of data has to be transferred.[133X131132[33X[0;0YSolving these two difficulties is an important part of [5XModules[105X's design.133[5XModules[105X splits homological computations into two parts. The matrices reside134in a system which provides fast matrix operations (addition, multiplication,135bases and normal form computations), while the higher structures (modules,136maps, complexes, chain morphisms, spectral sequences, functors, ...) with137their properties, attributes, and algorithms live in [5XGAP4[105X, as the system138where one can easily create such complex structures and handle all their139logical dependencies. With this split there is no need to transfer each sort140of data outside of its system. The remaining communication between [5XGAP4[105X and141the system hosting the matrices gets along with a tiny dictionary. Moreover,142[5XGAP4[105X, as it manages and delegates all computations, also manages the whole143data flow, while the other system does not even recognize that it is part of144a bidirectional communication.[133X145146[33X[0;0YThe existence of such a clear cut is certainly to some extent due to the147special nature of homological computations.[133X148149150[1X1.1-8 [33X[0;0YFrequently asked questions[133X[101X151152[30X [33X[0;6Y[12XQ[112X: Does outsourcing the matrices mean that [5XModules[105X is able to compute153spectral sequences, for example, without ever seeing the matrices154involved in the computation?[133X155[33X[0;6YA: Yes.[133X156157[30X [33X[0;6Y[12XQ[112X: Can [5XModules[105X profit from the implementation of homological158constructions like [10XHom[110X, [10XExt[110X, ... in [5XSingular[105X?[133X159[33X[0;6YA: No. This is for a lot of reasons incompatible with the idea and160design (--> [14X1[114X) of [5XModules[105X.[133X161162[30X [33X[0;6Y[12XQ[112X: Are the external systems involved in the higher algorithms?[133X163[33X[0;6YA: No. They host all the matrices and do all matrix operations164delegated to them without knowing what for. The meaning of the165matrices and their logical interrelation is only known to [5XGAP4[105X.[133X166167[30X [33X[0;6Y[12XQ[112X: Do developers of packages building upon [5XModules[105X need to know168anything about the communication with the external systems?[133X169[33X[0;6YA: No, unless they want to use more features of the external systems170than those reflected by [5XModules[105X. For this purpose, developers can use171the unified communication interface provideb by [5XHomalgToCAS[105X. This is172the interface used by [5XModules[105X.[133X173174175[1X1.2 [33X[0;0YThis manual[133X[101X176177[33X[0;0YChapter [14X2[114X describes the installation of this package, while Chapter [14X3[114X178provides a short quick guide to build your first own example, using the179package [5XExamplesForHomalg[105X. The remaining chapters are each devoted to one of180the [5Xhomalg[105X objects (--> [14X1.1-1[114X) with its constructors, properties,181attributes, and operations.[133X182183184185