Magma computer algebra system free download


















You can turn them on remotely by running e. Diver runs other services so is set not to turn itself off but could in principle be woken up the same way. Scholl, M van Beek, and S Zhai. Search site. Free magma constructors. The notion of a term algebra variable causes semantic problems in many computer algebra systems since such a variable has different properties to an ordinary variable identifier. For this reason we avoid the notion of a term algebra variable or indeterminate in Magma.

Rather, we use the notion of a generator. If F is a free algebra, the expression F. Semantically, this is simply a particular element of F. The expression F. We consider two examples. In the first we construct the free group F of rank 3. We will use an assignment statement to assign the group to the identifier F. Further, when elements of a free algebra are printed, we would like to see them presented as strings in generator names.

This is handled by a special form of the Magma assign- ment. When the above assignment is executed, two things happen. Secondly, when a word of F is printed, it will be printed as a string in the symbols a1 ,. Note that any of these identifiers may be reassigned at any time. If ai is assigned a new value, this has no effect on the generator that was its previous value. The submagma, quotient and extension constructors. We illustrate this mechanism by continuing the previous example.

Thus, a magma in the same category as that of M is constructed. The ncl constructor applies to objects in the variety of groups, and constructs the normal closure of the subgroup generated by the elements within the given group; again the result lies in the same category as the original group. The various two-sided and one-sided ideal constructors listed apply in certain semi- group, ring and algebra categories.

The quotient magma constructor quo has similar syntactic structure. There is an im- portant semantic difference: the quotient constructor may construct an object Q in a category different from that of the original magma M. The expressions on the right-hand side of both quo and sub are allowed to be more general than simply defining elements of M : each expr i may evaluate to an element of M , a sequence defining an element of M , a submagma of M , an ideal of M , a set of elements of M , or a sequence of elements of M.

Each term of the list defines one or more elements mi of M , and Y is the set of all the mi. In the case where an expression evaluates to a submagma or ideal, it contributes its generators to Y. The quo constructor allows us to create any finitely presented algebra in a natural manner. Owing to the lack of a general theory of extensions even in the case of a particular variety such as groups, we have not been able to design a general extension constructor.

The constructor ext is supported only for certain categories, and its semantics are heavily dependent upon the category. The ExtensionField constructor was devised to construct algebraic extensions in a single statement via a transcendental extension followed by a quotient. A critical issue in algebraic system design concerns the ability to transfer objects between related structures. In Magma, the following principle has been adopted: Principle of Magma Autonomy: If N is a magma constructed as a submagma, quo- tient magma or extension magma of M , then N will be autonomous, in the sense that any operation involving N alone can be performed without reference to M.

This principle has some important consequences. In the case when N is finitely presented, then the elements of N are given in terms of the generators of N rather than in terms of the generators of M. If N is a magma belonging to a category in which magmas are always given with respect to a standard basis, then N will be given with respect to the appropriate standard basis.

In both cases, it may not be easy to relate elements of N to elements of M. In order to have this information available, the sub and quo constructors return morphisms as a second return value. This function takes a sequence Q of n magmas belonging to a single category and constructs their direct product or sum.

Its factors may be of any kind. Table 4 lists most of them. Example: We illustrate the iterated use of constructors with code that creates the Hecke algebra of type E6. The algebra is obtained as the quotient of a finitely presented associative algebra H by a certain right ideal I. A free associative algebra FA over a cyclotomic field Q5 is defined on generators corresponding to those of a monoid M. Thus, the multiplicative relations between the generators of FA are inherited from M.

Additional relations are now imposed on FA to give the required associative algebra H. Table 4. Specific magma constructors. Element constructors. An element may only be created in the context of a unique magma.

Thus, a polynomial cannot exist as an independent object: it can only exist as an element of a polynomial ring. Consequently, prior to the construction of an element, its parent magma must exist. As many standard algebraic structures have a single fundamental carrier set, we will consider this situation first.

See Table 5. This constructor has an abbreviated form M! Q, where Q is the sequence containing a1 ,. See Table 6. First, we create this space by applying the function VectorSpace to the field F and its subfield F.

Note that we apply a functor from the category of finite fields to that of vector spaces. We may also create elements of G as polynomials in f and g. Table 7. The map constructors. Instead, we have a number of sorts s, each with their associated carrier sets As. The problem then arises of specifying an element of a particular carrier set As. In Magma, such an object may be constructed by means of the third method above elt constructor or coercion of a sequence , where the element target is the appropriate carrier set, rather than A itself.

Example: In the category of undirected graphs, each magma has two fundamental carrier sets: the vertex-set and the edge-set. We define the graph of the 4-dimensional cube, create two adjacent vertices p and q and then form the edge e connecting them. The graph may be specified in various ways. In the case of partial maps and maps, the pairs comprising the graph may be enumerated. However, many particular mappings created by intrinsic functions do allow the computation of pre-images.

When defining a homomorphism, it suffices to specify images for the defining gen- erators of the domain, by virtue of the Homomorphism Representation Theorem. We illustrate this form by defining isomorphisms between Sym 4 defined as a finitely pre- sented group G and as a permutation group H. Notice that the homomorphism can be applied to subgroups as well as to elements. There are conversion functions between the various kinds of aggregate structures. Most aggregate data structures in Magma are required to satisfy a homogeneity prin- ciple: Homogeneity Principle: The members of any set or sequence must all belong to some common magma U which is known as the universe of the set.

This principle allows sets to be stored in the form of a hash-addressed table. It also simplifies the storage of elements of sets and sequences, since the parent of each element does not have to be stored with it. The most important aggregate structures are enumerated sets and sequences. An enu- merated set is a finite unordered collection of objects of a common magma, stored as a list of elements usually in the form of a hash table.

This allows random insertion and deletion of elements, selection of elements and iteration over the set. An enumerated se- quence is a finite ordered collection of objects with possible duplicates , all belonging to a common magma.

Its implementation maximizes the speed of accessing the ith element. Table 8. Sets, sequences, and other aggregates. Note that it is quite possible that the expression e defines objects not belonging to the magma E. Often U and the following may be omitted, when Magma will be able to determine the common overstructure by itself.

If all elements of E should be incorporated, it is permissible to omit the P section of the constructor. As in enumerated sets duplicates are discarded, and as in sequences the elements are linearly ordered and can be indexed. Operators are provided that allow the adjunction of further elements to X in such a way that the index map for the larger set is an extension of the index map for X.

This data structure provides fast membership testing while associating a unique index with each element. These two facilities are critical when writing efficient code to form the closure of a set under some action. A formal set is a possibly infinite subset of the element-set of a magma M ; it is stored as M together with a predicate defining its elements. Membership testing is a simple predicate evaluation, but iteration over formal sets is impossible. A tuple is an element of a Cartesian product of finitely many magmas or sets.

The factors may be chosen quite independently of one another. Inside the sequence constructor, the ith entry of the sequence under construction is Self i , and the whole sequence computed so far is Self. It is possible to use existential and universal quantifiers on set constructors. Some set functions. The documentation section should help introduce new users to the Magma language.

Its development has benefited enormously from contributions made by many members of the mathematical community. We encourage all users to report any bugs they find; regular patch fixes are available from the downloads section. International Congress on Mathematical Software. Magma - A Tool for Number Theory. Conference paper. This is a preview of subscription content, log in to check access. Bosma, W.



0コメント

  • 1000 / 1000