-
Notifications
You must be signed in to change notification settings - Fork 335
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Merged by Bors] - feat(Algebra): misc lemmas and cleanup #18431
Conversation
PR summary dab732db8a
|
File | Base Count | Head Count | Change |
---|---|---|---|
Mathlib.FieldTheory.PrimitiveElement | 1358 | 1350 | -8 (-0.59%) |
Mathlib.FieldTheory.IsSepClosed | 1374 | 1366 | -8 (-0.58%) |
Import changes for all files
Files | Import difference |
---|---|
9 filesMathlib.AlgebraicGeometry.EllipticCurve.J Mathlib.FieldTheory.AbelRuffini Mathlib.FieldTheory.Minpoly.MinpolyDiv Mathlib.FieldTheory.IsSepClosed Mathlib.FieldTheory.KrullTopology Mathlib.FieldTheory.Finite.GaloisField Mathlib.FieldTheory.Galois.Basic Mathlib.FieldTheory.PrimitiveElement Mathlib.FieldTheory.PolynomialGaloisGroup |
-8 |
21 filesMathlib.Analysis.CStarAlgebra.GelfandDuality Mathlib.Analysis.CStarAlgebra.Spectrum Mathlib.Analysis.Normed.Algebra.Spectrum Mathlib.Analysis.CStarAlgebra.Module.Constructions Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Isometric Mathlib.Analysis.CStarAlgebra.Module.Defs Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Integral Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Unique Mathlib.Analysis.CStarAlgebra.ApproximateUnit Mathlib.Analysis.SpecialFunctions.ContinuousFunctionalCalculus.ExpLog Mathlib.Analysis.Complex.Polynomial.Basic Mathlib.FieldTheory.Cardinality Mathlib.Analysis.InnerProductSpace.StarOrder Mathlib.Analysis.Normed.Algebra.Basic Mathlib.RingTheory.Polynomial.Selmer Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Instances Mathlib.Analysis.CStarAlgebra.Hom Mathlib.Analysis.Complex.Polynomial.UnitTrinomial Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Order Mathlib.LinearAlgebra.Matrix.HermitianFunctionalCalculus Mathlib.Analysis.CStarAlgebra.ContinuousFunctionalCalculus.Basic |
-6 |
Declarations diff
+ IsAlgClosure.of_splits
+ Subspace.biUnion_ne_univ_of_top_nmem
+ Subspace.exists_eq_top_of_iUnion_eq_univ
+ Subspace.top_mem_of_biUnion_eq_univ
+ adjoin_ext
+ eq_iff_aeval_eq_zero
+ eq_iff_aeval_minpoly_eq_zero
+ ext_of_eq_adjoin
You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>
## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>
The doc-module for script/declarations_diff.sh
contains some details about this script.
p = minpoly A x ↔ Polynomial.aeval x p = 0 := | ||
⟨(· ▸ aeval A x), (eq_of_irreducible_of_monic hp1 · hp3)⟩ | ||
|
||
theorem eq_iff_aeval_minpoly_eq_zero [IsDomain B] {C} [Ring C] [Algebra A C] [Nontrivial C] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
theorem eq_iff_aeval_minpoly_eq_zero [IsDomain B] {C} [Ring C] [Algebra A C] [Nontrivial C] | |
theorem eq_iff_aeval_minpoly_eq_zero [IsDomain B] {C : Type*} [Ring C] [Algebra A C] [Nontrivial C] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it not clear from [Ring C] that C is a Type*? Or are there other concerns? Worried that C may be inferred to be of some fixed universe rather than polymorphic?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think {C}
is fine.
@[deprecated (since := "2024-10-29")] | ||
alias Subspace.exists_eq_top_of_biUnion_eq_univ := Subspace.top_mem_of_biUnion_eq_univ | ||
|
||
theorem Subspace.exists_eq_top_of_iUnion_eq_univ {ι} [Finite ι] {p : ι → Subspace k E} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
theorem Subspace.exists_eq_top_of_iUnion_eq_univ {ι} [Finite ι] {p : ι → Subspace k E} | |
theorem Subspace.exists_eq_top_of_iUnion_eq_univ {ι : Type*} [Finite ι] {p : ι → Subspace k E} |
or Sort*
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Finite
allows Sort*
. Leaving the type unspecified has the advantage that you don't need to worry about this.
p = minpoly A x ↔ Polynomial.aeval x p = 0 := | ||
⟨(· ▸ aeval A x), (eq_of_irreducible_of_monic hp1 · hp3)⟩ | ||
|
||
theorem eq_iff_aeval_minpoly_eq_zero [IsDomain B] {C} [Ring C] [Algebra A C] [Nontrivial C] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it not clear from [Ring C] that C is a Type*? Or are there other concerns? Worried that C may be inferred to be of some fixed universe rather than polymorphic?
@[deprecated (since := "2024-10-29")] | ||
alias Subspace.exists_eq_top_of_biUnion_eq_univ := Subspace.top_mem_of_biUnion_eq_univ | ||
|
||
theorem Subspace.exists_eq_top_of_iUnion_eq_univ {ι} [Finite ι] {p : ι → Subspace k E} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Finite
allows Sort*
. Leaving the type unspecified has the advantage that you don't need to worry about this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks 🎉
bors merge
p = minpoly A x ↔ Polynomial.aeval x p = 0 := | ||
⟨(· ▸ aeval A x), (eq_of_irreducible_of_monic hp1 · hp3)⟩ | ||
|
||
theorem eq_iff_aeval_minpoly_eq_zero [IsDomain B] {C} [Ring C] [Algebra A C] [Nontrivial C] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think {C}
is fine.
+ In IsAlgClosed/Basic we add the fact that an algebraic extension E/F is an algebraic closure if all (monic irreducible) polynomials in F[X] split in E. In fact it suffices that every such polynomial has a root in E, but is used to deduce the "split" version in #18412. + Swap the order of `AlgHom.card_of_splits` and `AlgHom.card` in FieldTheory/PrimitiveElement to avoid importing AlgebraicClosure. + Simplify the statements of two theorems in GroupTheory/CosetCover and deduce an easier-to-use form. + Add two extensionality lemmas for AlgHom out of `Algebra.adjoin R s` in RingTheory/Adjoin/Basic. + Add two lemmas to Minpoly/Field and golf `minpoly.eq_of_root` in FieldTheory/Adjoin. Co-authored-by: Junyan Xu <[email protected]>
Pull request successfully merged into master. Build succeeded: |
In IsAlgClosed/Basic we add the fact that an algebraic extension E/F is an algebraic closure if all (monic irreducible) polynomials in F[X] split in E. In fact it suffices that every such polynomial has a root in E, but is used to deduce the "split" version in feat(FieldTheory): minimal polynomials determine an algebraic extension (Isaacs 1980) #18412.
Swap the order of
AlgHom.card_of_splits
andAlgHom.card
in FieldTheory/PrimitiveElement to avoid importing AlgebraicClosure.Simplify the statements of two theorems in GroupTheory/CosetCover and deduce an easier-to-use form.
Add two extensionality lemmas for AlgHom out of
Algebra.adjoin R s
in RingTheory/Adjoin/Basic.Add two lemmas to Minpoly/Field and golf
minpoly.eq_of_root
in FieldTheory/Adjoin.