# Ring homomorphisms from a polynomial ring to another ring#

This module currently implements the canonical ring homomorphism from $$A[x]$$ to $$B[x]$$ induced by a ring homomorphism from $$A$$ to $$B$$.

Todo

Implement homomorphisms from $$A[x]$$ to an arbitrary ring $$R$$, given by a ring homomorphism from $$A$$ to $$R$$ and the image of $$x$$ in $$R$$.

AUTHORS:

• Peter Bruin (March 2014): initial version

class sage.rings.polynomial.polynomial_ring_homomorphism.PolynomialRingHomomorphism_from_base[source]#

The canonical ring homomorphism from $$R[x]$$ to $$S[x]$$ induced by a ring homomorphism from $$R$$ to $$S$$.

EXAMPLES:

sage: QQ['x'].coerce_map_from(ZZ['x'])
Ring morphism:
From: Univariate Polynomial Ring in x over Integer Ring
To:   Univariate Polynomial Ring in x over Rational Field
Defn: Induced from base ring by
Natural morphism:
From: Integer Ring
To:   Rational Field

>>> from sage.all import *
>>> QQ['x'].coerce_map_from(ZZ['x'])
Ring morphism:
From: Univariate Polynomial Ring in x over Integer Ring
To:   Univariate Polynomial Ring in x over Rational Field
Defn: Induced from base ring by
Natural morphism:
From: Integer Ring
To:   Rational Field

is_injective()[source]#

Return whether this morphism is injective.

EXAMPLES:

sage: R.<x> = ZZ[]
sage: S.<x> = QQ[]
sage: R.hom(S).is_injective()
True

>>> from sage.all import *
>>> R = ZZ['x']; (x,) = R._first_ngens(1)
>>> S = QQ['x']; (x,) = S._first_ngens(1)
>>> R.hom(S).is_injective()
True

is_surjective()[source]#

Return whether this morphism is surjective.

EXAMPLES:

sage: R.<x> = ZZ[]
sage: S.<x> = Zmod(2)[]
sage: R.hom(S).is_surjective()
True

>>> from sage.all import *
>>> R = ZZ['x']; (x,) = R._first_ngens(1)
>>> S = Zmod(Integer(2))['x']; (x,) = S._first_ngens(1)
>>> R.hom(S).is_surjective()
True