Magma

MAGMA Computational Algebra System

Magma
 •  How to get it
 •  Download
 •  Online Demo
 
Resources
 •  Online Help
 •  Discovering Mathematics with Magma
 •  Citations
 •  How to cite Magma
 •  Links
 •  Contact us
 
[Next][Prev] [Right] [Left] [Up] [Index] [Root]

The Homomorphism Type

Magma has a special type for a homomorphism between two R-modules. The type of such a homomorphism is ModMPolHom. In general, functions such as Morphism return a homomorphism of type ModMPolHom, while the boundary maps of complexes are also of type ModMPolHom (see the function FreeResolution).

A homomorphism f: M -> N is represented by a matrix A. There are two ways in which A can be defined:

(a)
A is an ambient matrix: in this case, A gives the explicit map on the ambient modules of M and N. Thus A is m x n, where m=Degree(M), n=Degree(N).
(b)
A is a presentation matrix: in this case, A gives the explicit map on the presentation modules of M and N. Thus A is m x n, where m=Degree(Presentation(M)), n=Degree(Presentation(N)).

If M and N are reduced (a common case), then they equal their respective presentation modules, so there is no difference between the above two cases (the ambient matrix and the presentation matrix are identical). So the only difference between (a) and (b) occurs when at least one of M and N is a non-ambient (proper) submodule of an embedded module.
Homomorphism(M, N, A): ModMPol, ModMPol, Mtrx -> ModMPolHom
    Presentation: BoolElt               Default: true
Given R-modules M and N and an m x n matrix A over R, construct the homomorphism f:M -> N (with type ModMPolHom) defined by A.

By default, A is assumed to be a presentation matrix (see the comments above), in which case m and n must equal the degrees of the presentation modules of M and N, respectively. Alternatively, setting the parameter Presentation to {false} specifies that A is an ambient matrix; in this case, m and n must equal the degrees of M and N, respectively.

Domain(f) : ModMPolHom -> ModMPol
Given a module homomorphism f:M -> N, return the domain M.
Codomain(f) : ModMPolHom -> ModMPol
Given a module homomorphism f:M -> N, return the codomain N.
PresentationMatrix(f) : ModMPolHom -> ModMatRngElt
Matrix(f) : ModMPolHom -> ModMatRngElt
Given a module homomorphism f:M -> N, return the presentation matrix AP of f as an m x n matrix corresponding to the presentation modules of M and N, respectively. This presentation matrix is always well-defined and computed, even if f is constructed via an ambient matrix.
AmbientMatrix(f) : ModMPolHom -> ModMatRngElt
Matrix(f) : ModMPolHom -> ModMatRngElt
Given a module homomorphism f:M -> N, return the ambient matrix AA of f as an m x n corresponding to the ambient modules of M and N, respectively. If M and N are reduced (as commonly happens), this will be the same as the presentation matrix above. But if M and N are not reduced and f is constructed via a presentation matrix, then an error may result (since it may be impossible to give a matrix over the base ring R which gives the mapping for the ambient modules).
f(v) : ModMPolHom, RngMPolElt -> RngMPolElt
v * f : ModMPolHom, RngMPolElt -> RngMPolElt
Given a module homomorphism f:M -> N and an element v of M, return the image of v under f, as an element of N.
f[i] : ModMPolHom, RngIntElt -> RngMPolElt
Given a module homomorphism f:M -> N and an integer i, return the element of N corresponding to the i-th row of the ambient matrix of f.
Image(f) : ModMPolHom -> ModMPol
Given a module homomorphism f:M -> N, return the image of f as a submodule of N (which will be reduced iff N is).
Kernel(f) : ModMPolHom -> ModMPol
Given a module homomorphism f:M -> N, return the kernel of f as a submodule of M (which will be reduced iff M is).
Cokernel(f) : ModMPolHom -> ModMPol
Given a module homomorphism f:M -> N, return the cokernel of f as a quotient module of N (which will be reduced iff N is).
IsZero(f) : ModMPolHom -> BoolElt
Given a module homomorphism f:M -> N, return whether f is the zero map. Note that f may be the zero map even if the presentation or ambient matrices of f are non-zero.
IsInjective(f) : ModMPolHom -> BoolElt
Given a module homomorphism f:M -> N, return whether f is injective (whether the kernel of f is the zero module).
IsSurjective(f) : ModMPolHom -> BoolElt
Given a module homomorphism f:M -> N, return whether f is surjective (whether the image of f equals N).
IsBijective(f) : ModMPolHom -> BoolElt
Given a module homomorphism f:M -> N, return whether f is bijective (injective and surjective).
IsGraded(f) : ModMPolHom -> BoolElt
IsHomogeneous(f) : ModMPolHom -> BoolElt
Given a module homomorphism f:M -> N, where M and N are graded modules, return whether f is graded of some degree d; that is, whether for every element v∈M, f(v)=0 or Degree(f(v)) equals Degree(v) + d.
Degree(f) : ModMPolHom -> RngIntElt
Given a module homomorphism f:M -> N, return the degree of f, which is the maximum d such that an element of M of degree e is mapped via f to zero or an element of degree e + d. If f is graded, then the `maximum' concept is unnecessary, since the degree will be consistent for all elements of M (see the previous function).
 [Next][Prev] [Right] [Left] [Up] [Index] [Root]
                       

Version: V2.16 of Mon Nov 16 15:04:45 EST 2009

Valid HTML 4.01! Valid CSS!