Maps
Maps between abelian groups are mainly of type GrpAbFinGenMap. They allow normal map operations such as image, preimage, domain, codomain and can be created in a variety of situations.
Maps
Maps between abelian groups can be constructed via
- images of the generators
- pairs of elements
- via composition
- and isomorphism/ inclusion testing
<a id='hom-Tuple{GrpAbFinGen, GrpAbFinGen, Matrix{<:Map{GrpAbFinGen, GrpAbFinGen}}}' href='#hom-Tuple{GrpAbFinGen, GrpAbFinGen, Matrix{<:Map{GrpAbFinGen, GrpAbFinGen}}}'>#
hom — Method.
hom(G::GrpAbFinGen, H::GrpAbFinGen, A::Matrix{ <: Map{GrpAbFinGen, GrpAbFinGen}}) -> Map
Given groups and that are created as direct products as well as a matrix containing maps , return the induced homomorphism.
#
is_isomorphic — Method.
is_isomorphic(G::GrpAbFinGen, H::GrpAbFinGen) -> Bool
Checks if and are isomorphic.
julia> G = free_abelian_group(2)
GrpAb: Z^2
julia> h = hom(G, G, [gen(G, 2), 3*gen(G, 1)])
Map with following data
Domain:
=======
Abelian group with structure: Z^2
Codomain:
=========
Abelian group with structure: Z^2
julia> h(gen(G, 1))
Element of
GrpAb: Z^2
with components [0 1]
julia> h(gen(G, 2))
Element of
GrpAb: Z^2
with components [3 0]
Homomorphisms also allow addition and subtraction corresponding to the pointwise operation:
julia> G = free_abelian_group(2)
GrpAb: Z^2
julia> h = hom(G, G, [2*gen(G, 2), 3*gen(G, 1)])
Map with following data
Domain:
=======
Abelian group with structure: Z^2
Codomain:
=========
Abelian group with structure: Z^2
julia> (h+h)(gen(G, 1))
Element of
GrpAb: Z^2
with components [0 4]