Loogle!
Result
Found 40 definitions mentioning Algebra.adjoin and Polynomial.
- Algebra.adjoin_singleton_eq_range_aeval π Mathlib.Algebra.Polynomial.AlgebraMap
(R : Type u) {A : Type z} [CommSemiring R] [Semiring A] [Algebra R A] (x : A) : Algebra.adjoin R {x} = (Polynomial.aeval x).range - Polynomial.aeval_mem_adjoin_singleton π Mathlib.Algebra.Polynomial.AlgebraMap
(R : Type u) {A : Type z} [CommSemiring R] [Semiring A] [Algebra R A] {p : Polynomial R} (x : A) : (Polynomial.aeval x) p β Algebra.adjoin R {x} - Polynomial.adjoin_X π Mathlib.Algebra.Polynomial.AlgebraMap
{R : Type u} [CommSemiring R] : Algebra.adjoin R {Polynomial.X} = β€ - Algebra.mem_ideal_map_adjoin π Mathlib.RingTheory.Polynomial.Basic
{R : Type u_2} {S : Type u_3} [CommRing R] [CommRing S] [Algebra R S] (x : S) (I : Ideal R) {y : β₯(Algebra.adjoin R {x})} : y β Ideal.map (algebraMap R β₯(Algebra.adjoin R {x})) I β β p, (β (i : β), p.coeff i β I) β§ (Polynomial.aeval x) p = βy - Submodule.span_range_natDegree_eq_adjoin π Mathlib.RingTheory.IntegralClosure.IsIntegral.Basic
{R : Type u_5} {A : Type u_6} [CommRing R] [Semiring A] [Algebra R A] {x : A} {f : Polynomial R} (hf : f.Monic) (hfx : (Polynomial.aeval x) f = 0) : Submodule.span R β(Finset.image (fun x_1 => x ^ x_1) (Finset.range f.natDegree)) = Subalgebra.toSubmodule (Algebra.adjoin R {x}) - adjoin_monomial_eq_reesAlgebra π Mathlib.RingTheory.ReesAlgebra
{R : Type u} [CommRing R] (I : Ideal R) : Algebra.adjoin R β(Submodule.map (Polynomial.monomial 1) I) = reesAlgebra I - monomial_mem_adjoin_monomial π Mathlib.RingTheory.ReesAlgebra
{R : Type u} [CommRing R] {I : Ideal R} {n : β} {r : R} (hr : r β I ^ n) : (Polynomial.monomial n) r β Algebra.adjoin R β(Submodule.map (Polynomial.monomial 1) I) - Polynomial.adjoin_rootSet_eq_range π Mathlib.Algebra.Polynomial.Splits
{R : Type u_1} {K : Type v} {L : Type w} [CommRing R] [Field K] [Field L] [Algebra R K] [Algebra R L] {p : Polynomial R} (h : Polynomial.Splits (algebraMap R K) p) (f : K ββ[R] L) : Algebra.adjoin R (p.rootSet L) = f.range β Algebra.adjoin R (p.rootSet K) = β€ - 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 - AdjoinRoot.adjoinRoot_eq_top π Mathlib.RingTheory.AdjoinRoot
{R : Type u} [CommRing R] {f : Polynomial R} : Algebra.adjoin R {AdjoinRoot.root f} = β€ - AdjoinRoot.Minpoly.toAdjoin.apply_X π Mathlib.RingTheory.AdjoinRoot
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {x : S} : (AdjoinRoot.Minpoly.toAdjoin R x) ((AdjoinRoot.mk (minpoly R x)) Polynomial.X) = β¨x, β―β© - AdjoinRoot.Minpoly.toAdjoin_apply π Mathlib.RingTheory.AdjoinRoot
(R : Type u) {S : Type v} [CommRing R] [CommRing S] [Algebra R S] (x : S) (aβ : Polynomial R β§Έ Submodule.toAddSubgroup (Ideal.span {minpoly R x})) : (AdjoinRoot.Minpoly.toAdjoin R x) aβ = (QuotientAddGroup.lift (Submodule.toAddSubgroup (Ideal.span {minpoly R x})) β(Polynomial.evalβRingHom (algebraMap R β₯(Algebra.adjoin R {x})) β¨x, β―β©) β―) aβ - AdjoinRoot.Minpoly.toAdjoin_apply' π Mathlib.RingTheory.AdjoinRoot
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] {x : S} (a : AdjoinRoot (minpoly R x)) : (AdjoinRoot.Minpoly.toAdjoin R x) a = (AdjoinRoot.liftHom (minpoly R x) β¨x, β―β© β―) a - Algebra.adjoin.liftSingleton π Mathlib.RingTheory.Adjoin.Field
(F : Type u_1) [Field F] {S : Type u_2} {T : Type u_3} [CommRing S] [CommRing T] [Algebra F S] [Algebra F T] (x : S) (y : T) (h : (Polynomial.aeval y) (minpoly F x) = 0) : β₯(Algebra.adjoin F {x}) ββ[F] T - Polynomial.IsSplittingField.adjoin_rootSet π Mathlib.FieldTheory.SplittingField.IsSplittingField
{K : Type v} (L : Type w) [Field K] [Field L] [Algebra K L] (f : Polynomial K) [Polynomial.IsSplittingField K L f] : Algebra.adjoin K (f.rootSet L) = β€ - Polynomial.IsSplittingField.adjoin_rootSet' π Mathlib.FieldTheory.SplittingField.IsSplittingField
{K : Type v} {L : Type w} {instβ : Field K} {instβΒΉ : Field L} {instβΒ² : Algebra K L} {f : Polynomial K} [self : Polynomial.IsSplittingField K L f] : Algebra.adjoin K (f.rootSet L) = β€ - Polynomial.IsSplittingField.adjoin_rootSet_eq_range π Mathlib.FieldTheory.SplittingField.IsSplittingField
{F : Type u} {K : Type v} (L : Type w) [Field K] [Field L] [Field F] [Algebra K L] [Algebra K F] (f : Polynomial K) [Polynomial.IsSplittingField K L f] (i : L ββ[K] F) : Algebra.adjoin K (f.rootSet F) = i.range - Polynomial.IsSplittingField.mk π Mathlib.FieldTheory.SplittingField.IsSplittingField
{K : Type v} {L : Type w} [Field K] [Field L] [Algebra K L] {f : Polynomial K} (splits' : Polynomial.Splits (algebraMap K L) f) (adjoin_rootSet' : Algebra.adjoin K (f.rootSet L) = β€) : Polynomial.IsSplittingField K L f - Polynomial.SplittingFieldAux.adjoin_rootSet π Mathlib.FieldTheory.SplittingField.Construction
(n : β) {K : Type u} [Field K] (f : Polynomial K) (_hfn : f.natDegree = n) : Algebra.adjoin K (f.rootSet (Polynomial.SplittingFieldAux n f)) = β€ - Polynomial.SplittingField.adjoin_rootSet π Mathlib.FieldTheory.SplittingField.Construction
{K : Type v} [Field K] (f : Polynomial K) : Algebra.adjoin K (f.rootSet f.SplittingField) = β€ - Module.End.exists_isNilpotent_isSemisimple_of_separable_of_dvd_pow π Mathlib.LinearAlgebra.JordanChevalley
{K : Type u_1} {V : Type u_2} [Field K] [AddCommGroup V] [Module K V] {f : Module.End K V} {P : Polynomial K} {k : β} (sep : P.Separable) (nil : minpoly K f β£ P ^ k) : β n β Algebra.adjoin K {f}, β s β Algebra.adjoin K {f}, IsNilpotent n β§ s.IsSemisimple β§ f = n + s - polynomialFunctions.eq_adjoin_X π Mathlib.Topology.ContinuousMap.Polynomial
{R : Type u_1} [CommSemiring R] [TopologicalSpace R] [TopologicalSemiring R] (s : Set R) : polynomialFunctions s = Algebra.adjoin R {(Polynomial.toContinuousMapOnAlgHom s) Polynomial.X} - minpoly.equivAdjoin_symm_apply π Mathlib.FieldTheory.Minpoly.IsIntegrallyClosed
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [IsDomain R] [Algebra R S] [IsDomain S] [NoZeroSMulDivisors R S] [IsIntegrallyClosed R] {x : S} (hx : IsIntegral R x) (b : β₯(Algebra.adjoin R {x})) : (minpoly.equivAdjoin hx).symm b = Function.surjInv β― b - minpoly.equivAdjoin_apply π Mathlib.FieldTheory.Minpoly.IsIntegrallyClosed
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [IsDomain R] [Algebra R S] [IsDomain S] [NoZeroSMulDivisors R S] [IsIntegrallyClosed R] {x : S} (hx : IsIntegral R x) (a : AdjoinRoot (minpoly R x)) : (minpoly.equivAdjoin hx) a = (QuotientAddGroup.lift (Submodule.toAddSubgroup (Ideal.span {minpoly R x})) β(Polynomial.evalβRingHom (algebraMap R β₯(Algebra.adjoin R {x})) β¨x, β―β©) β―) a - sum_smul_minpolyDiv_eq_X_pow π Mathlib.FieldTheory.Minpoly.MinpolyDiv
{K : Type u_2} {L : Type u_3} [Field K] [Field L] [Algebra K L] (E : Type u_1) [Field E] [Algebra K E] [IsAlgClosed E] [FiniteDimensional K L] [Algebra.IsSeparable K L] {x : L} (hxL : Algebra.adjoin K {x} = β€) {r : β} (hr : r < Module.finrank K L) : β Ο : L ββ[K] E, Polynomial.map (βΟ) ((x ^ r / (Polynomial.aeval x) (Polynomial.derivative (minpoly K x))) β’ minpolyDiv K x) = Polynomial.X ^ r - AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin π Mathlib.RingTheory.AlgebraicIndependent
{ΞΉ : Type u_1} {R : Type u_3} {A : Type u_5} {x : ΞΉ β A} [CommRing R] [CommRing A] [Algebra R A] (hx : AlgebraicIndependent R x) : MvPolynomial (Option ΞΉ) R β+* Polynomial β₯(Algebra.adjoin R (Set.range x)) - AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_X_none π Mathlib.RingTheory.AlgebraicIndependent
{ΞΉ : Type u_1} {R : Type u_3} {A : Type u_5} {x : ΞΉ β A} [CommRing R] [CommRing A] [Algebra R A] (hx : AlgebraicIndependent R x) : hx.mvPolynomialOptionEquivPolynomialAdjoin (MvPolynomial.X none) = Polynomial.X - AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_X_some π Mathlib.RingTheory.AlgebraicIndependent
{ΞΉ : Type u_1} {R : Type u_3} {A : Type u_5} {x : ΞΉ β A} [CommRing R] [CommRing A] [Algebra R A] (hx : AlgebraicIndependent R x) (i : ΞΉ) : hx.mvPolynomialOptionEquivPolynomialAdjoin (MvPolynomial.X (some i)) = Polynomial.C (hx.aevalEquiv (MvPolynomial.X i)) - AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_C π Mathlib.RingTheory.AlgebraicIndependent
{ΞΉ : Type u_1} {R : Type u_3} {A : Type u_5} {x : ΞΉ β A} [CommRing R] [CommRing A] [Algebra R A] (hx : AlgebraicIndependent R x) (r : R) : hx.mvPolynomialOptionEquivPolynomialAdjoin (MvPolynomial.C r) = Polynomial.C ((algebraMap R β₯(Algebra.adjoin R (Set.range x))) r) - AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_C' π Mathlib.RingTheory.AlgebraicIndependent
{ΞΉ : Type u_1} {R : Type u_3} {A : Type u_5} {x : ΞΉ β A} [CommRing R] [CommRing A] [Algebra R A] (hx : AlgebraicIndependent R x) (r : R) : Polynomial.C (hx.aevalEquiv (MvPolynomial.C r)) = Polynomial.C ((algebraMap R β₯(Algebra.adjoin R (Set.range x))) r) - AlgebraicIndependent.mvPolynomialOptionEquivPolynomialAdjoin_apply π Mathlib.RingTheory.AlgebraicIndependent
{ΞΉ : Type u_1} {R : Type u_3} {A : Type u_5} {x : ΞΉ β A} [CommRing R] [CommRing A] [Algebra R A] (hx : AlgebraicIndependent R x) (y : MvPolynomial (Option ΞΉ) R) : hx.mvPolynomialOptionEquivPolynomialAdjoin y = Polynomial.map (βhx.aevalEquiv) ((MvPolynomial.aeval fun o => o.elim Polynomial.X fun s => Polynomial.C (MvPolynomial.X s)) y) - AlgebraicIndependent.aeval_comp_mvPolynomialOptionEquivPolynomialAdjoin π Mathlib.RingTheory.AlgebraicIndependent
{ΞΉ : Type u_1} {R : Type u_3} {A : Type u_5} {x : ΞΉ β A} [CommRing R] [CommRing A] [Algebra R A] (hx : AlgebraicIndependent R x) (a : A) : (β(Polynomial.aeval a)).comp hx.mvPolynomialOptionEquivPolynomialAdjoin.toRingHom = β(MvPolynomial.aeval fun o => o.elim a x) - Algebra.adjoin_root_eq_top_of_isSplittingField π Mathlib.FieldTheory.KummerExtension
{K : Type u} [Field K] {n : β} (hΞΆ : (primitiveRoots n K).Nonempty) {a : K} (H : Irreducible (Polynomial.X ^ n - Polynomial.C a)) {L : Type u_1} [Field L] [Algebra K L] [Polynomial.IsSplittingField K L (Polynomial.X ^ n - Polynomial.C a)] {Ξ± : L} (hΞ± : Ξ± ^ n = (algebraMap K L) a) : Algebra.adjoin K {Ξ±} = β€ - mem_adjoin_of_dvd_coeff_of_dvd_aeval π Mathlib.RingTheory.Polynomial.Eisenstein.IsIntegral
{A : Type u_1} {B : Type u_2} [CommSemiring A] [CommRing B] [Algebra A B] [NoZeroSMulDivisors A B] {Q : Polynomial A} {p : A} {x z : B} (hp : p β 0) (hQ : β i β Finset.range (Q.natDegree + 1), p β£ Q.coeff i) (hz : (Polynomial.aeval x) Q = p β’ z) : z β Algebra.adjoin A {x} - Algebra.adjoin.powerBasis'_minpoly_gen π Mathlib.RingTheory.IsAdjoinRoot
{R : Type u} {S : Type v} [CommRing R] [CommRing S] [Algebra R S] [IsDomain R] [IsDomain S] [NoZeroSMulDivisors R S] [IsIntegrallyClosed R] {x : S} (hx' : IsIntegral R x) : minpoly R x = minpoly R (Algebra.adjoin.powerBasis' hx').gen - KummerDedekind.normalizedFactorsMapEquivNormalizedFactorsMinPolyMk.eq_1 π Mathlib.NumberTheory.KummerDedekind
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [Algebra R S] {x : S} {I : Ideal R} [IsDomain R] [IsIntegrallyClosed R] [IsDedekindDomain S] [NoZeroSMulDivisors R S] (hI : I.IsMaximal) (hI' : I β β₯) (hx : Ideal.comap (algebraMap R S) (conductor R x) β I = β€) (hx' : IsIntegral R x) : KummerDedekind.normalizedFactorsMapEquivNormalizedFactorsMinPolyMk hI hI' hx hx' = (normalizedFactorsEquivOfQuotEquiv ((quotAdjoinEquivQuotMap hx β―).symm.trans (((Algebra.adjoin.powerBasis' hx').quotientEquivQuotientMinpolyMap I).toRingEquiv.trans (Ideal.quotEquivOfEq β―))) β― β―).trans (normalizedFactorsEquivSpanNormalizedFactors β―).symm - aeval_derivative_mem_differentIdeal π Mathlib.RingTheory.DedekindDomain.Different
(A : Type u_1) (K : Type u_2) (L : Type u) {B : Type u_3} [CommRing A] [Field K] [CommRing B] [Field L] [Algebra A K] [Algebra B L] [Algebra A B] [Algebra K L] [Algebra A L] [IsScalarTower A K L] [IsScalarTower A B L] [IsDomain A] [IsFractionRing A K] [FiniteDimensional K L] [Algebra.IsSeparable K L] [IsIntegralClosure B A L] [IsIntegrallyClosed A] [IsDedekindDomain B] [NoZeroSMulDivisors A B] (x : B) (hx : Algebra.adjoin K {(algebraMap B L) x} = β€) : (Polynomial.aeval x) (Polynomial.derivative (minpoly A x)) β differentIdeal A B - conductor_mul_differentIdeal π Mathlib.RingTheory.DedekindDomain.Different
(A : Type u_1) (K : Type u_2) (L : Type u) {B : Type u_3} [CommRing A] [Field K] [CommRing B] [Field L] [Algebra A K] [Algebra B L] [Algebra A B] [Algebra K L] [Algebra A L] [IsScalarTower A K L] [IsScalarTower A B L] [IsDomain A] [IsFractionRing A K] [FiniteDimensional K L] [Algebra.IsSeparable K L] [IsIntegralClosure B A L] [IsIntegrallyClosed A] [IsDedekindDomain B] [NoZeroSMulDivisors A B] (x : B) (hx : Algebra.adjoin K {(algebraMap B L) x} = β€) : conductor A x * differentIdeal A B = Ideal.span {(Polynomial.aeval x) (Polynomial.derivative (minpoly A x))} - traceForm_dualSubmodule_adjoin π Mathlib.RingTheory.DedekindDomain.Different
(A : Type u_1) (K : Type u_2) {L : Type u} [CommRing A] [Field K] [Field L] [Algebra A K] [Algebra K L] [Algebra A L] [IsScalarTower A K L] [IsDomain A] [IsFractionRing A K] [FiniteDimensional K L] [Algebra.IsSeparable K L] [IsIntegrallyClosed A] {x : L} (hx : Algebra.adjoin K {x} = β€) (hAx : IsIntegral A x) : (Algebra.traceForm K L).dualSubmodule (Subalgebra.toSubmodule (Algebra.adjoin A {x})) = ((Polynomial.aeval x) (Polynomial.derivative (minpoly K x)))β»ΒΉ β’ Subalgebra.toSubmodule (Algebra.adjoin A {x})
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, _ * _, _ ^ _, |- _ < _ β _
woould 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 4e1aab0
serving mathlib revision 2d53f5f