-
Notifications
You must be signed in to change notification settings - Fork 839
[Merged by Bors] - feat(FieldTheory): abelian extensions #23669
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
Conversation
erdOne
commented
Apr 4, 2025
PR summary 5a6cfc3c42
|
File | Base Count | Head Count | Change |
---|---|---|---|
Mathlib.NumberTheory.Cyclotomic.Basic | 2395 | 2400 | +5 (+0.21%) |
Import changes for all files
Files | Import difference |
---|---|
32 filesMathlib.Analysis.Fourier.ZMod Mathlib.Analysis.SpecialFunctions.Complex.CircleAddChar Mathlib.NumberTheory.Cyclotomic.Basic Mathlib.NumberTheory.Cyclotomic.Discriminant Mathlib.NumberTheory.Cyclotomic.Embeddings Mathlib.NumberTheory.Cyclotomic.Gal Mathlib.NumberTheory.Cyclotomic.PID Mathlib.NumberTheory.Cyclotomic.PrimitiveRoots Mathlib.NumberTheory.Cyclotomic.Rat Mathlib.NumberTheory.Cyclotomic.Three Mathlib.NumberTheory.DirichletCharacter.GaussSum Mathlib.NumberTheory.FLT.Three Mathlib.NumberTheory.Fermat Mathlib.NumberTheory.GaussSum Mathlib.NumberTheory.JacobiSum.Basic Mathlib.NumberTheory.LSeries.DirichletContinuation Mathlib.NumberTheory.LSeries.Nonvanishing Mathlib.NumberTheory.LSeries.PrimesInAP Mathlib.NumberTheory.LSeries.ZMod Mathlib.NumberTheory.LegendreSymbol.AddCharacter Mathlib.NumberTheory.LegendreSymbol.JacobiSymbol Mathlib.NumberTheory.LegendreSymbol.QuadraticChar.GaussSum Mathlib.NumberTheory.LegendreSymbol.QuadraticReciprocity Mathlib.NumberTheory.LucasLehmer Mathlib.NumberTheory.NumberField.Cyclotomic.Basic Mathlib.NumberTheory.NumberField.Cyclotomic.Embeddings Mathlib.NumberTheory.NumberField.Cyclotomic.PID Mathlib.NumberTheory.NumberField.Cyclotomic.Three Mathlib.NumberTheory.NumberField.Ideal.Basic Mathlib.RingTheory.RootsOfUnity.AlgebraicallyClosed Mathlib.Tactic.NormNum.LegendreSymbol Mathlib.Tactic |
5 |
Mathlib.FieldTheory.Galois.Abelian (new file) |
1839 |
Declarations diff
+ IsAbelianGalois
+ IsAbelianGalois.of_algHom
+ IsAbelianGalois.of_isCyclic
+ IsAbelianGalois.tower_bot
+ IsAbelianGalois.tower_top
+ instance (K L : Type*) [Field K] [Field L] [Algebra K L] [IsAbelianGalois K L]
+ instance : IsAbelianGalois K (⊥ : IntermediateField K L)
+ instance : IsAbelianGalois K K
+ instance [IsAbelianGalois K L] (K' : IntermediateField K L) : IsAbelianGalois K K'
+ isAbelianGalois
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.
No changes to technical debt.
You can run this locally as
./scripts/technical-debt-metrics.sh pr_summary
- The
relative
value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic. - The
absolute
value is therelative
value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).
LGTM. Thanks! |
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.
Wondering whether we should add an instance [IsGalois K L] [IsCyclic (L ≃ₐ[K] L)] : IsAbelianGalois K L
...
Not sure about having it as an instance but I added a lemma. We can upgrade it into an instance later if we find it useful. |
It could be used to infer the IsAbelianGalois instance from FiniteField.instIsCyclicAlgEquivOfFinite and GaloisField.instIsGaloisOfFinite (though we should also add the IsAbelianGalois instance when the smaller field is finite, not necessarily the larger field). (Edit: the extension also needs to be algebraic.) |
Given that #23773 is merged, I think we don't need an
instead (see https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Abelian.20extension/near/511347691). Still, the lemmas / instances in this PR should be preserved. So I would suggest to drop the |
But maybe |
…ian (#26427) Proved `IsCyclotomicExtension.isMulCommutative` that any cyclotomic extension (of rings) is abelian. Deprecated `IsCyclotomicExtension.Aut.commGroup` which is `CommGroup` and only adjoins one root of unity. Now `CommGroup` instance should be inferred automatically if `IsMulCommutative` is provided (the preferred spelling of abelian extension, see #23669 (comment)).
…ian (#26427) Proved `IsCyclotomicExtension.isMulCommutative` that any cyclotomic extension (of rings) is abelian. Deprecated `IsCyclotomicExtension.Aut.commGroup` which is `CommGroup` and only adjoins one root of unity. Now `CommGroup` instance should be inferred automatically if `IsMulCommutative` is provided (the preferred spelling of abelian extension, see #23669 (comment)).
…ian (leanprover-community#26427) Proved `IsCyclotomicExtension.isMulCommutative` that any cyclotomic extension (of rings) is abelian. Deprecated `IsCyclotomicExtension.Aut.commGroup` which is `CommGroup` and only adjoins one root of unity. Now `CommGroup` instance should be inferred automatically if `IsMulCommutative` is provided (the preferred spelling of abelian extension, see leanprover-community#23669 (comment)).
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 d+
|
||
variable (n K) in | ||
/-- Cyclotomic extensions are abelian. -/ | ||
theorem isAbelianGalois (L : Type*) [Field L] [Algebra K L] [IsCyclotomicExtension {n} K L] : |
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.
This is already in mathlib now.
✌️ erdOne can now approve this pull request. To approve and merge a pull request, simply reply with |
Oh but I think the definition of |
I can still push to my branches at least as of now ... |
Seems that erdOne has Member permission so it's still OK to push to this branch? |
Please migrate to a fork, the script makes this very simple. |
I mean, migrate if you need to work on it, otherwise just merge. |
…ian (leanprover-community#26427) Proved `IsCyclotomicExtension.isMulCommutative` that any cyclotomic extension (of rings) is abelian. Deprecated `IsCyclotomicExtension.Aut.commGroup` which is `CommGroup` and only adjoins one root of unity. Now `CommGroup` instance should be inferred automatically if `IsMulCommutative` is provided (the preferred spelling of abelian extension, see leanprover-community#23669 (comment)).
…ian (leanprover-community#26427) Proved `IsCyclotomicExtension.isMulCommutative` that any cyclotomic extension (of rings) is abelian. Deprecated `IsCyclotomicExtension.Aut.commGroup` which is `CommGroup` and only adjoins one root of unity. Now `CommGroup` instance should be inferred automatically if `IsMulCommutative` is provided (the preferred spelling of abelian extension, see leanprover-community#23669 (comment)).
ping what's the progress of this PR? |
@erdOne is this one ready to go? |
I asked a question here |
@riccardobrasca Can you please take a look before I merge this? I think a significant portion has changed (in particular the switch to |
LGTM, thanks! @xroblot can you have a quick look? |
LGTM too and it will be very helpful for my current work on cyclotomic fields! Thanks. |
Great! |
Pull request successfully merged into master. Build succeeded: |