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(FieldTheory/SeparableDegree): further properties of separable degree of fields and polynomials #9041

Closed
wants to merge 40 commits into from

Conversation

acmepjz
Copy link
Collaborator

@acmepjz acmepjz commented Dec 13, 2023

Breaking changes:

New definitions (non-exhaustive):

  • Polynomial.natSepDegree: the separable degree of a polynomial is a natural number, defined to be the number of distinct roots of it over its splitting field.

New results (non-exhaustive):

  • Polynomial.natSepDegree_le_natDegree: the separable degree of a polynomial is smaller than its degree.
  • Polynomial.natSepDegree_eq_natDegree_iff: the separable degree of a non-zero polynomial is equal to its degree if and only if it is separable.
  • Polynomial.natSepDegree_dvd_natDegree_of_irreducible: the separable degree of an irreducible polynomial divides its degree.
  • Field.finSepDegree_adjoin_simple_eq_natSepDegree: the (finite) separable degree of F⟮α⟯ / F is equal to the separable degree of the minimal polynomial of α over F.
  • Field.finSepDegree_dvd_finrank: the separable degree of any field extension E / F divides the degree of E / F.
  • Field.finSepDegree_le_finrank: the separable degree of a finite extension E / F is smaller than the degree of E / F.
  • Field.finSepDegree_eq_finrank_iff: if E / F is a finite extension, then its separable degree is equal to its degree if and only if it is a separable extension.

Open in Gitpod

@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added the blocked-by-other-PR This PR depends on another PR to Mathlib label Dec 13, 2023
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added merge-conflict The PR has a merge conflict with master, and needs manual merging. and removed blocked-by-other-PR This PR depends on another PR to Mathlib labels Dec 14, 2023
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. label Dec 14, 2023
Copy link
Contributor

@alreadydone alreadydone left a comment

Choose a reason for hiding this comment

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

From a brief skim up to Line 532:

Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Copy link
Contributor

@alreadydone alreadydone left a comment

Choose a reason for hiding this comment

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

okay I've now skimmed through the whole PR. Fantastic work! Next time I'll be trying to golf some proofs ...

Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/Data/Polynomial/Expand.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added the blocked-by-other-PR This PR depends on another PR to Mathlib label Dec 18, 2023
@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot removed the blocked-by-other-PR This PR depends on another PR to Mathlib label Dec 18, 2023
acmepjz added a commit that referenced this pull request Dec 19, 2023
@riccardobrasca
Copy link
Member

Is it possible to split the PR? It is currently rather big...

@alreadydone
Copy link
Contributor

I'm happy with the content, just haven't checked whether some proofs' lengths are justified :)

@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. label Dec 26, 2023
@riccardobrasca
Copy link
Member

Can you please fix the conflict?

@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. label Dec 26, 2023
acmepjz added a commit that referenced this pull request Dec 26, 2023
Copy link
Contributor

@alreadydone alreadydone left a comment

Choose a reason for hiding this comment

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

Thanks, I think this is my final review on this PR!

Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
(finSepDegree_adjoin_simple_eq_finrank_iff L E y halg' |>.2
(hy.map (f := algebraMap F F⟮x⟯) |>.of_dvd (minpoly.dvd_map_of_isScalarTower F L y)))
let M := L⟮y⟯
letI : Algebra L M := Subalgebra.algebra M.toSubalgebra
Copy link
Contributor

Choose a reason for hiding this comment

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

I opened #9291 to remove these manual instances.

Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
@riccardobrasca riccardobrasca self-assigned this Dec 27, 2023
mathlib-bors bot pushed a commit that referenced this pull request Dec 27, 2023
@riccardobrasca
Copy link
Member

I also think this is almost ready! Since #9291 has been merged, can you see if you can golf some proof?

@acmepjz
Copy link
Collaborator Author

acmepjz commented Dec 27, 2023

I also think this is almost ready! Since #9291 has been merged, can you see if you can golf some proof?

Sure. Let me try how many of them can be removed.

Copy link
Contributor

@alreadydone alreadydone left a comment

Choose a reason for hiding this comment

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

Just a few more nits I missed ...

Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
- `Field.finSepDegree_eq_finrank_iff`: if `E / F` is a finite extension, then its separable degree
is equal to its degree if and only if it is a separable extension.

- `IntermediateField.isSeparable_adjoin_simple_iff_separable`: `F⟮x⟯ / F` is a separable extension
Copy link
Contributor

Choose a reason for hiding this comment

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

Side comment: I think the phrase adjoin_simple is strange. It's a simple extension obtained by adjoining a singleton. Indeed similar constructions are called adjoin_singleton, but I think we could just use the shorthand simple here which also agrees with math terminology. I think we might open a PR to rename all adjoin_simple to simple.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

But mem_adjoin_simple_self -> mem_simple_self sounds strange ...

Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
@alreadydone
Copy link
Contributor

Thanks 🎉
maintainer merge

Copy link

🚀 Pull request has been placed on the maintainer queue by alreadydone.

Mathlib/FieldTheory/SeparableDegree.lean Outdated Show resolved Hide resolved
@jcommelin
Copy link
Member

Thanks 🎉

bors merge

@github-actions github-actions bot added ready-to-merge This PR has been sent to bors. and removed awaiting-review labels Dec 28, 2023
mathlib-bors bot pushed a commit that referenced this pull request Dec 28, 2023
…gree of fields and polynomials (#9041)

Breaking changes:

- remove `Field.sepDegree` since it is not quite correct for infinite case; will be added in later PR (see #8696)

New definitions (non-exhaustive):

- `Polynomial.natSepDegree`: the separable degree of a polynomial is a natural number, defined to be the number of distinct roots of it over its splitting field.

New results (non-exhaustive):

- `Polynomial.natSepDegree_le_natDegree`: the separable degree of a polynomial is smaller than its degree.
- `Polynomial.natSepDegree_eq_natDegree_iff`: the separable degree of a non-zero polynomial is equal to its degree if and only if it is separable.
- `Polynomial.natSepDegree_dvd_natDegree_of_irreducible`: the separable degree of an irreducible polynomial divides its degree.
- `Field.finSepDegree_adjoin_simple_eq_natSepDegree`: the (finite) separable degree of `F⟮α⟯ / F` is equal to the separable degree of the minimal polynomial of `α` over `F`.
- `Field.finSepDegree_dvd_finrank`: the separable degree of any field extension `E / F` divides the degree of `E / F`.
- `Field.finSepDegree_le_finrank`: the separable degree of a finite extension `E / F` is smaller than the degree of `E / F`.
- `Field.finSepDegree_eq_finrank_iff`: if `E / F` is a finite extension, then its separable degree is equal to its degree if and only if it is a separable extension.



Co-authored-by: Johan Commelin <johan@commelin.net>
@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Dec 28, 2023

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(FieldTheory/SeparableDegree): further properties of separable degree of fields and polynomials [Merged by Bors] - feat(FieldTheory/SeparableDegree): further properties of separable degree of fields and polynomials Dec 28, 2023
@mathlib-bors mathlib-bors bot closed this Dec 28, 2023
@mathlib-bors mathlib-bors bot deleted the acmepjz_sep_degree_2a branch December 28, 2023 06:40
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.

None yet

6 participants