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]

Bases: RingHomomorphism_from_base

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
QQ['x'].coerce_map_from(ZZ['x'])
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
R.<x> = ZZ[]
S.<x> = QQ[]
R.hom(S).is_injective()
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
R.<x> = ZZ[]
S.<x> = Zmod(2)[]
R.hom(S).is_surjective()