Macaulay2 » Documentation
Packages » Hom > homomorphism
next | previous | forward | backward | up | index | toc

homomorphism -- get the homomorphism from element of Hom

Synopsis

Description

When H = Hom(M,N) is computed, information about computing the morphisms corresponding to its elements is stored in H.

i1 : R = QQ[x,y,z, Degrees => {2,3,1}]/(y^2 - x^3)

o1 = R

o1 : QuotientRing
i2 : H = Hom(ideal(x,y), R^1)

o2 = image {-2} | x y  |
           {-3} | y x2 |

                             2
o2 : R-module, submodule of R
i3 : f = H_{1}

o3 = {0} | 0 |
     {1} | 1 |

                   1
o3 : Matrix H <-- R
i4 : g = homomorphism f

o4 = | y x2 |

o4 : Matrix

The source and target are what they should be.

i5 : source g === module ideal(x,y)

o5 = true
i6 : target g === R^1

o6 = true

Except for a possible redistribution of degrees between the map and modules, we can undo the process with homomorphism'.

i7 : f' = homomorphism' g

o7 = {0} | 0 |
     {1} | 1 |

                   1
o7 : Matrix H <-- R
i8 : f === f'

o8 = false
i9 : f - f'

o9 = 0

                   1
o9 : Matrix H <-- R
i10 : degree f, degree f'

o10 = ({0}, {1})

o10 : Sequence
i11 : degrees f, degrees f'

o11 = ({{{0}, {1}}, {{1}}}, {{{0}, {1}}, {{0}}})

o11 : Sequence

After pruning a Hom module, one cannot use homomorphism directly. Instead, first apply the pruning map:

i12 : H1 = prune H

o12 = cokernel {0} | y  x2 |
               {1} | -x -y |

                             2
o12 : R-module, quotient of R
i13 : homomorphism(H1.cache.pruningMap * H1_{1})

o13 = | y x2 |

o13 : Matrix

See also

Ways to use homomorphism :

For the programmer

The object homomorphism is a method function.