This section describes the functionality for modules over general algebras in Magma and is independent of the earlier chapters. A left-module over an algebra A is a module M together with a bilinear map A x M to M. A right-module over A is a module M together with a bilinear map M x A to M. Magma provides functionality for both kinds of modules.
For an algebra A this function creates a module over A. If the module will be a left-module then m is a map from the Cartesian product A x M to M. If the module will be a right-module then m is a map from M x A to M. Here M has to be an R-module, where R is the coefficient field of A.
> A:= MatrixAlgebra(Rationals(), 3); > V:= RModule(Rationals(), 3); > m:= map< CartesianProduct(V, A) -> V | t :-> t[1]*t[2] >; > Module(A, m); Right Module of Full Matrix Algebra of degree 3 over Rational Field
Given an element v of a left-module over an algebra A, and an element a of A computes the result of letting a act on v.
Given an element v of a right-module over an algebra A and an element a of A computes the result of letting a act on v.
Given a module M over an algebra A and an element a of A returns the matrix of the action of a on M. If M is a left-module then the i-th column of this matrix contains the coordinates of the image of a acting on the i-th basis element of M. If A is a right-module then the rows contain these coordinates.
> A:= MatrixAlgebra(Rationals(), 3); > V:= RModule(Rationals(), 3); > m:= map< CartesianProduct(V, A) -> V | t :-> t[1]*t[2] >; > M:=Module(A, m); > M.1^A.1; M: (1 0 0) > ActionMatrix(M, A.2); [0 1 0] [0 0 1] [1 0 0]
This returns the algebra over which the algebra module M is defined.
Returns the ground field of the algebra module M.
Returns a sequence containing the basis vectors of the algebra module M.
This returns true if the algebra module M is a left-module, and false if it is a right module.
This returns true if the algebra module M is a right-module, and false if it is a left module.
The dimension of the algebra module M.
Given a sequence Q of algebra modules (all defined over the same algebra, and all left (respectively right) modules), returns the module M that is the direct sum of the modules in Q. Furthermore, two sequences of mappings are returned. The i-th element of the first sequence is the embedding of the i-th element of Q into M. The i-th element of the second sequence is the projection of M onto the i-th element of Q.
Given an algebra module M over the algebra A, and a subalgebra B of A, return M as a B-module.
Given a sequence Q containing the elements of a particular basis of an algebra module M, create an algebra module that is isomorphic to M, but with basis Q. (Or, more precisely, the basis vectors of the module V that is returned are in bijection with Q. The action of an algebra element on the i-th basis vector of V is computed by computing it on the i-th vector in Q and expressing the result as a linear combination of the elements of Q. The resulting coordinates are used to form the corresponding element of V.) This can be used to compute the action of algebra elements with respect to a given basis of M.
> A:= MatrixAlgebra(Rationals(), 3); > V:= RModule(Rationals(), 3); > m:= map< CartesianProduct(V, A) -> V | t :-> t[1]*t[2] >; > M:=Module(A, m); > N:=DirectSum([ M, M ]); > ActionMatrix(N, A.1); [1 0 0 0 0 0] [0 0 0 0 0 0] [0 0 0 0 0 0] [0 0 0 1 0 0] [0 0 0 0 0 0] [0 0 0 0 0 0] > W:= ModuleWithBasis([ M.1+M.2+M.3, M.2+M.3, M.3 ]); > ActionMatrix(W, A.1); [ 1 -1 0] [ 0 0 0] [ 0 0 0]
Return the submodule of M containing the elements in the sequence S or the elements e1, ..., en.
Construct the quotient module of M by the submodule S of M, the submodule containing the elements in the sequence S or the elements e1, ..., en.