Skip to content

[Merged by Bors] - feat(RingTheory/ClassGroup): prove mulEquiv#35535

Closed
mariainesdff wants to merge 18 commits intomasterfrom
class_group_equiv
Closed

[Merged by Bors] - feat(RingTheory/ClassGroup): prove mulEquiv#35535
mariainesdff wants to merge 18 commits intomasterfrom
class_group_equiv

Conversation

@mariainesdff
Copy link
Copy Markdown
Contributor

We prove that isomorphic rings have isomorphic class groups.

Co-authored by: @xgenereux.


Open in Gitpod

@mariainesdff mariainesdff added the t-ring-theory Ring theory label Feb 19, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Feb 19, 2026

PR summary cc9c9b7838

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

+ ClassGroup.mulEquiv
+ FractionalIdeal.map_ringEquivOfRingEquiv_toPrincipalIdeal
+ _root_.IsFractional.mapEquiv
+ ringEquivOfRingEquiv
+ ringEquivOfRingEquiv_apply
+ ringEquivOfRingEquiv_apply_val
+ ringEquivOfRingEquiv_comp
+ ringEquivOfRingEquiv_refl
+ ringEquivOfRingEquiv_spanSingleton
+ ringEquivOfRingEquiv_symm_eq
+ ringEquivOfRingEquiv_trans
+ ringEquivOfRingEquiv_trans_apply
+ semilinearEquivOfRingEquiv
+ semilinearEquivOfRingEquiv_algebraMap
+ semilinearEquivOfRingEquiv_apply
+ semilinearEquivOfRingEquiv_comp
+ semilinearEquivOfRingEquiv_symm_apply

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 technical debt.

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

Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
Comment thread Mathlib/RingTheory/Localization/FractionRing.lean Outdated
Comment thread Mathlib/RingTheory/ClassGroup.lean Outdated
rfl

/-- A ring isomorphism `P ≃+* P'` induces an isomorphism on their class groups. -/
noncomputable def RingEquiv.classGroupEquiv {P P' : Type*} [CommRing P] [IsDomain P] [CommRing P']
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

To match QuotientGroup.congr this should perhaps be ClassGroup.congr

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I could change it, but why not rename QuotientGroup.congr to QuotientGroup.mulEquiv instead (and this to ClassGroup.mulEquiv? That seems more discoverable to me than congr.

Comment thread Mathlib/RingTheory/ClassGroup.lean Outdated
← FractionalIdeal.ringEquivOfRingEquiv_symm_eq, hu]
rfl

/-- A ring isomorphism `P ≃+* P'` induces an isomorphism on their class groups. -/
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can you characterize via a lemma what this isomorphism does to ClassGroup.mk?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I don't think there is a nice formula for this.

Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
@mariainesdff mariainesdff added the awaiting-CI This PR does not pass CI yet. This label is automatically removed once it does. label Feb 23, 2026
@mathlib-merge-conflicts mathlib-merge-conflicts Bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Feb 25, 2026
@mathlib-merge-conflicts
Copy link
Copy Markdown

This pull request has conflicts, please merge master and resolve them.

