Skip to content

feat(GroupTheory/IsPGroup): p-groups with coprime p are disjoint#39960

Open
SnirBroshi wants to merge 2 commits into
leanprover-community:masterfrom
SnirBroshi:feature/group-theory/disjoint-p-groups
Open

feat(GroupTheory/IsPGroup): p-groups with coprime p are disjoint#39960
SnirBroshi wants to merge 2 commits into
leanprover-community:masterfrom
SnirBroshi:feature/group-theory/disjoint-p-groups

Conversation

@SnirBroshi
Copy link
Copy Markdown
Collaborator

Also their commutator is trivial.

Adds the same theorems to finite groups using Nat.card.


Open in Gitpod

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 28, 2026

PR summary 1eff6d210e

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

+ _root_.AddSubgroup.inf_eq_bot_of_coprime
+ commutator_eq_bot_of_coprime
+ commutator_eq_bot_of_coprime_natCard
+ commute_of_coprime
+ commute_of_coprime_natCard
+ disjoint_of_coprime
+ disjoint_of_coprime_natCard

You can run this locally as follows
## from your `mathlib4` directory:
git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci

## summary with just the declaration names:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh in the mathlib-ci repository contains some details about this script.


No changes to strong technical debt.
No changes to weak technical debt.

@github-actions github-actions Bot added the t-group-theory Group theory label May 28, 2026
Comment on lines +23 to +26
theorem commutator_eq_bot_of_coprime_natCard [H₁.Normal] [H₂.Normal]
(h : Nat.card H₁ |>.Coprime <| Nat.card H₂) : ⁅H₁, H₂⁆ = ⊥ := by
grw [eq_bot_iff, commutator_le_inf]
exact disjoint_of_coprime_natCard h |>.eq_bot.le
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

What about just having commutator_eq_bot assuming Disjoint, and then plugging in disjoint_of_coprime_natCard later as needed (it just feels a bit overly specific to be composing them like this).

(We also have Subgroup.commute_of_normal_of_disjoint, but maybe that doesn't help streamline things any further here)

Comment on lines +28 to +30
theorem commute_of_coprime_natCard [H₁.Normal] [H₂.Normal]
(h : Nat.card H₁ |>.Coprime <| Nat.card H₂) {g₁ g₂} (h₁ : g₁ ∈ H₁) (h₂ : g₂ ∈ H₂) :
Commute g₁ g₂ := by
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is just a special case of Subgroup.commute_of_normal_of_disjoint

Comment thread Mathlib/GroupTheory/PGroup.lean
Copy link
Copy Markdown
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.

In general this feels like a fair amount of duplication for not much gain. Do you have an application in mind?

@tb65536 tb65536 added the awaiting-author A reviewer has asked the author a question or requested changes. label May 29, 2026
@SnirBroshi
Copy link
Copy Markdown
Collaborator Author

I agree the Commute versions are silly, I just didn't know we had Subgroup.commute_of_normal_of_disjoint (nor did I think about this generality so I didn't loogle it).
I like the ideas above, will do!

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. t-group-theory Group theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants