Skip to content

feat(GroupTheory): summation over a conjugacy class - #41326

Open
Yu-Misaka wants to merge 21 commits into
leanprover-community:masterfrom
Yu-Misaka:conjClass_sum
Open

feat(GroupTheory): summation over a conjugacy class#41326
Yu-Misaka wants to merge 21 commits into
leanprover-community:masterfrom
Yu-Misaka:conjClass_sum

Conversation

@Yu-Misaka

@Yu-Misaka Yu-Misaka commented Jul 3, 2026

Copy link
Copy Markdown
Collaborator

This PR proves ConjClasses.sum_carrier_mul_left: Summing f (g * h) over h in the conjugacy class of g equals summing f (h * g).

This result can potentially help prove, for example, ∑ h ∈ (ConjClasses.mk g).carrier, ρ h is intertwining in the settings of representation theory.


Open in Gitpod

@github-actions github-actions Bot added the large-import Automatically added label for PRs with a significant increase in transitive imports label Jul 3, 2026
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

PR summary 83865bda6f

Import changes exceeding 2%

% File
+4.43% Mathlib.Algebra.Group.Conj

Import changes for modified files

Dependency changes

File Base Count Head Count Change
Mathlib.Algebra.Group.Conj 361 377 +16 (+4.43%)
Import changes for all files
Files Import difference
Mathlib.Algebra.Group.Conj Mathlib.Algebra.GroupWithZero.Conj 16

Declarations diff (regex)

+ invOn_conj
+ isConj_inv_mul_mul_left
+ isConj_inv_mul_mul_right
+ isConj_mul_mul_inv_left
+ isConj_mul_mul_inv_right
+ mapsTo_conj
+ mk_conj
+ mk_conj_assoc
+ mk_inv_conj
+ mk_inv_conj_assoc
+ prod_carrier_conj
+ prod_carrier_mul_left

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.

Declarations diff (Lean)

Lean-aware diff — post-build, computed from the Lean environment (commit 83865bd).

  • +24 new declarations
  • −0 removed declarations
+AddConjClasses.mapsTo_addConj
+AddConjClasses.mk_addConj
+AddConjClasses.mk_addConj_assoc
+AddConjClasses.mk_neg_addConj
+AddConjClasses.mk_neg_addConj_assoc
+AddConjClasses.negOn_addConj
+ConjClasses.invOn_conj
+ConjClasses.mapsTo_conj
+ConjClasses.mk_conj
+ConjClasses.mk_conj_assoc
+ConjClasses.mk_inv_conj
+ConjClasses.mk_inv_conj_assoc
+ConjClasses.prod_carrier_conj
+ConjClasses.prod_carrier_mul_left
+ConjClasses.sum_carrier_conj
+ConjClasses.sum_carrier_mul_left
+isAddConj_add_add_neg_left
+isAddConj_add_add_neg_right
+isAddConj_neg_add_add_left
+isAddConj_neg_add_add_right
+isConj_inv_mul_mul_left
+isConj_inv_mul_mul_right
+isConj_mul_mul_inv_left
+isConj_mul_mul_inv_right

No changes to strong technical debt.

No changes to weak technical debt.

Current commit 83865bda6f
Reference commit bfefa91d21

This script lives in the mathlib-ci repository. To run it locally, from your mathlib4 directory:

git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci
../mathlib-ci/scripts/reporting/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).

@github-actions github-actions Bot added the t-group-theory Group theory label Jul 3, 2026
Comment thread Mathlib/Algebra/Group/Conj.lean Outdated
Comment thread Mathlib/GroupTheory/ClassEquation.lean Outdated
Yu-Misaka and others added 2 commits July 3, 2026 23:01
Comment thread Mathlib/Algebra/Group/Conj.lean Outdated
Comment thread Mathlib/GroupTheory/ClassEquation.lean Outdated

@wwylele wwylele left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Otherwise looks good to me

Comment thread Mathlib/Algebra/Group/ConjFinite.lean Outdated
Comment thread Mathlib/Algebra/Group/ConjFinite.lean Outdated
Comment thread Mathlib/Algebra/Group/Conj.lean Outdated
Comment thread Mathlib/Algebra/Group/Conj.lean Outdated
Comment thread Mathlib/Algebra/Group/Conj.lean Outdated
Comment thread Mathlib/Algebra/Group/ConjFinite.lean Outdated
Comment thread Mathlib/Algebra/Group/ConjFinite.lean Outdated
@YaelDillies YaelDillies added the awaiting-author A reviewer has asked the author a question or requested changes. label Jul 15, 2026
@YaelDillies YaelDillies self-assigned this Jul 15, 2026
Yu-Misaka and others added 2 commits July 16, 2026 13:36
Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
@Yu-Misaka Yu-Misaka removed the awaiting-author A reviewer has asked the author a question or requested changes. label Jul 17, 2026
simp [mk_eq_mk_iff_isConj]

@[to_additive]
theorem mapsTo_conj {α : Type*} [Group α] (k : α) (c : ConjClasses α) :

@Yu-Misaka Yu-Misaka Jul 17, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Should I inline this lemma? (I am referring to mapsTo_conj)

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.

It's much easier for me to answer if you make a multiline comment including the statement!

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.

I would say you should replace the InjOn and BijOn lemmas by a single InvOn one

@Yu-Misaka Yu-Misaka Jul 19, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Ah, sure I'll do multiline next time. And thanks for your advice, implemented!

(I kept the MapsTo lemma though, as it is needed in Finset.prod_nbij and can't be derived from InvOn)

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.

I kept the MapsTo lemma though, as it is needed in Finset.prod_nbij and can't be derived from InvOn

This seems bad. Mathematically it should, right? Can you complain on Zulip that the definition of InvOn is wrong?

@Yu-Misaka Yu-Misaka Jul 19, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

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.

For now, can you strengthen this to BijOn?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

No problem ;)

(I'm a bit busy this week, will get back to you as soon as possible)

@YaelDillies

Copy link
Copy Markdown
Contributor

Don't forget to resolve the comments that you have satisfactorily addressed!

@YaelDillies YaelDillies added the awaiting-author A reviewer has asked the author a question or requested changes. label Jul 17, 2026
@Yu-Misaka Yu-Misaka removed the awaiting-author A reviewer has asked the author a question or requested changes. label Jul 19, 2026
Comment thread Mathlib/Algebra/Group/Conj.lean Outdated
Comment thread Mathlib/Algebra/Group/ConjFinite.lean
@YaelDillies YaelDillies added the awaiting-author A reviewer has asked the author a question or requested changes. label Jul 19, 2026
Yu-Misaka and others added 2 commits July 19, 2026 14:17
Co-authored-by: Yaël Dillies <yael.dillies@gmail.com>
Comment on lines +312 to +313
lemma mk_conj {α : Type*} [Group α] (m x : α) :
ConjClasses.mk (m * x * m⁻¹) = ConjClasses.mk x := 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.

Can you use the same naming convention here and below? You can prime the reassociated lemmas to disambiguate

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. large-import Automatically added label for PRs with a significant increase in transitive imports t-group-theory Group theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants