# Operations on Module Maps

If module homomorphisms a and b with codomain(a) === domain(b) are given, then compose(a, b) refers to the composition b $\circ$ a. If an isomorphism of modules a is given, then inv(a) refers to its inverse.

hom_productMethod
hom_product(M::ModuleFP, N::ModuleFP, A::Matrix{<:ModuleFPHom})

Given modules M, N which are products with the same number of factors, say $M = \prod_{i=1}^r M_i$, $N = \prod_{j=1}^r N_j$, and given a matrix A of homomorphisms $a_{ij} : M_i \to N_j$, return the homomorphism $M \to N$ with $ij$-components $a_{ij}$.

source
hom_tensorMethod
hom_tensor(M::ModuleFP, N::ModuleFP, V::Vector{ <: ModuleFPHom})

Given modules M, N which are tensor products with the same number of factors, say $M = M_1 \otimes \cdots \otimes M_r$, $N = N_1 \otimes \cdots \otimes N_r$, and given a vector V of homomorphisms $a_i : M_i \to N_i$, return $a_1 \otimes \cdots \otimes a_r$.

source
lift_homomorphism_contravariantMethod
lift_homomorphism_contravariant(Hom_MP::ModuleFP, Hom_NP::ModuleFP, a::ModuleFPHom)

Given modules of homomorphism, say, Hom_MP $= \text{Hom}(M,P)$ and Hom_NP $= \text{Hom}(N,P)$, and given a homomorphism a $: N \to M$, return the induced homomorphism $\text{Hom}(M,P) \to \text{Hom}(N,P)$.

source
lift_homomorphism_covariantMethod
lift_homomorphism_covariant(Hom_PM::ModuleFP, Hom_PN::ModuleFP, a::ModuleFPHom)

Given modules of homomorphism, say, Hom_PM $= \text{Hom}(P,M)$ and Hom_PN $= \text{Hom}(P,N)$, and given a homomorphism a $: M \to N$, return the induced homomorphism $\text{Hom}(P,M) \to \text{Hom}(P,N)$.

source