feat(RingTheory/ClassGroup): prove mulEquiv#35535
feat(RingTheory/ClassGroup): prove mulEquiv#35535mariainesdff wants to merge 12 commits intomasterfrom
Conversation
PR summary f318334181Import changes for modified filesNo significant changes to the import graph Import changes for all files
|
| Current number | Change | Type |
|---|---|---|
| 10036 | 4 | backward.isDefEq |
Current commit dc8a439359
Reference commit f318334181
You can run this locally as
./scripts/reporting/technical-debt-metrics.sh pr_summary
- The
relativevalue is the weighted sum of the differences with weight given by the inverse of the current value of the statistic. - The
absolutevalue is therelativevalue divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).
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'] |
There was a problem hiding this comment.
To match QuotientGroup.congr this should perhaps be ClassGroup.congr
There was a problem hiding this comment.
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.
| ← FractionalIdeal.ringEquivOfRingEquiv_symm_eq, hu] | ||
| rfl | ||
|
|
||
| /-- A ring isomorphism `P ≃+* P'` induces an isomorphism on their class groups. -/ |
There was a problem hiding this comment.
Can you characterize via a lemma what this isomorphism does to ClassGroup.mk?
There was a problem hiding this comment.
I don't think there is a nice formula for this.
|
This pull request has conflicts, please merge |
| 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 |
There was a problem hiding this comment.
| 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] |
There was a problem hiding this comment.
This did not work.
| 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] |
There was a problem hiding this comment.
Can you add a ringHomOfRingEquiv_refl lemma to make this proof simp [FractionalIdeal.coe_ext_iff]? Thanks.
There was a problem hiding this comment.
What do you mean?
We prove that isomorphic rings have isomorphic class groups.
Co-authored by: @xgenereux.