Functoriality of class groups under ring equivalences #
Mathlib defines ClassGroup.mulEquiv f, the multiplicative equivalence on ideal class groups
induced by a ring equivalence f : R ≃+* S. This file supplies its basic functorial API: the
induced map respects identity, composition, and inverses, and computes on the class of a unit
fractional ideal.
This is a prerequisite for the genus-field layer of the multiquadratic roadmap. For a quadratic field, conjugation is a ring automorphism of its ring of integers; the roadmap's proof that conjugation acts on the class group by inversion first needs to treat that action functorially and compute it on ideal classes.
Main results #
ClassGroup.mulEquiv_mk_fractionRing: thesimp-usable computation of the induced equivalence on the class of a unit fractional ideal over the canonical fraction field.ClassGroup.mulEquiv_mk: the same computation over arbitrary fraction fields, as anrw-form with the target fraction field explicit.ClassGroup.mulEquiv_refl: the identity ring equivalence induces the identity on class groups.ClassGroup.mulEquiv_trans: induced equivalences respect composition.ClassGroup.mulEquiv_symm: the inverse induced equivalence comes from the inverse ring equivalence.ClassGroup.mulEquivHom: the induced action bundled as a monoid homomorphism(R ≃+* R) →* MulAut (ClassGroup R).ClassGroup.mulEquiv_involutive: an involutive ring equivalence acts involutively on the class group.
ClassGroup.mulEquiv f sends the class of a unit fractional ideal I to the class of its
image under FractionalIdeal.ringEquivOfRingEquiv f. This is the characteristic computation of the
induced map on ideal classes; the functorial laws below are corollaries. Its fully-determined
left-hand side makes it the simp-usable form; mulEquiv_mk is the general rw-form over
arbitrary fraction fields.
ClassGroup.mulEquiv f sends the class of a unit fractional ideal I to the class of its
image under FractionalIdeal.ringEquivOfRingEquiv f. This is independent of the chosen fraction
fields.
The identity ring equivalence induces the identity class-group equivalence.
Pointwise form of ClassGroup.mulEquiv_trans. This is not a simp lemma because
ClassGroup.mulEquiv_apply already rewrites its left-hand side.
Pointwise form of ClassGroup.mulEquiv_refl. This is not a simp lemma because
ClassGroup.mulEquiv_refl already proves the bundled normal form.
Pointwise form of ClassGroup.mulEquiv_symm. This is not a simp lemma because
ClassGroup.mulEquiv_apply already rewrites its left-hand side.
The action of ring automorphisms of R on ClassGroup R, bundled as a monoid homomorphism
(R ≃+* R) →* MulAut (ClassGroup R). This is the object the roadmap's Galois action on ideal
classes transports along; it is the class-group analogue of
IsFractionRing.ringEquivOfRingEquivHom.
Equations
- ClassGroup.mulEquivHom = { toFun := ClassGroup.mulEquiv, map_one' := ⋯, map_mul' := ⋯ }
Instances For
ClassGroup.mulEquivHom acts as ClassGroup.mulEquiv on each ring automorphism.
An involutive ring equivalence induces an involution on the class group. This is the form
used for quadratic conjugation; it is the pointwise specialization of ClassGroup.mulEquivHom
at an order-two automorphism.