Skip to content
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

Closed
wants to merge 48 commits into from

Conversation

alreadydone
Copy link
Contributor

@alreadydone alreadydone commented Oct 30, 2024

  • 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 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.


Open in Gitpod

@alreadydone alreadydone added awaiting-CI t-algebra Algebra (groups, rings, fields, etc) labels Oct 30, 2024
Copy link

github-actions bot commented Oct 30, 2024

PR summary dab732db8a

Import changes for modified files

Dependency changes

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 files Mathlib.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 files Mathlib.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.

Mathlib/FieldTheory/Minpoly/Field.lean Outdated Show resolved Hide resolved
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]
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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]

Copy link
Contributor Author

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?

Copy link
Member

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}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
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*?

Copy link
Contributor Author

@alreadydone alreadydone Nov 5, 2024

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.

Mathlib/FieldTheory/Minpoly/Field.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/Minpoly/Field.lean Outdated Show resolved Hide resolved
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]
Copy link
Contributor Author

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}
Copy link
Contributor Author

@alreadydone alreadydone Nov 5, 2024

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.

Copy link
Member

@jcommelin jcommelin left a 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]
Copy link
Member

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.

@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added the ready-to-merge This PR has been sent to bors. label Nov 7, 2024
mathlib-bors bot pushed a commit that referenced this pull request Nov 7, 2024
+ 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]>
@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Nov 7, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(Algebra): misc lemmas and cleanup [Merged by Bors] - feat(Algebra): misc lemmas and cleanup Nov 7, 2024
@mathlib-bors mathlib-bors bot closed this Nov 7, 2024
@mathlib-bors mathlib-bors bot deleted the Isaacs_split1 branch November 7, 2024 05:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge This PR has been sent to bors. t-algebra Algebra (groups, rings, fields, etc)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants