Skip to content

Conversation

erdOne
Copy link
Member

@erdOne erdOne commented Apr 4, 2025


Open in Gitpod

@erdOne erdOne added the t-algebra Algebra (groups, rings, fields, etc) label Apr 4, 2025
Copy link

github-actions bot commented Apr 4, 2025

PR summary 5a6cfc3c42

Import changes for modified files

Dependency changes

File Base Count Head Count Change
Mathlib.NumberTheory.Cyclotomic.Basic 2395 2400 +5 (+0.21%)
Import changes for all files
Files Import difference
32 files Mathlib.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 the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@xroblot
Copy link
Collaborator

xroblot commented Apr 4, 2025

LGTM. Thanks!

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.

Wondering whether we should add an instance [IsGalois K L] [IsCyclic (L ≃ₐ[K] L)] : IsAbelianGalois K L ...

@erdOne
Copy link
Member Author

erdOne commented Apr 4, 2025

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.

@alreadydone
Copy link
Contributor

alreadydone commented Apr 4, 2025

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

@chrisflav
Copy link
Collaborator

Given that #23773 is merged, I think we don't need an IsAbelianGalois typeclass anymore? @xroblot suggests to use

variable (E F : Type*) [Field E] [Field F] [Algebra F E] [IsGalois F E] [IsMulCommutative (E ≃ₐ[F] E)]

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 class and replace it by Xavier's suggestion.

@chrisflav chrisflav added the awaiting-author A reviewer has asked the author a question or requested changes. label May 4, 2025
@acmepjz
Copy link
Collaborator

acmepjz commented Jun 6, 2025

Given that #23773 is merged, I think we don't need an IsAbelianGalois typeclass anymore? @xroblot suggests to use

variable (E F : Type*) [Field E] [Field F] [Algebra F E] [IsGalois F E] [IsMulCommutative (E ≃ₐ[F] E)]

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 class and replace it by Xavier's suggestion.

But maybe class abbrev IsAbelianGalois (E F : Type*) [Field E] [Field F] [Algebra F E] := IsGalois F E, IsMulCommutative (E ≃ₐ[F] E)?

@riccardobrasca riccardobrasca self-assigned this Jun 29, 2025
mathlib-bors bot pushed a commit that referenced this pull request Jun 30, 2025
…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)).
mathlib-bors bot pushed a commit that referenced this pull request Jun 30, 2025
…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)).
joelriou pushed a commit to joelriou/mathlib4 that referenced this pull request Jul 7, 2025
…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)).
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+


variable (n K) in
/-- Cyclotomic extensions are abelian. -/
theorem isAbelianGalois (L : Type*) [Field L] [Algebra K L] [IsCyclotomicExtension {n} K L] :
Copy link
Member

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.

@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Jul 8, 2025

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

@leanprover-community-mathlib4-bot leanprover-community-mathlib4-bot added delegated and removed awaiting-author A reviewer has asked the author a question or requested changes. labels Jul 8, 2025
@acmepjz
Copy link
Collaborator

acmepjz commented Jul 8, 2025

Oh but I think the definition of IsAbelianGalois should be refactored to class abbrev. But this branch is locked due to in official mathlib4 repository. Any further changes to the code must be in a fork.

@alreadydone
Copy link
Contributor

I can still push to my branches at least as of now ...

@acmepjz
Copy link
Collaborator

acmepjz commented Jul 9, 2025

Seems that erdOne has Member permission so it's still OK to push to this branch?

@riccardobrasca
Copy link
Member

Please migrate to a fork, the script makes this very simple.

@riccardobrasca
Copy link
Member

I mean, migrate if you need to work on it, otherwise just merge.

callesonne pushed a commit to callesonne/mathlib4 that referenced this pull request Jul 24, 2025
…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)).
hrmacbeth pushed a commit to szqzs/mathlib4 that referenced this pull request Jul 28, 2025
…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)).
@acmepjz
Copy link
Collaborator

acmepjz commented Jul 30, 2025

ping what's the progress of this PR?

@riccardobrasca
Copy link
Member

@erdOne is this one ready to go?

@erdOne
Copy link
Member Author

erdOne commented Aug 6, 2025

I asked a question here

@erdOne
Copy link
Member Author

erdOne commented Oct 17, 2025

@riccardobrasca Can you please take a look before I merge this? I think a significant portion has changed (in particular the switch to IsMulCommutative and the new Galois group notation).

@riccardobrasca
Copy link
Member

LGTM, thanks! @xroblot can you have a quick look?

@xroblot
Copy link
Collaborator

xroblot commented Oct 18, 2025

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.

@erdOne
Copy link
Member Author

erdOne commented Oct 18, 2025

Great!
bors merge

mathlib-bors bot pushed a commit that referenced this pull request Oct 18, 2025
@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Oct 18, 2025

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(FieldTheory): abelian extensions [Merged by Bors] - feat(FieldTheory): abelian extensions Oct 18, 2025
@mathlib-bors mathlib-bors bot closed this Oct 18, 2025
@mathlib-bors mathlib-bors bot deleted the erd1/abelianGalois branch October 18, 2025 17:12
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.

7 participants