Algebra towers for polynomial #
This file proves some basic results about the algebra tower structure for the type R[X].
This structure itself is provided elsewhere as Polynomial.isScalarTower
When you update this file, you can also try to make a corresponding update in
RingTheory.MvPolynomial.Tower.
@[simp]
theorem Polynomial.aeval_map_algebraMap {R : Type u_1} (A : Type u_2) {B : Type u_3} [CommSemiring R] [CommSemiring A] [Semiring B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B] (x : B) (p : Polynomial R) :
theorem Polynomial.aeval_algebraMap_apply {R : Type u_1} {A : Type u_2} (B : Type u_3) [CommSemiring R] [CommSemiring A] [Semiring B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B] (x : A) (p : Polynomial R) :
@[simp]
theorem Polynomial.aeval_algebraMap_eq_zero_iff {R : Type u_1} {A : Type u_2} (B : Type u_3) [CommSemiring R] [CommSemiring A] [Semiring B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B] [IsDomain A] [Module.IsTorsionFree A B] [Nontrivial B] (x : A) (p : Polynomial R) :
theorem Polynomial.aeval_algebraMap_eq_zero_iff_of_injective {R : Type u_1} {A : Type u_2} {B : Type u_3} [CommSemiring R] [CommSemiring A] [Semiring B] [Algebra R A] [Algebra A B] [Algebra R B] [IsScalarTower R A B] {x : A} {p : Polynomial R} (h : Function.Injective ⇑(algebraMap A B)) :
@[simp]
theorem Subalgebra.aeval_coe {R : Type u_1} {A : Type u_2} [CommSemiring R] [CommSemiring A] [Algebra R A] (S : Subalgebra R A) (x : ↥S) (p : Polynomial R) :
theorem Polynomial.aeval_root_of_mapAlg_eq_multiset_prod_X_sub_C {R : Type u_1} {A : Type u_2} [CommSemiring R] [CommRing A] [Algebra R A] (s : Multiset A) {x : A} (hx : x ∈ s) {p : Polynomial R} (hp : (mapAlg R A) p = (Multiset.map (fun (x : A) => X - C x) s).prod) :