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()