@github-actions github-actions Bot removed merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) awaiting-CI This PR does not pass CI yet. This label is automatically removed once it does. labels Feb 25, 2026
Comment thread Mathlib/Algebra/Ring/CompTypeclasses.lean Outdated
Comment thread Mathlib/Algebra/Ring/CompTypeclasses.lean
Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
Comment on lines +1008 to +1015
have : RingHomCompTriple f (g : S →+* T) (f.trans g : R →+* T) := ⟨rfl⟩
apply RingHom.ext
intro I
rw [Subtype.ext_iff]
simp only [ringHomOfRingEquiv, RingEquiv.coe_ringHom_trans, val_eq_coe, RingHom.coe_mk,
MonoidHom.coe_mk, OneHom.coe_mk, coe_mk, RingHom.coe_comp, Function.comp_apply]
rw [← Submodule.map_comp, IsFractionRing.semilinearEquivOfRingEquiv_comp K L f M]
rfl
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Suggested change
have : RingHomCompTriple f (g : S →+* T) (f.trans g : R →+* T) := ⟨rfl⟩
apply RingHom.ext
intro I
rw [Subtype.ext_iff]
simp only [ringHomOfRingEquiv, RingEquiv.coe_ringHom_trans, val_eq_coe, RingHom.coe_mk,
MonoidHom.coe_mk, OneHom.coe_mk, coe_mk, RingHom.coe_comp, Function.comp_apply]
rw [← Submodule.map_comp, IsFractionRing.semilinearEquivOfRingEquiv_comp K L f M]
rfl
ext1 I
simp [FractionalIdeal.coe_ext_iff, LinearEquiv.coe_trans,
IsFractionRing.semilinearEquivOfRingEquiv_comp (K := K) (L := L), Submodule.map_comp]

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This did not work.

Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
Comment on lines +1030 to +1035
rw [Subtype.ext_iff]
simp only [ringHomOfRingEquiv_apply, RingEquiv.coe_ringHom_refl, RingEquiv.symm_refl, val_eq_coe,
coe_mk, RingHom.id_apply]
convert Submodule.map_id _
ext x
simp [IsFractionRing.semilinearEquivOfRingEquiv]
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can you add a ringHomOfRingEquiv_refl lemma to make this proof simp [FractionalIdeal.coe_ext_iff]? Thanks.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

What do you mean?

Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
@erdOne erdOne added the awaiting-author A reviewer has asked the author a question or requested changes. label Feb 28, 2026
@mariainesdff mariainesdff removed the awaiting-author A reviewer has asked the author a question or requested changes. label Mar 4, 2026
Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
@jcommelin jcommelin added the awaiting-author A reviewer has asked the author a question or requested changes. label Apr 8, 2026
@mariainesdff mariainesdff removed awaiting-author A reviewer has asked the author a question or requested changes. labels Apr 8, 2026
Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
@jcommelin jcommelin added the awaiting-author A reviewer has asked the author a question or requested changes. label Apr 14, 2026
Comment thread Mathlib/RingTheory/FractionalIdeal/Operations.lean Outdated
@mariainesdff mariainesdff removed the awaiting-author A reviewer has asked the author a question or requested changes. label Apr 28, 2026
Copy link
Copy Markdown
Member

@jcommelin jcommelin left a comment

Choose a reason for hiding this comment

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

bors d+

Comment thread Mathlib/RingTheory/ClassGroup.lean Outdated
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors Bot commented Apr 29, 2026

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

@mathlib-triage mathlib-triage Bot added the delegated This pull request has been delegated to the PR author (or occasionally another non-maintainer). label Apr 29, 2026
@mariainesdff mariainesdff added the awaiting-CI This PR does not pass CI yet. This label is automatically removed once it does. label Apr 29, 2026
@github-actions github-actions Bot removed the awaiting-CI This PR does not pass CI yet. This label is automatically removed once it does. label Apr 29, 2026
@mariainesdff
Copy link
Copy Markdown
Contributor Author

bors r+

mathlib-bors Bot pushed a commit that referenced this pull request Apr 29, 2026
We prove that isomorphic rings have isomorphic class groups.

Co-authored by: @xgenereux.

Co-authored-by: mariainesdff <mariaines.dff@gmail.com>
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors Bot commented Apr 29, 2026

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors Bot changed the title feat(RingTheory/ClassGroup): prove mulEquiv [Merged by Bors] - feat(RingTheory/ClassGroup): prove mulEquiv Apr 29, 2026
@mathlib-bors mathlib-bors Bot closed this Apr 29, 2026
@mathlib-bors mathlib-bors Bot deleted the class_group_equiv branch April 29, 2026 15:43
xroblot pushed a commit to xroblot/mathlib4 that referenced this pull request May 2, 2026
We prove that isomorphic rings have isomorphic class groups.

Co-authored by: @xgenereux.

Co-authored-by: mariainesdff <mariaines.dff@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

delegated This pull request has been delegated to the PR author (or occasionally another non-maintainer). t-ring-theory Ring theory

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants