Skip to content

feat(GroupTheory/Focal): add focal subgroup theorem#34380

Open
Rogerhu12 wants to merge 12 commits intoleanprover-community:masterfrom
Rogerhu12:add_focal_subgroup
Open

feat(GroupTheory/Focal): add focal subgroup theorem#34380
Rogerhu12 wants to merge 12 commits intoleanprover-community:masterfrom
Rogerhu12:add_focal_subgroup

Conversation

@Rogerhu12
Copy link

Define focalSubgroup (denoted H*) and prove the Focal Subgroup Theorem.

The main result is inf_commutator_eq_focalSubgroup, which states that for a Sylow p-subgroup P of a finite group G, P ∩ G' = P*.

This implementation includes:

  • The definition of the focal subgroup.
  • The transfer homomorphism G → P/P*.
  • The proof using the transfer map.

Also add [gorenstein1968] to docs/references.bib.


Open in Gitpod

@github-actions github-actions bot added new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! t-group-theory Group theory labels Jan 24, 2026
@github-actions
Copy link

github-actions bot commented Jan 24, 2026

PR summary eb5df47f87

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.GroupTheory.Focal (new file) 1150

Declarations diff

+ commutator_le_focalSubgroup
+ commutator_le_focalSubgroupOf
+ focalSubgroup
+ focalSubgroupOf
+ focalSubgroupOf_def
+ focalSubgroupOf_eq_closure
+ focalSubgroupOf_mk'_conj_eq
+ focalSubgroup_def
+ focalSubgroup_le
+ focalSubgroup_le_commutator
+ index_eq_sum_minimalPeriod
+ inf_commutator_eq_focalSubgroup
+ inf_ker_transferFocal_eq_focalSubgroup
+ instance : IsMulCommutative (H ⧸ focalSubgroupOf H)
+ instance : Normal (focalSubgroupOf H) := by
+ ker_restrict_transferFocal_eq_focalSubgroupOf
+ map_focalSubgroupOf
+ pow_n_surjective_on_p_quotient
+ quotientKerIsoQuotientFocal
+ transferFocal
+ transfer_focal_eq_pow
+ transfer_restrict_surjective

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

@wwylele
Copy link
Collaborator

wwylele commented Jan 25, 2026

If this is a complete formalization, you can update 1000.yaml

@Rogerhu12
Copy link
Author

If this is a complete formalization, you can update 1000.yaml

Thanks for the review and for pointing this out! I wasn't aware of the 1000.yaml file. I've just pushed the update.

@Rogerhu12
Copy link
Author

I refactored the development to better match mathlib style.
In particular, I extracted commutator_le_focalSubgroupOf and rewrote commutativity of H ⧸ H* via Normal.quotient_commutative_iff_commutator_le.
I introduced focalSubgroupOf_mk'conj_eq to handle conjugation in the quotient and reused it in the transfer computation.
The commutator-to-kernel step is now inf_le_inf_left _ (Abelianization.commutator_subset_ker ...).
I kept the fusion-style generators in the definition and added focal_gen_eq_commutator as a bridge.
Added @[to_additive] to the core definitions/basic lemmas only.

@tb65536 tb65536 added the awaiting-author A reviewer has asked the author a question or requested changes. label Feb 10, 2026
@Rogerhu12 Rogerhu12 requested a review from tb65536 February 11, 2026 09:41
@Rogerhu12 Rogerhu12 requested a review from tb65536 February 13, 2026 09:21
Copy link
Contributor

@tb65536 tb65536 left a comment

Choose a reason for hiding this comment

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

Getting close! Just some golfs now, and then we'll need to clean up the names next time around.

Define `focalSubgroup` (denoted `H*`) and prove the Focal Subgroup Theorem.

The main result is `inf_commutator_eq_focalSubgroup`, which states that
for a Sylow p-subgroup `P` of a finite group `G`, `P ∩ G' = P*`.

This implementation includes:
- The definition of the focal subgroup.
- The transfer homomorphism `G → P/P*`.
- The proof using the transfer map.

Also add [gorenstein1968] to `docs/references.bib`.
- add `[to_additive]` to core definitions/basic lemmas
- extract conjugation lemma for `QuotientGroup.mk'` modulo `H*`
- extract `commutator_le_focalSubgroupOf` and streamline commutativity proof
- use `Abelianization.commutator_subset_ker` for the commutator ⊆ ker step
- Added the `focalSubgroupOf_eq_closure` lemma to avoid direct unfolding of definitions.
- Simplified the proof in `focalSubgroup_le_h` using `focalSubgroupOf_eq_closure` and `closure_mono` to reduce redundancy.
- Moved some definitions and lemmas into the `Subgroup` namespace for clarity and modularity.
- Introduced `transfer_focal_eq_pow` as a more intuitive name for the restriction map theorem.
- Minor optimization in handling of closure and commutator set membership.
… in Transfer.lean

Polish some proofs

Golf some proofs

Co-authored-by: Thomas Browning <tb65536@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting-author A reviewer has asked the author a question or requested changes. new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! t-group-theory Group theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants