Documentation

TauCeti.NumberTheory.ClassGroup.Equiv

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 #

@[simp]

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.

theorem ClassGroup.mulEquiv_mk {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [IsDomain R] [IsDomain S] {K : Type u_4} (L : Type u_5) [Field K] [Field L] [Algebra R K] [Algebra S L] [IsFractionRing R K] [IsFractionRing S L] (f : R ≃+* S) (I : (FractionalIdeal (nonZeroDivisors R) K)ˣ) :

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.

@[simp]

The identity ring equivalence induces the identity class-group equivalence.

@[simp]
theorem ClassGroup.mulEquiv_trans {R : Type u_1} {S : Type u_2} {T : Type u_3} [CommRing R] [CommRing S] [CommRing T] [IsDomain R] [IsDomain S] [IsDomain T] (f : R ≃+* S) (g : S ≃+* T) :

Composition of ring equivalences is carried to composition of the induced class-group equivalences.

theorem ClassGroup.mulEquiv_trans_apply {R : Type u_1} {S : Type u_2} {T : Type u_3} [CommRing R] [CommRing S] [CommRing T] [IsDomain R] [IsDomain S] [IsDomain T] (f : R ≃+* S) (g : S ≃+* T) (x : ClassGroup R) :
(mulEquiv (f.trans g)) x = (mulEquiv g) ((mulEquiv f) x)

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.

@[simp]
theorem ClassGroup.mulEquiv_symm {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [IsDomain R] [IsDomain S] (f : R ≃+* S) :

The inverse of the class-group equivalence induced by f is induced by f.symm.

theorem ClassGroup.mulEquiv_symm_apply' {R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] [IsDomain R] [IsDomain S] (f : R ≃+* S) (x : ClassGroup S) :

Pointwise form of ClassGroup.mulEquiv_symm. This is not a simp lemma because ClassGroup.mulEquiv_apply already rewrites its left-hand side.

noncomputable def ClassGroup.mulEquivHom {R : Type u_1} [CommRing R] [IsDomain R] :

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
Instances For
    @[simp]

    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.