Module docstring
{"# Evaluation of polynomials in subrings
Main results
mem_map_rangeS,mem_map_range: the range ofmapRingHom fconsists of polynomials with coefficients in the range off
"}
{"# Evaluation of polynomials in subrings
mem_map_rangeS, mem_map_range: the range of mapRingHom f consists of
polynomials with coefficients in the range of f"}
Polynomial.mem_map_rangeS
theorem
{p : S[X]} : p ∈ (mapRingHom f).rangeS ↔ ∀ n, p.coeff n ∈ f.rangeS
theorem mem_map_rangeS {p : S[X]} : p ∈ (mapRingHom f).rangeSp ∈ (mapRingHom f).rangeS ↔ ∀ n, p.coeff n ∈ f.rangeS := by
constructor
· rintro ⟨p, rfl⟩ n
rw [coe_mapRingHom, coeff_map]
exact Set.mem_range_self _
· intro h
rw [p.as_sum_range_C_mul_X_pow]
refine (mapRingHom f).rangeS.sum_mem ?_
intro i _hi
rcases h i with ⟨c, hc⟩
use C c * X ^ i
rw [coe_mapRingHom, Polynomial.map_mul, map_C, hc, Polynomial.map_pow, map_X]
Polynomial.mem_map_range
theorem
{R S : Type*} [Ring R] [Ring S] (f : R →+* S) {p : S[X]} : p ∈ (mapRingHom f).range ↔ ∀ n, p.coeff n ∈ f.range
theorem mem_map_range {R S : Type*} [Ring R] [Ring S] (f : R →+* S) {p : S[X]} :
p ∈ (mapRingHom f).rangep ∈ (mapRingHom f).range ↔ ∀ n, p.coeff n ∈ f.range :=
mem_map_rangeS f