Skip to content

Maps between abelian groups are mainly of type FinGenAbGroupHom. 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

# homMethod.
julia
hom(G::FinGenAbGroup, H::FinGenAbGroup, A::Matrix{ <: Map{FinGenAbGroup, FinGenAbGroup}}) -> Map

Given groups G and H that are created as direct products as well as a matrix A containing maps A[i,j]:GiHj, return the induced homomorphism.

source


# is_isomorphicMethod.
julia
is_isomorphic(G::FinGenAbGroup, H::FinGenAbGroup) -> Bool

Return whether G and H are isomorphic.

source


julia

julia> G = free_abelian_group(2)
Z^2

julia> h = hom(G, G, [gen(G, 2), 3*gen(G, 1)])
Map
  from Z^2
  to Z^2

julia> h(gen(G, 1))
Abelian group element [0, 1]

julia> h(gen(G, 2))
Abelian group element [3, 0]

Homomorphisms also allow addition and subtraction corresponding to the pointwise operation:

julia

julia> G = free_abelian_group(2)
Z^2

julia> h = hom(G, G, [2*gen(G, 2), 3*gen(G, 1)])
Map
  from Z^2
  to Z^2

julia> (h+h)(gen(G, 1))
Abelian group element [0, 4]