Loogle!
Result
Found 374 declarations mentioning Polynomial.map. Of these, only the first 200 are shown.
- Polynomial.map π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) : Polynomial R β Polynomial S - Polynomial.map_X π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) : Polynomial.map f Polynomial.X = Polynomial.X - Polynomial.eval_map π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] {p : Polynomial R} [Semiring S] (f : R β+* S) (x : S) : Polynomial.eval x (Polynomial.map f p) = Polynomial.evalβ f x p - Polynomial.evalβ_eq_eval_map π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] {p : Polynomial R} [Semiring S] (f : R β+* S) {x : S} : Polynomial.evalβ f x p = Polynomial.eval x (Polynomial.map f p) - Polynomial.map_natCast π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) (n : β) : Polynomial.map f βn = βn - Polynomial.map_one π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) : Polynomial.map f 1 = 1 - Polynomial.map_zero π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) : Polynomial.map f 0 = 0 - Polynomial.map_comp π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) (p q : Polynomial R) : Polynomial.map f (p.comp q) = (Polynomial.map f p).comp (Polynomial.map f q) - Polynomial.map_intCast π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} [Ring R] {S : Type u_1} [Ring S] (f : R β+* S) (n : β€) : Polynomial.map f βn = βn - Polynomial.map_ofNat π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) (n : β) [n.AtLeastTwo] : Polynomial.map f (OfNat.ofNat n) = OfNat.ofNat n - Polynomial.map.eq_1 π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) : Polynomial.map f = Polynomial.evalβ (Polynomial.C.comp f) Polynomial.X - Polynomial.map_list_prod π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) (L : List (Polynomial R)) : Polynomial.map f L.prod = (List.map (Polynomial.map f) L).prod - Polynomial.map_neg π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} [Ring R] {p : Polynomial R} {S : Type u_1} [Ring S] (f : R β+* S) : Polynomial.map f (-p) = -Polynomial.map f p - Polynomial.map_add π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] {p q : Polynomial R} [Semiring S] (f : R β+* S) : Polynomial.map f (p + q) = Polynomial.map f p + Polynomial.map f q - Polynomial.map_mul π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] {p q : Polynomial R} [Semiring S] (f : R β+* S) : Polynomial.map f (p * q) = Polynomial.map f p * Polynomial.map f q - Polynomial.map_dvd π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) {x y : Polynomial R} : x β£ y β Polynomial.map f x β£ Polynomial.map f y - Polynomial.coe_mapRingHom π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) : β(Polynomial.mapRingHom f) = Polynomial.map f - Polynomial.map_sum π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) {ΞΉ : Type u_1} (g : ΞΉ β Polynomial R) (s : Finset ΞΉ) : Polynomial.map f (β i β s, g i) = β i β s, Polynomial.map f (g i) - Polynomial.map_multiset_prod π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] (f : R β+* S) (m : Multiset (Polynomial R)) : Polynomial.map f m.prod = (Multiset.map (Polynomial.map f) m).prod - Polynomial.map_prod π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] (f : R β+* S) {ΞΉ : Type u_1} (g : ΞΉ β Polynomial R) (s : Finset ΞΉ) : Polynomial.map f (β i β s, g i) = β i β s, Polynomial.map f (g i) - Polynomial.map_pow π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] {p : Polynomial R} [Semiring S] (f : R β+* S) (n : β) : Polynomial.map f (p ^ n) = Polynomial.map f p ^ n - Polynomial.map_sub π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} [Ring R] {p q : Polynomial R} {S : Type u_1} [Ring S] (f : R β+* S) : Polynomial.map f (p - q) = Polynomial.map f p - Polynomial.map f q - Polynomial.map_C π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} {a : R} [Semiring R] [Semiring S] (f : R β+* S) : Polynomial.map f (Polynomial.C a) = Polynomial.C (f a) - Polynomial.map_monomial π Mathlib.Algebra.Polynomial.Eval.Defs
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) {n : β} {a : R} : Polynomial.map f ((Polynomial.monomial n) a) = (Polynomial.monomial n) (f a) - Polynomial.map_id π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} [Semiring R] {p : Polynomial R} : Polynomial.map (RingHom.id R) p = p - Polynomial.support_map_subset π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) (p : Polynomial R) : (Polynomial.map f p).support β p.support - Polynomial.map_injective π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) (hf : Function.Injective βf) : Function.Injective (Polynomial.map f) - Polynomial.map_surjective π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) (hf : Function.Surjective βf) : Function.Surjective (Polynomial.map f) - Polynomial.map_injective_iff π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) : Function.Injective (Polynomial.map f) β Function.Injective βf - Polynomial.map_surjective_iff π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) : Function.Surjective (Polynomial.map f) β Function.Surjective βf - Polynomial.coeff_map π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} [Semiring R] {p : Polynomial R} [Semiring S] (f : R β+* S) (n : β) : (Polynomial.map f p).coeff n = f (p.coeff n) - Polynomial.support_map_of_injective π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (p : Polynomial R) {f : R β+* S} (hf : Function.Injective βf) : (Polynomial.map f p).support = p.support - Polynomial.coeff_map_eq_comp π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (p : Polynomial R) (f : R β+* S) : (Polynomial.map f p).coeff = βf β p.coeff - Polynomial.map_map π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} {T : Type w} [Semiring R] [Semiring S] (f : R β+* S) [Semiring T] (g : S β+* T) (p : Polynomial R) : Polynomial.map g (Polynomial.map f p) = Polynomial.map (g.comp f) p - Polynomial.evalβ_map π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} {T : Type w} [Semiring R] {p : Polynomial R} [Semiring S] (f : R β+* S) [Semiring T] (g : S β+* T) (x : T) : Polynomial.evalβ g x (Polynomial.map f p) = Polynomial.evalβ (g.comp f) x p - Polynomial.IsRoot.map π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} [CommSemiring R] [CommSemiring S] {f : R β+* S} {x : R} {p : Polynomial R} (h : p.IsRoot x) : (Polynomial.map f p).IsRoot (f x) - Polynomial.eval_natCast_map π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) (p : Polynomial R) (n : β) : Polynomial.eval (βn) (Polynomial.map f p) = f (Polynomial.eval (βn) p) - Polynomial.eval_one_map π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) (p : Polynomial R) : Polynomial.eval 1 (Polynomial.map f p) = f (Polynomial.eval 1 p) - Polynomial.eval_zero_map π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (f : R β+* S) (p : Polynomial R) : Polynomial.eval 0 (Polynomial.map f p) = f (Polynomial.eval 0 p) - Polynomial.map_eq_zero_iff π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} [Semiring R] {p : Polynomial R} [Semiring S] {f : R β+* S} (hf : Function.Injective βf) : Polynomial.map f p = 0 β p = 0 - Polynomial.map_ne_zero_iff π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u} {S : Type v} [Semiring R] {p : Polynomial R} [Semiring S] {f : R β+* S} (hf : Function.Injective βf) : Polynomial.map f p β 0 β p β 0 - Polynomial.eval_intCast_map π Mathlib.Algebra.Polynomial.Eval.Coeff
{R : Type u_1} {S : Type u_2} [Ring R] [Ring S] (f : R β+* S) (p : Polynomial R) (i : β€) : Polynomial.eval (βi) (Polynomial.map f p) = f (Polynomial.eval (βi) p) - Polynomial.IsRoot.of_map π Mathlib.Algebra.Polynomial.Eval.Coeff
{S : Type v} [CommSemiring S] {R : Type u_1} [Ring R] {f : R β+* S} {x : R} {p : Polynomial R} (h : (Polynomial.map f p).IsRoot (f x)) (hf : Function.Injective βf) : p.IsRoot x - Polynomial.isRoot_map_iff π Mathlib.Algebra.Polynomial.Eval.Coeff
{S : Type v} [CommSemiring S] {R : Type u_1} [CommRing R] {f : R β+* S} {x : R} {p : Polynomial R} (hf : Function.Injective βf) : (Polynomial.map f p).IsRoot (f x) β p.IsRoot x - Polynomial.natDegree_map_le π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} {p : Polynomial R} : (Polynomial.map f p).natDegree β€ p.natDegree - Polynomial.degree_map_le π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} {p : Polynomial R} : (Polynomial.map f p).degree β€ p.degree - Polynomial.map_monic_ne_zero π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} {p : Polynomial R} (hp : p.Monic) [Nontrivial S] : Polynomial.map f p β 0 - Polynomial.natDegree_map_of_leadingCoeff_ne_zero π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {p : Polynomial R} (f : R β+* S) (hf : f p.leadingCoeff β 0) : (Polynomial.map f p).natDegree = p.natDegree - Polynomial.degree_map_eq_of_leadingCoeff_ne_zero π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {p : Polynomial R} (f : R β+* S) (hf : f p.leadingCoeff β 0) : (Polynomial.map f p).degree = p.degree - Polynomial.map_monic_eq_zero_iff π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} {p : Polynomial R} (hp : p.Monic) : Polynomial.map f p = 0 β β (x : R), f x = 0 - Polynomial.natDegree_map_lt' π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} {p : Polynomial R} (hp : f p.leadingCoeff = 0) (hpβ : 0 < p.natDegree) : (Polynomial.map f p).natDegree < p.natDegree - Polynomial.isUnit_of_isUnit_leadingCoeff_of_isUnit_map π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] [CommRing S] [IsDomain S] (Ο : R β+* S) {f : Polynomial R} (hf : IsUnit f.leadingCoeff) (H : IsUnit (Polynomial.map Ο f)) : IsUnit f - Polynomial.leadingCoeff_map_of_leadingCoeff_ne_zero π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {p : Polynomial R} (f : R β+* S) (hf : f p.leadingCoeff β 0) : (Polynomial.map f p).leadingCoeff = f p.leadingCoeff - Polynomial.degree_map_lt π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} {p : Polynomial R} (hp : f p.leadingCoeff = 0) (hpβ : p β 0) : (Polynomial.map f p).degree < p.degree - Polynomial.natDegree_map_lt π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} {p : Polynomial R} (hp : f p.leadingCoeff = 0) (hpβ : Polynomial.map f p β 0) : (Polynomial.map f p).natDegree < p.natDegree - Polynomial.mapEquiv_apply π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (e : R β+* S) (a : Polynomial R) : (Polynomial.mapEquiv e) a = Polynomial.map (βe) a - Polynomial.mapEquiv_symm_apply π Mathlib.Algebra.Polynomial.Eval.Degree
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (e : R β+* S) (a : Polynomial S) : (Polynomial.mapEquiv e).symm a = Polynomial.map (βe.symm) a - Polynomial.coe_mapAlgHom π Mathlib.Algebra.Polynomial.AlgebraMap
{R : Type u} {A : Type z} {B : Type u_2} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] (f : A ββ[R] B) : β(Polynomial.mapAlgHom f) = Polynomial.map βf - Polynomial.coe_mapAlgEquiv π Mathlib.Algebra.Polynomial.AlgebraMap
{R : Type u} {A : Type z} {B : Type u_2} [CommSemiring R] [Semiring A] [Semiring B] [Algebra R A] [Algebra R B] (f : A ββ[R] B) : β(Polynomial.mapAlgEquiv f) = Polynomial.map βf - Polynomial.map_aeval_eq_aeval_map π Mathlib.Algebra.Polynomial.AlgebraMap
{R : Type u} [CommSemiring R] {S : Type u_3} {T : Type u_4} {U : Type u_5} [Semiring S] [CommSemiring T] [Semiring U] [Algebra R S] [Algebra T U] {Ο : R β+* T} {Ο : S β+* U} (h : (algebraMap T U).comp Ο = Ο.comp (algebraMap R S)) (p : Polynomial R) (a : S) : Ο ((Polynomial.aeval a) p) = (Polynomial.aeval (Ο a)) (Polynomial.map Ο p) - Polynomial.natDegree_map_eq_iff π Mathlib.Algebra.Polynomial.Degree.Lemmas
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} {p : Polynomial R} : (Polynomial.map f p).natDegree = p.natDegree β f p.leadingCoeff β 0 β¨ p.natDegree = 0 - Polynomial.degree_map_eq_iff π Mathlib.Algebra.Polynomial.Degree.Lemmas
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} {p : Polynomial R} : (Polynomial.map f p).degree = p.degree β f p.leadingCoeff β 0 β¨ p = 0 - MvPolynomial.coeff_eval_eq_eval_coeff π Mathlib.Algebra.MvPolynomial.Equiv
{R : Type u} (Sβ : Type v) [CommSemiring R] (s' : Sβ β R) (f : Polynomial (MvPolynomial Sβ R)) (i : β) : (Polynomial.map (MvPolynomial.eval s') f).coeff i = (MvPolynomial.eval s') (f.coeff i) - MvPolynomial.optionEquivLeft_elim_eval π Mathlib.Algebra.MvPolynomial.Equiv
(R : Type u) (Sβ : Type v) [CommSemiring R] (s : Sβ β R) (y : R) (f : MvPolynomial (Option Sβ) R) : (MvPolynomial.eval fun x => x.elim y s) f = Polynomial.eval y (Polynomial.map (MvPolynomial.eval s) ((MvPolynomial.optionEquivLeft R Sβ) f)) - MvPolynomial.eval_eq_eval_mv_eval' π Mathlib.Algebra.MvPolynomial.Equiv
{R : Type u} [CommSemiring R] {n : β} (s : Fin n β R) (y : R) (f : MvPolynomial (Fin (n + 1)) R) : (MvPolynomial.eval (Fin.cons y s)) f = Polynomial.eval y (Polynomial.map (MvPolynomial.eval s) ((MvPolynomial.finSuccEquiv R n) f)) - MvPolynomial.finSuccEquiv_rename_finSuccEquiv π Mathlib.Algebra.MvPolynomial.Equiv
{R : Type u} {Ο : Type u_1} [CommSemiring R] {n : β} (e : Ο β Fin n) (Ο : MvPolynomial (Option Ο) R) : (MvPolynomial.finSuccEquiv R n) ((MvPolynomial.rename β(e.optionCongr.trans (finSuccEquiv n).symm)) Ο) = Polynomial.map (MvPolynomial.rename βe).toRingHom ((MvPolynomial.optionEquivLeft R Ο) Ο) - Polynomial.reflect_map π Mathlib.Algebra.Polynomial.Reverse
{R : Type u_1} [Semiring R] {S : Type u_2} [Semiring S] (f : R β+* S) (p : Polynomial R) (n : β) : Polynomial.reflect n (Polynomial.map f p) = Polynomial.map f (Polynomial.reflect n p) - Polynomial.Monic.map π Mathlib.Algebra.Polynomial.Monic
{R : Type u} {S : Type v} [Semiring R] {p : Polynomial R} [Semiring S] (f : R β+* S) (hp : p.Monic) : (Polynomial.map f p).Monic - Polynomial.Monic.natDegree_map π Mathlib.Algebra.Polynomial.Monic
{R : Type u} {S : Type v} [Semiring R] [Semiring S] [Nontrivial S] {P : Polynomial R} (hmo : P.Monic) (f : R β+* S) : (Polynomial.map f P).natDegree = P.natDegree - Polynomial.Monic.degree_map π Mathlib.Algebra.Polynomial.Monic
{R : Type u} {S : Type v} [Semiring R] [Semiring S] [Nontrivial S] {P : Polynomial R} (hmo : P.Monic) (f : R β+* S) : (Polynomial.map f P).degree = P.degree - Polynomial.monic_of_injective π Mathlib.Algebra.Polynomial.Monic
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} (hf : Function.Injective βf) {p : Polynomial R} (hp : (Polynomial.map f p).Monic) : p.Monic - Function.Injective.monic_map_iff π Mathlib.Algebra.Polynomial.Monic
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} (hf : Function.Injective βf) {p : Polynomial R} : p.Monic β (Polynomial.map f p).Monic - Polynomial.natDegree_map_eq_of_injective π Mathlib.Algebra.Polynomial.Monic
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} (hf : Function.Injective βf) (p : Polynomial R) : (Polynomial.map f p).natDegree = p.natDegree - Polynomial.degree_map_eq_of_injective π Mathlib.Algebra.Polynomial.Monic
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} (hf : Function.Injective βf) (p : Polynomial R) : (Polynomial.map f p).degree = p.degree - Polynomial.Monic.eq_one_of_map_eq_one π Mathlib.Algebra.Polynomial.Monic
{R : Type u} [Semiring R] {p : Polynomial R} {S : Type u_1} [Semiring S] [Nontrivial S] (f : R β+* S) (hp : p.Monic) (map_eq : Polynomial.map f p = 1) : p = 1 - Polynomial.leadingCoeff_map' π Mathlib.Algebra.Polynomial.Monic
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} (hf : Function.Injective βf) (p : Polynomial R) : (Polynomial.map f p).leadingCoeff = f p.leadingCoeff - Polynomial.leadingCoeff_of_injective π Mathlib.Algebra.Polynomial.Monic
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} (hf : Function.Injective βf) (p : Polynomial R) : (Polynomial.map f p).leadingCoeff = f p.leadingCoeff - Polynomial.nextCoeff_map π Mathlib.Algebra.Polynomial.Monic
{R : Type u} {S : Type v} [Semiring R] [Semiring S] {f : R β+* S} (hf : Function.Injective βf) (p : Polynomial R) : (Polynomial.map f p).nextCoeff = f p.nextCoeff - Polynomial.map_toSubring π Mathlib.RingTheory.Polynomial.Basic
{R : Type u} [Ring R] (p : Polynomial R) (T : Subring R) (hp : βp.coeffs β βT) : Polynomial.map T.subtype (p.toSubring T hp) = p - Polynomial.map_restriction π Mathlib.RingTheory.Polynomial.Basic
{R : Type u} [CommRing R] (p : Polynomial R) : Polynomial.map (algebraMap (β₯(Subring.closure βp.coeffs)) R) p.restriction = p - Polynomial.derivative_map π Mathlib.Algebra.Polynomial.Derivative
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (p : Polynomial R) (f : R β+* S) : Polynomial.derivative (Polynomial.map f p) = Polynomial.map f (Polynomial.derivative p) - Polynomial.iterate_derivative_map π Mathlib.Algebra.Polynomial.Derivative
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (p : Polynomial R) (f : R β+* S) (k : β) : (βPolynomial.derivative)^[k] (Polynomial.map f p) = Polynomial.map f ((βPolynomial.derivative)^[k] p) - Polynomial.derivativeFinsupp_map π Mathlib.Algebra.Polynomial.Derivative
{R : Type u} {S : Type v} [Semiring R] [Semiring S] (p : Polynomial R) (f : R β+* S) : Polynomial.derivativeFinsupp (Polynomial.map f p) = Finsupp.mapRange (fun x => Polynomial.map f x) β― (Polynomial.derivativeFinsupp p) - Polynomial.map_divByMonic π Mathlib.Algebra.Polynomial.Div
{R : Type u} {S : Type v} [Ring R] {p q : Polynomial R} [Ring S] (f : R β+* S) (hq : q.Monic) : Polynomial.map f (p /β q) = Polynomial.map f p /β Polynomial.map f q - Polynomial.map_modByMonic π Mathlib.Algebra.Polynomial.Div
{R : Type u} {S : Type v} [Ring R] {p q : Polynomial R} [Ring S] (f : R β+* S) (hq : q.Monic) : Polynomial.map f (p %β q) = Polynomial.map f p %β Polynomial.map f q - Polynomial.map_mod_divByMonic π Mathlib.Algebra.Polynomial.Div
{R : Type u} {S : Type v} [Ring R] {p q : Polynomial R} [Ring S] (f : R β+* S) (hq : q.Monic) : Polynomial.map f (p /β q) = Polynomial.map f p /β Polynomial.map f q β§ Polynomial.map f (p %β q) = Polynomial.map f p %β Polynomial.map f q - Polynomial.map_dvd_map π Mathlib.Algebra.Polynomial.Div
{R : Type u} {S : Type v} [Ring R] [Ring S] (f : R β+* S) (hf : Function.Injective βf) {x y : Polynomial R} (hx : x.Monic) : Polynomial.map f x β£ Polynomial.map f y β x β£ y - Polynomial.map_contract π Mathlib.Algebra.Polynomial.Expand
{R : Type u} [CommSemiring R] {S : Type v} [CommSemiring S] {p : β} (hp : p β 0) {f : R β+* S} {q : Polynomial R} : Polynomial.map f (Polynomial.contract p q) = Polynomial.contract p (Polynomial.map f q) - Polynomial.expand_char π Mathlib.Algebra.Polynomial.Expand
{R : Type u} [CommSemiring R] (p : β) [ExpChar R p] (f : Polynomial R) : Polynomial.map (frobenius R p) ((Polynomial.expand R p) f) = f ^ p - Polynomial.map_expand π Mathlib.Algebra.Polynomial.Expand
{R : Type u} [CommSemiring R] {S : Type v} [CommSemiring S] {p : β} {f : R β+* S} {q : Polynomial R} : Polynomial.map f ((Polynomial.expand R p) q) = (Polynomial.expand S p) (Polynomial.map f q) - Polynomial.map_expand_pow_char π Mathlib.Algebra.Polynomial.Expand
{R : Type u} [CommSemiring R] (p : β) [ExpChar R p] (f : Polynomial R) (n : β) : Polynomial.map (frobenius R p ^ n) ((Polynomial.expand R (p ^ n)) f) = f ^ p ^ n - Polynomial.aroots_def π Mathlib.Algebra.Polynomial.Roots
{T : Type w} [CommRing T] (p : Polynomial T) (S : Type u_1) [CommRing S] [IsDomain S] [Algebra T S] : p.aroots S = (Polynomial.map (algebraMap T S) p).roots - Polynomial.aroots.eq_1 π Mathlib.Algebra.Polynomial.Roots
{T : Type w} [CommRing T] (p : Polynomial T) (S : Type u_1) [CommRing S] [IsDomain S] [Algebra T S] : p.aroots S = (Polynomial.map (algebraMap T S) p).roots - Polynomial.bUnion_roots_finite π Mathlib.Algebra.Polynomial.Roots
{R : Type u_1} {S : Type u_2} [Semiring R] [CommRing S] [IsDomain S] [DecidableEq S] (m : R β+* S) (d : β) {U : Set R} (h : U.Finite) : (β f, β (_ : f.natDegree β€ d β§ β (i : β), f.coeff i β U), β(Polynomial.map m f).roots.toFinset).Finite - Polynomial.card_roots_le_map_of_injective π Mathlib.Algebra.Polynomial.Roots
{A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [IsDomain A] [IsDomain B] {p : Polynomial A} {f : A β+* B} (hf : Function.Injective βf) : p.roots.card β€ (Polynomial.map f p).roots.card - Polynomial.card_roots_le_map π Mathlib.Algebra.Polynomial.Roots
{A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [IsDomain A] [IsDomain B] {p : Polynomial A} {f : A β+* B} (h : Polynomial.map f p β 0) : p.roots.card β€ (Polynomial.map f p).roots.card - Polynomial.mem_roots_map_of_injective π Mathlib.Algebra.Polynomial.Roots
{R : Type u} {S : Type v} [CommRing R] [IsDomain R] [Semiring S] {p : Polynomial S} {f : S β+* R} (hf : Function.Injective βf) {x : R} (hp : p β 0) : x β (Polynomial.map f p).roots β Polynomial.evalβ f x p = 0 - Polynomial.Monic.roots_map_of_card_eq_natDegree π Mathlib.Algebra.Polynomial.Roots
{A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [IsDomain A] [IsDomain B] {p : Polynomial A} (hm : p.Monic) (f : A β+* B) (hroots : p.roots.card = p.natDegree) : Multiset.map (βf) p.roots = (Polynomial.map f p).roots - Polynomial.aroots_map π Mathlib.Algebra.Polynomial.Roots
(R : Type u) (S : Type v) {T : Type w} [CommRing R] [IsDomain R] [CommRing T] (p : Polynomial T) [CommRing S] [Algebra T S] [Algebra S R] [Algebra T R] [IsScalarTower T S R] : (Polynomial.map (algebraMap T S) p).aroots R = p.aroots R - Polynomial.eq_rootMultiplicity_map π Mathlib.Algebra.Polynomial.Roots
{A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] {p : Polynomial A} {f : A β+* B} (hf : Function.Injective βf) (a : A) : Polynomial.rootMultiplicity a p = Polynomial.rootMultiplicity (f a) (Polynomial.map f p) - Polynomial.le_rootMultiplicity_map π Mathlib.Algebra.Polynomial.Roots
{A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] {p : Polynomial A} {f : A β+* B} (hmap : Polynomial.map f p β 0) (a : A) : Polynomial.rootMultiplicity a p β€ Polynomial.rootMultiplicity (f a) (Polynomial.map f p) - Polynomial.count_map_roots_of_injective π Mathlib.Algebra.Polynomial.Roots
{A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [IsDomain A] [DecidableEq B] (p : Polynomial A) {f : A β+* B} (hf : Function.Injective βf) (b : B) : Multiset.count b (Multiset.map (βf) p.roots) β€ Polynomial.rootMultiplicity b (Polynomial.map f p) - Polynomial.count_map_roots π Mathlib.Algebra.Polynomial.Roots
{A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [IsDomain A] [DecidableEq B] {p : Polynomial A} {f : A β+* B} (hmap : Polynomial.map f p β 0) (b : B) : Multiset.count b (Multiset.map (βf) p.roots) β€ Polynomial.rootMultiplicity b (Polynomial.map f p) - Polynomial.map_roots_le_of_injective π Mathlib.Algebra.Polynomial.Roots
{A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [IsDomain A] [IsDomain B] (p : Polynomial A) {f : A β+* B} (hf : Function.Injective βf) : Multiset.map (βf) p.roots β€ (Polynomial.map f p).roots - Polynomial.map_roots_le π Mathlib.Algebra.Polynomial.Roots
{A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [IsDomain A] [IsDomain B] {p : Polynomial A} {f : A β+* B} (h : Polynomial.map f p β 0) : Multiset.map (βf) p.roots β€ (Polynomial.map f p).roots - Polynomial.roots_map_of_injective_of_card_eq_natDegree π Mathlib.Algebra.Polynomial.Roots
{A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [IsDomain A] [IsDomain B] {p : Polynomial A} {f : A β+* B} (hf : Function.Injective βf) (hroots : p.roots.card = p.natDegree) : Multiset.map (βf) p.roots = (Polynomial.map f p).roots - Polynomial.roots_map_of_map_ne_zero_of_card_eq_natDegree π Mathlib.Algebra.Polynomial.Roots
{A : Type u_1} {B : Type u_2} [CommRing A] [CommRing B] [IsDomain A] [IsDomain B] {p : Polynomial A} (f : A β+* B) (h : Polynomial.map f p β 0) (hroots : p.roots.card = p.natDegree) : Multiset.map (βf) p.roots = (Polynomial.map f p).roots - Polynomial.mem_aroots' π Mathlib.Algebra.Polynomial.Roots
{S : Type v} {T : Type w} [CommRing T] [CommRing S] [IsDomain S] [Algebra T S] {p : Polynomial T} {a : S} : a β p.aroots S β Polynomial.map (algebraMap T S) p β 0 β§ (Polynomial.aeval a) p = 0 - Polynomial.mem_rootSet' π Mathlib.Algebra.Polynomial.Roots
{T : Type w} [CommRing T] {p : Polynomial T} {S : Type u_1} [CommRing S] [IsDomain S] [Algebra T S] {a : S} : a β p.rootSet S β Polynomial.map (algebraMap T S) p β 0 β§ (Polynomial.aeval a) p = 0 - Polynomial.rootSet_maps_to' π Mathlib.Algebra.Polynomial.Roots
{T : Type w} [CommRing T] {p : Polynomial T} {S : Type u_1} {S' : Type u_2} [CommRing S] [IsDomain S] [Algebra T S] [CommRing S'] [IsDomain S'] [Algebra T S'] (hp : Polynomial.map (algebraMap T S') p = 0 β Polynomial.map (algebraMap T S) p = 0) (f : S ββ[T] S') : Set.MapsTo (βf) (p.rootSet S) (p.rootSet S') - Polynomial.eval_map_algebraMap π Mathlib.RingTheory.Polynomial.Tower
{R : Type u_1} {B : Type u_3} [CommSemiring R] [Semiring B] [Algebra R B] (P : Polynomial R) (b : B) : Polynomial.eval b (Polynomial.map (algebraMap R B) P) = (Polynomial.aeval b) P - Polynomial.aeval_map_algebraMap π Mathlib.RingTheory.Polynomial.Tower
{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) : (Polynomial.aeval x) (Polynomial.map (algebraMap R A) p) = (Polynomial.aeval x) p - PolynomialModule.map_smul π Mathlib.Algebra.Polynomial.Module.Basic
{R : Type u_1} {M : Type u_2} [CommRing R] [AddCommGroup M] [Module R M] (R' : Type u_4) {M' : Type u_5} [CommRing R'] [AddCommGroup M'] [Module R' M'] [Module R M'] [Algebra R R'] [IsScalarTower R R' M'] (f : M ββ[R] M') (p : Polynomial R) (q : PolynomialModule R M) : (PolynomialModule.map R' f) (p β’ q) = Polynomial.map (algebraMap R R') p β’ (PolynomialModule.map R' f) q - Polynomial.mem_lifts π Mathlib.Algebra.Polynomial.Lifts
{R : Type u} [Semiring R] {S : Type v} [Semiring S] {f : R β+* S} (p : Polynomial S) : p β Polynomial.lifts f β β q, Polynomial.map f q = p - Polynomial.lifts_iff_set_range π Mathlib.Algebra.Polynomial.Lifts
{R : Type u} [Semiring R] {S : Type v} [Semiring S] {f : R β+* S} (p : Polynomial S) : p β Polynomial.lifts f β p β Set.range (Polynomial.map f) - Polynomial.mem_lifts_and_degree_eq π Mathlib.Algebra.Polynomial.Lifts
{R : Type u} [Semiring R] {S : Type v} [Semiring S] {f : R β+* S} {p : Polynomial S} (hlifts : p β Polynomial.lifts f) : β q, Polynomial.map f q = p β§ q.degree = p.degree - Polynomial.lifts_and_natDegree_eq_and_monic π Mathlib.Algebra.Polynomial.Lifts
{R : Type u} [Semiring R] {S : Type v} [Semiring S] {f : R β+* S} {p : Polynomial S} (hlifts : p β Polynomial.lifts f) (hp : p.Monic) : β q, Polynomial.map f q = p β§ q.natDegree = p.natDegree β§ q.Monic - Polynomial.lifts_and_degree_eq_and_monic π Mathlib.Algebra.Polynomial.Lifts
{R : Type u} [Semiring R] {S : Type v} [Semiring S] {f : R β+* S} [Nontrivial S] {p : Polynomial S} (hlifts : p β Polynomial.lifts f) (hp : p.Monic) : β q, Polynomial.map f q = p β§ q.degree = p.degree β§ q.Monic - Polynomial.mapAlg_eq_map π Mathlib.Algebra.Polynomial.Lifts
{R : Type u} [CommSemiring R] {S : Type v} [Semiring S] [Algebra R S] (p : Polynomial R) : (Polynomial.mapAlg R S) p = Polynomial.map (algebraMap R S) p - Polynomial.monomial_mem_lifts_and_degree_eq π Mathlib.Algebra.Polynomial.Lifts
{R : Type u} [Semiring R] {S : Type v} [Semiring S] {f : R β+* S} {s : S} {n : β} (hl : (Polynomial.monomial n) s β Polynomial.lifts f) : β q, Polynomial.map f q = (Polynomial.monomial n) s β§ q.degree = ((Polynomial.monomial n) s).degree - Polynomial.map_smul π Mathlib.Algebra.Polynomial.Eval.SMul
{R : Type u} {S : Type v} [Semiring R] {p : Polynomial R} [Semiring S] (f : R β+* S) (r : R) : Polynomial.map f (r β’ p) = f r β’ Polynomial.map f p - PolyEquivTensor.toFunAlgHom_apply_tmul_eq_smul π Mathlib.RingTheory.PolynomialAlgebra
(R : Type u_1) (A : Type u_2) [CommSemiring R] [Semiring A] [Algebra R A] (a : A) (p : Polynomial R) : (PolyEquivTensor.toFunAlgHom R A) (a ββ[R] p) = a β’ Polynomial.map (algebraMap R A) p - polyEquivTensor_symm_apply_tmul_eq_smul π Mathlib.RingTheory.PolynomialAlgebra
(R : Type u_1) (A : Type u_2) [CommSemiring R] [Semiring A] [Algebra R A] (a : A) (p : Polynomial R) : (polyEquivTensor R A).symm (a ββ[R] p) = a β’ Polynomial.map (algebraMap R A) p - PolyEquivTensor.toFunBilinear_apply_eq_smul π Mathlib.RingTheory.PolynomialAlgebra
(R : Type u_1) (A : Type u_2) [CommSemiring R] [Semiring A] [Algebra R A] (a : A) (p : Polynomial R) : ((PolyEquivTensor.toFunBilinear R A) a) p = a β’ Polynomial.map (algebraMap R A) p - matPolyEquiv_smul_one π Mathlib.RingTheory.MatrixPolynomialAlgebra
{R : Type u_1} [CommSemiring R] {n : Type w} [DecidableEq n] [Fintype n] (p : Polynomial R) : matPolyEquiv (p β’ 1) = Polynomial.map (algebraMap R (Matrix n n R)) p - matPolyEquiv_map_smul π Mathlib.RingTheory.MatrixPolynomialAlgebra
{R : Type u_1} [CommSemiring R] {n : Type w} [DecidableEq n] [Fintype n] (p : Polynomial R) (M : Matrix n n (Polynomial R)) : matPolyEquiv (p β’ M) = Polynomial.map (algebraMap R (Matrix n n R)) p * matPolyEquiv M - Matrix.charpoly_map π Mathlib.LinearAlgebra.Matrix.Charpoly.Basic
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] {n : Type u_4} [DecidableEq n] [Fintype n] (M : Matrix n n R) (f : R β+* S) : (M.map βf).charpoly = Polynomial.map f M.charpoly - Matrix.charmatrix_map π Mathlib.LinearAlgebra.Matrix.Charpoly.Basic
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] {n : Type u_4} [DecidableEq n] [Fintype n] (M : Matrix n n R) (f : R β+* S) : (M.map βf).charmatrix = M.charmatrix.map (Polynomial.map f) - Polynomial.map_scaleRoots π Mathlib.RingTheory.Polynomial.ScaleRoots
{R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (p : Polynomial R) (x : R) (f : R β+* S) (h : f p.leadingCoeff β 0) : Polynomial.map f (p.scaleRoots x) = (Polynomial.map f p).scaleRoots (f x) - IsLocalization.integerNormalization_map_to_map π Mathlib.RingTheory.Localization.Integral
{R : Type u_1} [CommRing R] (M : Submonoid R) {S : Type u_2} [CommRing S] [Algebra R S] [IsLocalization M S] (p : Polynomial S) : β b, Polynomial.map (algebraMap R S) (IsLocalization.integerNormalization M p) = βb β’ p - Ideal.comap_lt_comap_of_root_mem_sdiff π Mathlib.RingTheory.Ideal.GoingUp
{R : Type u_1} [CommRing R] {S : Type u_2} [CommRing S] {f : R β+* S} {I J : Ideal S} [I.IsPrime] (hIJ : I β€ J) {r : S} (hr : r β βJ \ βI) {p : Polynomial R} (p_ne_zero : Polynomial.map (Ideal.Quotient.mk (Ideal.comap f I)) p β 0) (hp : Polynomial.evalβ f r p β I) : Ideal.comap f I < Ideal.comap f J - Ideal.exists_coeff_mem_comap_sdiff_comap_of_root_mem_sdiff π Mathlib.RingTheory.Ideal.GoingUp
{R : Type u_1} [CommRing R] {S : Type u_2} [CommRing S] {f : R β+* S} {I J : Ideal S} [I.IsPrime] (hIJ : I β€ J) {r : S} (hr : r β βJ \ βI) {p : Polynomial R} (p_ne_zero : Polynomial.map (Ideal.Quotient.mk (Ideal.comap f I)) p β 0) (hpI : Polynomial.evalβ f r p β I) : β i, p.coeff i β β(Ideal.comap f J) \ β(Ideal.comap f I) - Ideal.exists_nonzero_mem_of_ne_bot π Mathlib.RingTheory.Ideal.GoingUp
{R : Type u_1} [CommRing R] {P : Ideal (Polynomial R)} (Pb : P β β₯) (hP : β (x : R), Polynomial.C x β P β x = 0) : β p β P, Polynomial.map (Ideal.Quotient.mk (Ideal.comap Polynomial.C P)) p β 0 - Ring.DirectLimit.Polynomial.exists_of π Mathlib.Algebra.Colimit.Ring
{ΞΉ : Type u_1} [Preorder ΞΉ] {G : ΞΉ β Type u_2} [(i : ΞΉ) β CommRing (G i)] {f' : (i j : ΞΉ) β i β€ j β G i β+* G j} [Nonempty ΞΉ] [IsDirected ΞΉ fun x1 x2 => x1 β€ x2] (q : Polynomial (Ring.DirectLimit G fun i j h => β(f' i j h))) : β i p, Polynomial.map (Ring.DirectLimit.of G (fun i j h => β(f' i j h)) i) p = q - Polynomial.monic_map_iff π Mathlib.Algebra.Polynomial.FieldDivision
{R : Type u} {S : Type v} [DivisionRing R] [Semiring S] [Nontrivial S] {f : R β+* S} {p : Polynomial R} : (Polynomial.map f p).Monic β p.Monic - Polynomial.natDegree_map π Mathlib.Algebra.Polynomial.FieldDivision
{R : Type u} {S : Type v} [DivisionRing R] {p : Polynomial R} [Semiring S] [Nontrivial S] (f : R β+* S) : (Polynomial.map f p).natDegree = p.natDegree - Polynomial.degree_map π Mathlib.Algebra.Polynomial.FieldDivision
{R : Type u} {S : Type v} [DivisionRing R] [Semiring S] [Nontrivial S] (p : Polynomial R) (f : R β+* S) : (Polynomial.map f p).degree = p.degree - Polynomial.leadingCoeff_map π Mathlib.Algebra.Polynomial.FieldDivision
{R : Type u} {S : Type v} [DivisionRing R] {p : Polynomial R} [Semiring S] [Nontrivial S] (f : R β+* S) : (Polynomial.map f p).leadingCoeff = f p.leadingCoeff - Polynomial.map_ne_zero π Mathlib.Algebra.Polynomial.FieldDivision
{R : Type u} {S : Type v} [DivisionRing R] {p : Polynomial R} [Semiring S] [Nontrivial S] {f : R β+* S} (hp : p β 0) : Polynomial.map f p β 0 - Polynomial.map_eq_zero π Mathlib.Algebra.Polynomial.FieldDivision
{R : Type u} {S : Type v} [DivisionRing R] {p : Polynomial R} [Semiring S] [Nontrivial S] (f : R β+* S) : Polynomial.map f p = 0 β p = 0 - Polynomial.isCoprime_map π Mathlib.Algebra.Polynomial.FieldDivision
{R : Type u} {k : Type y} [Field R] {p q : Polynomial R} [Field k] (f : R β+* k) : IsCoprime (Polynomial.map f p) (Polynomial.map f q) β IsCoprime p q - Polynomial.isUnit_map π Mathlib.Algebra.Polynomial.FieldDivision
{R : Type u} {k : Type y} [Field R] {p : Polynomial R} [Field k] (f : R β+* k) : IsUnit (Polynomial.map f p) β IsUnit p - Polynomial.mem_roots_map π Mathlib.Algebra.Polynomial.FieldDivision
{R : Type u} {k : Type y} [Field R] {p : Polynomial R} [CommRing k] [IsDomain k] {f : R β+* k} {x : k} (hp : p β 0) : x β (Polynomial.map f p).roots β Polynomial.evalβ f x p = 0 - Polynomial.map_div π Mathlib.Algebra.Polynomial.FieldDivision
{R : Type u} {k : Type y} [Field R] {p q : Polynomial R} [Field k] (f : R β+* k) : Polynomial.map f (p / q) = Polynomial.map f p / Polynomial.map f q - Polynomial.map_mod π Mathlib.Algebra.Polynomial.FieldDivision
{R : Type u} {k : Type y} [Field R] {p q : Polynomial R} [Field k] (f : R β+* k) : Polynomial.map f (p % q) = Polynomial.map f p % Polynomial.map f q - Polynomial.gcd_map π Mathlib.Algebra.Polynomial.FieldDivision
{R : Type u} {k : Type y} [Field R] {p q : Polynomial R} [Field k] [DecidableEq R] [DecidableEq k] (f : R β+* k) : EuclideanDomain.gcd (Polynomial.map f p) (Polynomial.map f q) = Polynomial.map f (EuclideanDomain.gcd p q) - Polynomial.map_dvd_map' π Mathlib.Algebra.Polynomial.FieldDivision
{R : Type u} {k : Type y} [Field R] [Field k] (f : R β+* k) {x y : Polynomial R} : Polynomial.map f x β£ Polynomial.map f y β x β£ y - Polynomial.splits_id_iff_splits π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [CommRing K] [Field L] (i : K β+* L) {f : Polynomial K} : Polynomial.Splits (RingHom.id L) (Polynomial.map i f) β Polynomial.Splits i f - Polynomial.splits_of_map_degree_eq_one π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [CommRing K] [Field L] (i : K β+* L) {f : Polynomial K} (hf : (Polynomial.map i f).degree = 1) : Polynomial.Splits i f - Polynomial.rootOfSplits' π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [CommRing K] [Field L] (i : K β+* L) {f : Polynomial K} (hf : Polynomial.Splits i f) (hfd : (Polynomial.map i f).degree β 0) : L - Polynomial.natDegree_eq_card_roots π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [Field K] [Field L] {p : Polynomial K} {i : K β+* L} (hsplit : Polynomial.Splits i p) : p.natDegree = (Polynomial.map i p).roots.card - Polynomial.natDegree_eq_card_roots' π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [CommRing K] [Field L] {p : Polynomial K} {i : K β+* L} (hsplit : Polynomial.Splits i p) : (Polynomial.map i p).natDegree = (Polynomial.map i p).roots.card - Polynomial.splits_iff_comp_splits_of_degree_eq_one π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [CommRing K] [Field L] {i : K β+* L} {f p : Polynomial K} (hd : (Polynomial.map i p).degree = 1) : Polynomial.Splits i f β Polynomial.Splits i (f.comp p) - Polynomial.roots_ne_zero_of_splits π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [Field K] [Field L] (i : K β+* L) {f : Polynomial K} (hs : Polynomial.Splits i f) (hf0 : f.natDegree β 0) : (Polynomial.map i f).roots β 0 - Polynomial.Splits.comp_of_map_degree_le_one π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [CommRing K] [Field L] {i : K β+* L} {f p : Polynomial K} (hd : (Polynomial.map i p).degree β€ 1) (h : Polynomial.Splits i f) : Polynomial.Splits i (f.comp p) - Polynomial.roots_ne_zero_of_splits' π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [CommRing K] [Field L] (i : K β+* L) {f : Polynomial K} (hs : Polynomial.Splits i f) (hf0 : (Polynomial.map i f).natDegree β 0) : (Polynomial.map i f).roots β 0 - Polynomial.splits_map_iff π Mathlib.Algebra.Polynomial.Splits
{F : Type u} {K : Type v} {L : Type w} [CommRing K] [Field L] [Field F] (i : K β+* L) (j : L β+* F) {f : Polynomial K} : Polynomial.Splits j (Polynomial.map i f) β Polynomial.Splits (j.comp i) f - Polynomial.exists_root_of_splits' π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [CommRing K] [Field L] (i : K β+* L) {f : Polynomial K} (hs : Polynomial.Splits i f) (hf0 : (Polynomial.map i f).degree β 0) : β x, Polynomial.evalβ i x f = 0 - Polynomial.map_rootOfSplits' π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [CommRing K] [Field L] (i : K β+* L) {f : Polynomial K} (hf : Polynomial.Splits i f) (hfd : (Polynomial.map i f).degree β 0) : Polynomial.evalβ i (Polynomial.rootOfSplits' i hf hfd) f = 0 - Polynomial.degree_eq_card_roots π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [Field K] [Field L] {p : Polynomial K} {i : K β+* L} (p_ne_zero : p β 0) (hsplit : Polynomial.Splits i p) : p.degree = β(Polynomial.map i p).roots.card - Polynomial.splits_id_of_splits π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [Field K] [Field L] (i : K β+* L) {f : Polynomial K} (h : Polynomial.Splits i f) (roots_mem_range : β a β (Polynomial.map i f).roots, a β i.range) : Polynomial.Splits (RingHom.id K) f - Polynomial.roots_map π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [Field K] [Field L] (i : K β+* L) {f : Polynomial K} (hf : Polynomial.Splits (RingHom.id K) f) : (Polynomial.map i f).roots = Multiset.map (βi) f.roots - Polynomial.degree_eq_card_roots' π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [CommRing K] [Field L] {p : Polynomial K} {i : K β+* L} (p_ne_zero : Polynomial.map i p β 0) (hsplit : Polynomial.Splits i p) : (Polynomial.map i p).degree = β(Polynomial.map i p).roots.card - Polynomial.splits_of_map_eq_C π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [CommRing K] [Field L] (i : K β+* L) {f : Polynomial K} {a : L} (h : Polynomial.map i f = Polynomial.C a) : Polynomial.Splits i f - Polynomial.splits_of_splits_mul' π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [CommRing K] [Field L] (i : K β+* L) {f g : Polynomial K} (hfg : Polynomial.map i (f * g) β 0) (h : Polynomial.Splits i (f * g)) : Polynomial.Splits i f β§ Polynomial.Splits i g - Polynomial.splits_of_comp π Mathlib.Algebra.Polynomial.Splits
{F : Type u} {K : Type v} {L : Type w} [Field K] [Field L] [Field F] (i : K β+* L) (j : L β+* F) {f : Polynomial K} (h : Polynomial.Splits (j.comp i) f) (roots_mem_range : β a β (Polynomial.map (j.comp i) f).roots, a β j.range) : Polynomial.Splits i f - Polynomial.rootOfSplits'_eq_rootOfSplits π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [Field K] [Field L] (i : K β+* L) {f : Polynomial K} (hf : Polynomial.Splits i f) (hfd : (Polynomial.map i f).degree β 0) : Polynomial.rootOfSplits' i hf hfd = Polynomial.rootOfSplits i hf β― - Polynomial.Splits.def π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [Field K] [Field L] {i : K β+* L} {f : Polynomial K} (h : Polynomial.Splits i f) : f = 0 β¨ β {g : Polynomial L}, Irreducible g β g β£ Polynomial.map i f β g.degree = 1 - Polynomial.splits_iff π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [Field K] [Field L] (i : K β+* L) (f : Polynomial K) : Polynomial.Splits i f β f = 0 β¨ β {g : Polynomial L}, Irreducible g β g β£ Polynomial.map i f β g.degree = 1 - Polynomial.Splits.eq_1 π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [CommRing K] [Field L] (i : K β+* L) (f : Polynomial K) : Polynomial.Splits i f = (Polynomial.map i f = 0 β¨ β {g : Polynomial L}, Irreducible g β g β£ Polynomial.map i f β g.degree = 1) - Polynomial.eq_X_sub_C_of_splits_of_single_root π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [Field K] [Field L] (i : K β+* L) {x : K} {h : Polynomial K} (h_splits : Polynomial.Splits i h) (h_roots : (Polynomial.map i h).roots = {i x}) : h = Polynomial.C h.leadingCoeff * (Polynomial.X - Polynomial.C x) - Polynomial.splits_of_exists_multiset π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [Field K] [Field L] (i : K β+* L) {f : Polynomial K} {s : Multiset L} (hs : Polynomial.map i f = Polynomial.C (i f.leadingCoeff) * (Multiset.map (fun a => Polynomial.X - Polynomial.C a) s).prod) : Polynomial.Splits i f - Polynomial.splits_iff_exists_multiset π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [Field K] [Field L] (i : K β+* L) {f : Polynomial K} : Polynomial.Splits i f β β s, Polynomial.map i f = Polynomial.C (i f.leadingCoeff) * (Multiset.map (fun a => Polynomial.X - Polynomial.C a) s).prod - Polynomial.eq_prod_roots_of_splits π Mathlib.Algebra.Polynomial.Splits
{K : Type v} {L : Type w} [Field K] [Field L] {p : Polynomial K} {i : K β+* L} (hsplit : Polynomial.Splits i p) : Polynomial.map i p = Polynomial.C (i p.leadingCoeff) * (Multiset.map (fun a => Polynomial.X - Polynomial.C a) (Polynomial.map i p).roots).prod - Polynomial.Splits.mem_subfield_of_isRoot π Mathlib.Algebra.Polynomial.Splits
{K : Type v} [Field K] (F : Subfield K) {f : Polynomial β₯F} (hnz : f β 0) (hf : Polynomial.Splits (RingHom.id β₯F) f) {x : K} (hx : (Polynomial.map F.subtype f).IsRoot x) : x β F - Cubic.map_toPoly π Mathlib.Algebra.CubicDiscriminant
{R : Type u_1} {S : Type u_2} {P : Cubic R} [Semiring R] [Semiring S] {Ο : R β+* S} : (Cubic.map Ο P).toPoly = Polynomial.map Ο P.toPoly - Cubic.map_roots π Mathlib.Algebra.CubicDiscriminant
{R : Type u_1} {S : Type u_2} {P : Cubic R} [CommRing R] [CommRing S] {Ο : R β+* S} [IsDomain S] : (Cubic.map Ο P).roots = (Polynomial.map Ο P.toPoly).roots - Polynomial.generalizedEisenstein π Mathlib.RingTheory.Polynomial.Eisenstein.Criterion
{R : Type u_1} [CommRing R] [IsDomain R] {K : Type u_2} [Field K] [Algebra R K] {q f : Polynomial R} {p : β} (hq_irr : Irreducible (Polynomial.map (algebraMap R K) q)) (hq_monic : q.Monic) (hf_prim : f.IsPrimitive) (hfd0 : 0 < f.natDegree) (hfP : (algebraMap R K) f.leadingCoeff β 0) (hfmodP : Polynomial.map (algebraMap R K) f = Polynomial.C ((algebraMap R K) f.leadingCoeff) * Polynomial.map (algebraMap R K) q ^ p) (hfmodP2 : Polynomial.map (Ideal.Quotient.mk (RingHom.ker (algebraMap R K) ^ 2)) (f %β q) β 0) : Irreducible f - Polynomial.IsWeaklyEisensteinAt.map π Mathlib.RingTheory.Polynomial.Eisenstein.Basic
{R : Type u} [CommSemiring R] {π : Ideal R} {f : Polynomial R} (hf : f.IsWeaklyEisensteinAt π) {A : Type v} [CommSemiring A] (Ο : R β+* A) : (Polynomial.map Ο f).IsWeaklyEisensteinAt (Ideal.map Ο π) - Polynomial.IsWeaklyEisensteinAt.pow_natDegree_le_of_aeval_zero_of_monic_mem_map π Mathlib.RingTheory.Polynomial.Eisenstein.Basic
{R : Type u} [CommRing R] {π : Ideal R} {f : Polynomial R} {S : Type v} [CommRing S] [Algebra R S] (hf : f.IsWeaklyEisensteinAt π) {x : S} (hx : (Polynomial.aeval x) f = 0) (hmo : f.Monic) (i : β) : (Polynomial.map (algebraMap R S) f).natDegree β€ i β x ^ i β Ideal.map (algebraMap R S) π - Polynomial.IsWeaklyEisensteinAt.exists_mem_adjoin_mul_eq_pow_natDegree π Mathlib.RingTheory.Polynomial.Eisenstein.Basic
{R : Type u} [CommRing R] {f : Polynomial R} {S : Type v} [CommRing S] [Algebra R S] {p : R} {x : S} (hx : (Polynomial.aeval x) f = 0) (hmo : f.Monic) (hf : f.IsWeaklyEisensteinAt (Submodule.span R {p})) : β y β Algebra.adjoin R {x}, (algebraMap R S) p * y = x ^ (Polynomial.map (algebraMap R S) f).natDegree - Polynomial.IsWeaklyEisensteinAt.exists_mem_adjoin_mul_eq_pow_natDegree_le π Mathlib.RingTheory.Polynomial.Eisenstein.Basic
{R : Type u} [CommRing R] {f : Polynomial R} {S : Type v} [CommRing S] [Algebra R S] {p : R} {x : S} (hx : (Polynomial.aeval x) f = 0) (hmo : f.Monic) (hf : f.IsWeaklyEisensteinAt (Submodule.span R {p})) (i : β) : (Polynomial.map (algebraMap R S) f).natDegree β€ i β β y β Algebra.adjoin R {x}, (algebraMap R S) p * y = x ^ i - minpoly.map_ne_one π Mathlib.FieldTheory.Minpoly.Basic
(A : Type u_1) {B : Type u_2} [CommRing A] [Ring B] [Algebra A B] (x : B) [Nontrivial B] {R : Type u_4} [Semiring R] [Nontrivial R] (f : A β+* R) : Polynomial.map f (minpoly A x) β 1 - minpoly.dvd_map_of_isScalarTower π Mathlib.FieldTheory.Minpoly.Field
(A : Type u_3) (K : Type u_4) {R : Type u_5} [CommRing A] [Field K] [Ring R] [Algebra A K] [Algebra A R] [Algebra K R] [IsScalarTower A K R] (x : R) : minpoly K x β£ Polynomial.map (algebraMap A K) (minpoly A x) - minpoly.dvd_map_of_isScalarTower' π Mathlib.FieldTheory.Minpoly.Field
(R : Type u_3) {S : Type u_4} (K : Type u_5) (L : Type u_6) [CommRing R] [CommRing S] [Field K] [Ring L] [Algebra R S] [Algebra R K] [Algebra S L] [Algebra K L] [Algebra R L] [IsScalarTower R K L] [IsScalarTower R S L] (s : S) : minpoly K ((algebraMap S L) s) β£ Polynomial.map (algebraMap R K) (minpoly R s) - minpoly.map_algebraMap π Mathlib.FieldTheory.Minpoly.Field
{F : Type u_3} {E : Type u_4} {A : Type u_5} [Field F] [Field E] [CommRing A] [Algebra F E] [Algebra E A] [Algebra F A] [IsScalarTower F E A] {a : A} (ha : IsIntegral F a) (h : minpoly E a β Polynomial.lifts (algebraMap F E)) : Polynomial.map (algebraMap F E) (minpoly F a) = minpoly E a - Matrix.charpoly.univ_map_map π Mathlib.LinearAlgebra.Matrix.Charpoly.Univ
{R : Type u_1} {S : Type u_2} (n : Type u_3) [CommRing R] [CommRing S] [Fintype n] [DecidableEq n] (f : R β+* S) : Polynomial.map (MvPolynomial.map f) (Matrix.charpoly.univ R n) = Matrix.charpoly.univ S n - Matrix.charpoly.univ_map_evalβHom π Mathlib.LinearAlgebra.Matrix.Charpoly.Univ
{R : Type u_1} {S : Type u_2} (n : Type u_3) [CommRing R] [CommRing S] [Fintype n] [DecidableEq n] (f : R β+* S) (M : n Γ n β S) : Polynomial.map (MvPolynomial.evalβHom f M) (Matrix.charpoly.univ R n) = (Matrix.of (Function.curry M)).charpoly - LinearMap.polyCharpolyAux.eq_1 π Mathlib.Algebra.Module.LinearMap.Polynomial
{R : Type u_1} {L : Type u_2} {M : Type u_3} {ΞΉ : Type u_5} {ΞΉM : Type u_7} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (Ο : L ββ[R] Module.End R M) [Fintype ΞΉ] [Fintype ΞΉM] [DecidableEq ΞΉ] [DecidableEq ΞΉM] (b : Basis ΞΉ R L) (bβ : Basis ΞΉM R M) : Ο.polyCharpolyAux b bβ = Polynomial.map (β(MvPolynomial.bindβ (LinearMap.toMvPolynomial b bβ.end Ο))) (Matrix.charpoly.univ R ΞΉM) - LinearMap.polyCharpoly_map_eq_charpoly π Mathlib.Algebra.Module.LinearMap.Polynomial
{R : Type u_1} {L : Type u_2} {M : Type u_3} {ΞΉ : Type u_5} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (Ο : L ββ[R] Module.End R M) [Fintype ΞΉ] [DecidableEq ΞΉ] [Module.Free R M] [Module.Finite R M] (b : Basis ΞΉ R L) (x : L) : Polynomial.map (MvPolynomial.eval β(b.repr x)) (Ο.polyCharpoly b) = LinearMap.charpoly (Ο x) - LinearMap.polyCharpolyAux_map_eq_charpoly π Mathlib.Algebra.Module.LinearMap.Polynomial
{R : Type u_1} {L : Type u_2} {M : Type u_3} {ΞΉ : Type u_5} {ΞΉM : Type u_7} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (Ο : L ββ[R] Module.End R M) [Fintype ΞΉ] [Fintype ΞΉM] [DecidableEq ΞΉ] [DecidableEq ΞΉM] (b : Basis ΞΉ R L) (bβ : Basis ΞΉM R M) [Module.Finite R M] [Module.Free R M] (x : L) : Polynomial.map (MvPolynomial.eval β(b.repr x)) (Ο.polyCharpolyAux b bβ) = LinearMap.charpoly (Ο x) - LinearMap.polyCharpoly_eq_of_basis π Mathlib.Algebra.Module.LinearMap.Polynomial
{R : Type u_1} {L : Type u_2} {M : Type u_3} {ΞΉ : Type u_5} {ΞΉM : Type u_7} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (Ο : L ββ[R] Module.End R M) [Fintype ΞΉ] [Fintype ΞΉM] [DecidableEq ΞΉ] [Module.Free R M] [Module.Finite R M] (b : Basis ΞΉ R L) [DecidableEq ΞΉM] (bβ : Basis ΞΉM R M) : Ο.polyCharpoly b = Polynomial.map (β(MvPolynomial.bindβ (LinearMap.toMvPolynomial b bβ.end Ο))) (Matrix.charpoly.univ R ΞΉM) - LinearMap.polyCharpolyAux_map_eval π Mathlib.Algebra.Module.LinearMap.Polynomial
{R : Type u_1} {L : Type u_2} {M : Type u_3} {ΞΉ : Type u_5} {ΞΉM : Type u_7} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (Ο : L ββ[R] Module.End R M) [Fintype ΞΉ] [Fintype ΞΉM] [DecidableEq ΞΉ] [DecidableEq ΞΉM] (b : Basis ΞΉ R L) (bβ : Basis ΞΉM R M) [Module.Finite R M] [Module.Free R M] (x : ΞΉ β R) : Polynomial.map (MvPolynomial.eval x) (Ο.polyCharpolyAux b bβ) = LinearMap.charpoly (Ο (b.repr.symm (Finsupp.equivFunOnFinite.symm x))) - LinearMap.polyCharpolyAux_map_eq_toMatrix_charpoly π Mathlib.Algebra.Module.LinearMap.Polynomial
{R : Type u_1} {L : Type u_2} {M : Type u_3} {ΞΉ : Type u_5} {ΞΉM : Type u_7} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (Ο : L ββ[R] Module.End R M) [Fintype ΞΉ] [Fintype ΞΉM] [DecidableEq ΞΉ] [DecidableEq ΞΉM] (b : Basis ΞΉ R L) (bβ : Basis ΞΉM R M) (x : L) : Polynomial.map (MvPolynomial.eval β(b.repr x)) (Ο.polyCharpolyAux b bβ) = ((LinearMap.toMatrix bβ bβ) (Ο x)).charpoly - LinearMap.polyCharpolyAux_baseChange π Mathlib.Algebra.Module.LinearMap.Polynomial
{R : Type u_1} {L : Type u_2} {M : Type u_3} {ΞΉ : Type u_5} {ΞΉM : Type u_7} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (Ο : L ββ[R] Module.End R M) [Fintype ΞΉ] [Fintype ΞΉM] [DecidableEq ΞΉ] [DecidableEq ΞΉM] (b : Basis ΞΉ R L) (bβ : Basis ΞΉM R M) (A : Type u_8) [CommRing A] [Algebra R A] : (LinearMap.tensorProduct R A M M ββ LinearMap.baseChange A Ο).polyCharpolyAux (Algebra.TensorProduct.basis A b) (Algebra.TensorProduct.basis A bβ) = Polynomial.map (MvPolynomial.map (algebraMap R A)) (Ο.polyCharpolyAux b bβ) - LinearMap.polyCharpoly_baseChange π Mathlib.Algebra.Module.LinearMap.Polynomial
{R : Type u_1} {L : Type u_2} {M : Type u_3} {ΞΉ : Type u_5} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (Ο : L ββ[R] Module.End R M) [Fintype ΞΉ] [DecidableEq ΞΉ] [Module.Free R M] [Module.Finite R M] (b : Basis ΞΉ R L) (A : Type u_8) [CommRing A] [Algebra R A] : (LinearMap.tensorProduct R A M M ββ LinearMap.baseChange A Ο).polyCharpoly (Algebra.TensorProduct.basis A b) = Polynomial.map (MvPolynomial.map (algebraMap R A)) (Ο.polyCharpoly b) - LinearMap.polyCharpolyAux_map_aeval π Mathlib.Algebra.Module.LinearMap.Polynomial
{R : Type u_1} {L : Type u_2} {M : Type u_3} {ΞΉ : Type u_5} {ΞΉM : Type u_7} [CommRing R] [AddCommGroup L] [Module R L] [AddCommGroup M] [Module R M] (Ο : L ββ[R] Module.End R M) [Fintype ΞΉ] [Fintype ΞΉM] [DecidableEq ΞΉ] [DecidableEq ΞΉM] (b : Basis ΞΉ R L) (bβ : Basis ΞΉM R M) (A : Type u_8) [CommRing A] [Algebra R A] [Module.Finite A (TensorProduct R A M)] [Module.Free A (TensorProduct R A M)] (x : ΞΉ β A) : Polynomial.map (MvPolynomial.aeval x).toRingHom (Ο.polyCharpolyAux b bβ) = ((LinearMap.tensorProduct R A M M ββ LinearMap.baseChange A Ο) ((Algebra.TensorProduct.basis A b).repr.symm (Finsupp.equivFunOnFinite.symm x))).charpoly - LieAlgebra.engel_isBot_of_isMin.lieCharpoly_map_eval π Mathlib.Algebra.Lie.CartanExists
{R : Type u_2} {L : Type u_3} (M : Type u_4) [CommRing R] [LieRing L] [LieAlgebra R L] [AddCommGroup M] [Module R M] [LieRingModule L M] [LieModule R L M] [Module.Finite R L] [Module.Free R L] [Module.Finite R M] [Module.Free R M] (x y : L) (r : R) : Polynomial.map (Polynomial.evalRingHom r) (LieAlgebra.engel_isBot_of_isMin.lieCharpolyβ R M x y) = LinearMap.charpoly ((LieModule.toEnd R L M) (r β’ y + x)) - Polynomial.Separable.map π Mathlib.FieldTheory.Separable
{R : Type u} [CommSemiring R] {S : Type v} [CommSemiring S] {p : Polynomial R} (h : p.Separable) {f : R β+* S} : (Polynomial.map f p).Separable - Polynomial.separable_map π Mathlib.FieldTheory.Separable
{F : Type u} [Field F] {S : Type u_1} [CommRing S] [Nontrivial S] (f : F β+* S) {p : Polynomial F} : (Polynomial.map f p).Separable β p.Separable
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using (by default) Ctrl-K Ctrl-S. You can also try the
#loogle
command from LeanSearchClient,
the CLI version, the Loogle
VS Code extension, the lean.nvim
integration or the Zulip bot.
Usage
Loogle finds definitions and lemmas in various ways:
By constant:
πReal.sin
finds all lemmas whose statement somehow mentions the sine function.By lemma name substring:
π"differ"
finds all lemmas that have"differ"
somewhere in their lemma name.By subexpression:
π_ * (_ ^ _)
finds all lemmas whose statements somewhere include a product where the second argument is raised to some power.The pattern can also be non-linear, as in
πReal.sqrt ?a * Real.sqrt ?a
If the pattern has parameters, they are matched in any order. Both of these will find
List.map
:
π(?a -> ?b) -> List ?a -> List ?b
πList ?a -> (?a -> ?b) -> List ?b
By main conclusion:
π|- tsum _ = _ * tsum _
finds all lemmas where the conclusion (the subexpression to the right of allβ
andβ
) has the given shape.As before, if the pattern has parameters, they are matched against the hypotheses of the lemma in any order; for example,
π|- _ < _ β tsum _ < tsum _
will findtsum_lt_tsum
even though the hypothesisf i < g i
is not the last.
If you pass more than one such search filter, separated by commas
Loogle will return lemmas which match all of them. The
search
π Real.sin, "two", tsum, _ * _, _ ^ _, |- _ < _ β _
would find all lemmas which mention the constants Real.sin
and tsum
, have "two"
as a substring of the
lemma name, include a product and a power somewhere in the type,
and have a hypothesis of the form _ < _
(if
there were any such lemmas). Metavariables (?a
) are
assigned independently in each filter.
The #lucky
button will directly send you to the
documentation of the first hit.
Source code
You can find the source code for this service at https://github.com/nomeata/loogle. The https://loogle.lean-lang.org/ service is provided by the Lean FRO.
This is Loogle revision 19971e9
serving mathlib revision bce1d65