23.4 Space of homomorphisms between two rings

Module: sage.rings.homset

Space of homomorphisms between two rings.

Module-level Functions

RingHomset( R, S)

is_RingHomset( H)

Class: RingHomset_generic

class RingHomset_generic
RingHomset_generic( self, R, S)

Functions: has_coerce_map_from,$ \,$ natural_map

has_coerce_map_from( self, x)

The default for coercion maps between ring homomorphism spaces is very restrictive (until more implementation work is done).

Special Functions: __call__,$ \,$ __init__,$ \,$ _coerce_impl,$ \,$ _repr_

__call__( self, im_gens, [check=True])

sage: H = Hom(ZZ, QQ)
sage: phi = H([])
Traceback (most recent call last):
...
TypeError: images do not define a valid homomorphism

TESTS:

sage: H = Hom(ZZ, QQ)
sage: H == loads(dumps(H))
True

Class: RingHomset_quo_ring

class RingHomset_quo_ring
Space of ring homomorphism where the domain is a (formal) quotient ring.

sage: R.<x,y> = PolynomialRing(QQ, 2)
sage: S.<a,b> = R.quotient(x^2 + y^2)
sage: phi = S.hom([b,a]); phi
Ring endomorphism of Quotient of Multivariate Polynomial Ring in x, y over
Rational Field by the ideal (x^2 + y^2)
  Defn: a |--> b
        b |--> a
sage: phi(a)
b
sage: phi(b)
a

TESTS: We test pickling of a homset from a quotient.

sage: R.<x,y> = PolynomialRing(QQ, 2)
sage: S.<a,b> = R.quotient(x^2 + y^2)
sage: H = S.Hom(R)
sage: H == loads(dumps(H))
True

We test pickling of actual homomorphisms in a quotient:

sage: phi = S.hom([b,a])
sage: phi == loads(dumps(phi))
True

Special Functions: __call__,$ \,$ _coerce_impl

See About this document... for information on suggesting changes.