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/IsSepClosed): add some results on separable closure and perfect field #9522

Closed
wants to merge 6 commits into from

Conversation

acmepjz
Copy link
Collaborator

@acmepjz acmepjz commented Jan 7, 2024

  • IsSepClosure.isAlgClosure_of_perfectField, IsSepClosure.of_isAlgClosure_of_perfectField: if k is a perfect field, then its separable closure coincides with its algebraic closure.
  • IsSepClosed.isAlgClosed_of_perfectField: a separably closed perfect field is also algebraically closed.
  • Algebra.IsAlgebraic.[isSeparable_of_]perfectField: if L / K is an algebraic extension, K is a perfect field, then L / K is separable and L is perfect.

Open in Gitpod

Dicussions: #9488 (comment)

@acmepjz acmepjz added awaiting-review awaiting-CI t-algebra Algebra (groups, rings, fields, etc) labels Jan 7, 2024
Mathlib/FieldTheory/IsSepClosed.lean Show resolved Hide resolved
Comment on lines 232 to 234
have h2 := isIntegral_trans halg.isIntegral _ (AdjoinRoot.isIntegral_root h)
have h3 := (AdjoinRoot.minpoly_root h) ▸ minpoly.dvd_map_of_isScalarTower K L (AdjoinRoot.root f)
(PerfectField.separable_of_irreducible (minpoly.irreducible h2)).map |>.of_dvd h3 |>.of_mul_left⟩
Copy link
Contributor

@alreadydone alreadydone Jan 7, 2024

Choose a reason for hiding this comment

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

Can you extract the lemma that says if L/K is integral with L a field and K a CommRing, then any irreducible polynomial in L[X] divides some monic irreducible polynomial in K[X]?

(Side comment: I think we can also prove it for an integrally closed domain L if we assume Monic because we have minpoly.isIntegrallyClosed_dvd and IsIntegrallyClosed.minpoly.unique. For L/K free maybe we can use Algebra.norm, but I'm not sure whether every element divides its norm in a general algebra; even though we can factor into irreducibles in a Noetherian domain, we probably need to start with a prime (not just irreducible) polynomial in L[X] in order for it to divide some factor ... there could be a version that assumes IsAlgebraic instead of IsIntegral too. But not for this PR ...)

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Sure, let me check later.

Copy link
Collaborator Author

@acmepjz acmepjz Jan 8, 2024

Choose a reason for hiding this comment

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

Can you extract the lemma that says if L/K is integral with L a field and K a CommRing, then any irreducible polynomial in L[X] divides some monic irreducible polynomial in K[X]?

Need IsDomain K (used in minpoly.irreducible). Can it be deduced from existing conditions?

[EDIT] If let K' be the image of K in L, then it is a domain, so at least we can find a monic irreducible polynomial in K'[X]. The question is if its preimage in K[X] is still irreducible.

Copy link
Contributor

Choose a reason for hiding this comment

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

I see. There's no obvious way to remove IsDomain as far as I can see. If K is not a domain, it's possible that the minpoly has higher degree factors that become units in L[X].
Let's move this lemma to the file where AdjoinRoot is defined and call it a day!

Copy link
Collaborator Author

@acmepjz acmepjz Jan 26, 2024

Choose a reason for hiding this comment

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

Can you extract the lemma that says if L/K is integral with L a field and K a CommRing, then any irreducible polynomial in L[X] divides some monic irreducible polynomial in K[X]?

Need IsDomain K (used in minpoly.irreducible).

This result is incorrect, at least when K is not connected (i.e. can be written as a product of two rings), see https://math.stackexchange.com/a/4849403/235999. In fact, it's easy to prove that for such case, any monic polynomial in K[X] of degree ≥ 1 is NOT irreducible (a non-trivial factorization is obtained by applying Chinese Remainder Theorem on f * 1 and 1 * f).

On the other hand, it's true if K is irreducible (i.e. only one minimal prime ideal), see https://math.stackexchange.com/a/4843432/235999.

@alreadydone
Copy link
Contributor

!bench

@leanprover-bot
Copy link
Collaborator

leanprover-bot commented Jan 7, 2024

Here are the benchmark results for commit f858a9e.
There were significant changes against commit a7c1abf:

  Benchmark                                                           Metric         Change
  =========================================================================================
- ~Mathlib.CategoryTheory.Limits.FilteredColimitCommutesFiniteLimit   instructions    16.4%

(discussion here. This slowed-down file doesn't import any file that is changed. - Junyan)

@alreadydone
Copy link
Contributor

Thanks 🎉
maintainer merge

Copy link

github-actions bot commented Jan 8, 2024

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

/-- If `L / K` is an integral extension, `K` is a domain, `L` is a field, then any irreducible
polynomial over `L` divides some monic irreducible polynomial over `K`. -/
theorem Irreducible.exists_dvd_monic_irreducible_of_isIntegral {K L : Type*}
[CommRing K] [IsDomain K] [Field L] [Algebra K L] (H : Algebra.IsIntegral K L) {f : L[X]}
Copy link
Member

Choose a reason for hiding this comment

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

Doesn't this imply that $\text{Frac} K$ is integral over $K$, i.e. $K$ is actually a field?

Copy link
Contributor

@alreadydone alreadydone Jan 8, 2024

Choose a reason for hiding this comment

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

K to L isn't necessarily injective (K could be L[X] and algebraMap K L could be evaluation at 0, for example). That said, I think this is still true if IsIntegral is replaced by IsAlgebraic ...

Copy link
Member

@riccardobrasca riccardobrasca 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 d+

@@ -218,3 +218,14 @@ instance toPerfectRing (p : ℕ) [hp : Fact p.Prime] [CharP K p] : PerfectRing K
exact minpoly.degree_pos ha

end PerfectField

/-- If `L / K` is an algebraic extension, `K` is a perfect field, then `L / K` is separable. -/
theorem Algebra.IsAlgebraic.isSeparable_of_perfectField {K L : Type*} [Field K] [Field L]
Copy link
Member

Choose a reason for hiding this comment

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

Can you add this to the docstring at the beginning of the file?

Copy link
Member

Choose a reason for hiding this comment

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

Also, can this be an instance?

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Can you add this to the docstring at the beginning of the file?

Sure.

Also, can this be an instance?

No, it's not possible I think, since Algebra.IsAlgebraic is not a typeclass, so this condition must be provided manually.

@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Jan 8, 2024

✌️ acmepjz can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@acmepjz
Copy link
Collaborator Author

acmepjz commented Jan 8, 2024

bors r+

mathlib-bors bot pushed a commit that referenced this pull request Jan 8, 2024
…and perfect field (#9522)

- `IsSepClosure.isAlgClosure_of_perfectField`, `IsSepClosure.of_isAlgClosure_of_perfectField`: if `k` is a perfect field, then its separable closure coincides with its algebraic closure.
- `IsSepClosed.isAlgClosed_of_perfectField`: a separably closed perfect field is also algebraically closed.
- `Algebra.IsAlgebraic.[isSeparable_of_]perfectField`: if `L / K` is an algebraic extension, `K` is a perfect field, then `L / K` is separable and `L` is perfect.
@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Jan 8, 2024

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(FieldTheory/IsSepClosed): add some results on separable closure and perfect field [Merged by Bors] - feat(FieldTheory/IsSepClosed): add some results on separable closure and perfect field Jan 8, 2024
@mathlib-bors mathlib-bors bot closed this Jan 8, 2024
@mathlib-bors mathlib-bors bot deleted the acmepjz_perfect_1 branch January 8, 2024 15:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
delegated t-algebra Algebra (groups, rings, fields, etc)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants