Homomorphisms between Modules
It is possible to create a homomorphism between two modules, take the image and kernel of such and verify that these are submodules of the codomain and domain respectively. The Hom–module can also be created as a module of a Dedekind domain.
- hom<M -> N | T>: ModDed, ModDed, Map -> Map
- hom<M -> N | T>: ModDed, ModDed, SeqEnum[ModTupRngElt] -> Map
- hom<M -> N | T>: ModDed, ModDed, MtrxSpcElt -> Map
ModuleBasis: BoolElt Default: true
Return a homomorphism from the module \(M\) into the module \(N\) as specified by \(T\) from which the images of the generators can be inferred. \(T\) may be a map between the vector spaces of same degree as \(M\) and \(N\), a matrix over the field of fractions or a sequence of vectors. If
ModuleBasisistruethen the matrix will be taken to be a transformation between the modules and as such will be expected to have sizeDimension(M)\(*\)Dimension(N)otherwise it will be interpreted as a transformation between the corresponding vector spaces and will be expected to have sizeDegree(M)\(*\)Degree(N).
- Hom(M, N): ModDed, ModDed -> ModDed, Map
The module of homomorphisms between the module \(M\) and the module \(N\) and the map from the hom–module to the collection of maps from \(M\) to \(N\), (such that given an element of the hom–module a homomorphism from \(M\) to \(N\) is returned). The module is over the same Dedekind domain as \(M\) and \(N\).
- IsSubmodule(M, N): ModDed, ModDed -> BoolElt, Map
Return
trueif \(M\) is a submodule of \(N\) and the map embedding \(M\) into \(N\).
- Morphism(M, N): ModDed, ModDed -> Map
The map giving the morphism from the module \(M\) to the module \(N\). Either \(M\) is a submodule of \(N\), in which case the embedding of \(M\) into \(N\) is returned, or \(N\) is a quotient module of \(M\), in which case the natural epimorphism from \(M\) onto \(N\) is returned.
- Example: Homomorphisms Between Modules over Dedekind Domains (ex-f6bf14)
Run in calculator (opens in a new tab)
This example demonstrates the use of homomorphisms between modules over Dedekind domains. Let
MandVbe as above referring to function fields.> S := [V|[0,1,0], [4,4,0]]; > Mod := Module(S); > W := KModule(FieldOfFractions(M), 4); > S := [W|[3, 2, 1, 0]]; > N := Module(S); > h := hom<Mod -> N | >; >> h := hom<Mod -> N | >; ^ Runtime error in map< ... >: No images given > h := hom<Mod -> N | V.1, V.2, V.3>; >> h := hom<Mod -> N | V.1, V.2, V.3>; ^ Runtime error in map< ... >: An image for each generator is required > h := hom<Mod -> N | W![3, 2, 1, 0], W![3*(M!F.1 + 1), 2*(M!F.1 + 1), > M!F.1 + 1, 0] >; > h(Mod!(4*V.1)); ( 4 ) > h(Mod!V![0, 1, 0]); ( x^2 + 1 ) > I := Image(h); > I; Module over Maximal Equation Order of F over Univariate Polynomial Ring in x over Rational Field Ideal of M Generator: 1 > K := Kernel(h); > K; Integral Module over Maximal Equation Order of F over Univariate Polynomial Ring in x over Rational Field Ideal of M Generator: 1 > IsSubmodule(K, Mod); true Mapping from: ModDed: K to ModDed: Mod > H, m := Hom(Mod, N); > H; m; Module over Maximal Equation Order of F over Univariate Polynomial Ring in x over Rational Field generated by: (in echelon form) Ideal of M Generator: 1/4 * ( 1 0 ) Ideal of M Generator: 1 * ( 0 1 ) Mapping from: ModDed: H to Power Structure of Map given by a rule [no inverse] > m(H![5, 20]); Mapping from: ModDed: Mod to ModDed: N using [5] [20]