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.

    @[simp]
    theorem ClassGroup.mulEquiv_mk0 {R : Type u_1} {R' : Type u_2} [CommRing R] [CommRing R'] [IsDedekindDomain R] [IsDedekindDomain R'] (f : R ≃+* R') (I : (nonZeroDivisors (Ideal R))) :
    (mulEquiv f) (mk0 I) = mk0 Ideal.map f I,

    The class-group map induced by a ring isomorphism, on ideal classes. For a ring isomorphism f : R ≃+* R' of Dedekind domains, ClassGroup.mulEquiv f sends the class of a nonzero ideal I to the class of its pushforward Ideal.map f I. This is the bridge between the abstract functorial action ClassGroup.mulEquiv and the concrete pushforward of ideals.

    theorem ClassGroup.mulEquiv_apply_eq_inv_of_isPrincipal_mul_map {R : Type u_1} [CommRing R] [IsDedekindDomain R] {f : R ≃+* R} (hf : ∀ (I : (nonZeroDivisors (Ideal R))), Submodule.IsPrincipal (I * Ideal.map f I)) (C : ClassGroup R) :

    Inversion criterion for the class-group action. If a ring automorphism f : R ≃+* R of a Dedekind domain makes I · (Ideal.map f I) principal for every nonzero ideal I, then the induced map on the class group is inversion: ClassGroup.mulEquiv f C = C⁻¹.