Documentation

Mathlib.RingTheory.ClassGroup.ExtendedHom

Class group map induced by an extension of domains #

For an injective ring homomorphism f : A →+* B of commutative domains, we construct the group homomorphism ClassGroup.map f hf : ClassGroup A →* ClassGroup B given by pushing fractional ideals forward along f. For an injective extension A → B (equivalently Module.IsTorsionFree A B), ClassGroup.extendedHom A B is the special case of the algebra map.

Main definitions #

Main results #

noncomputable def ClassGroup.map {A : Type u_1} {B : Type u_2} [CommRing A] [IsDomain A] [CommRing B] [IsDomain B] (f : A →+* B) (hf : Function.Injective ⇑f) :

The monoid homomorphism ClassGroup A → ClassGroup B induced by an injective ring homomorphism f : A →+* B of domains, given by extending fractional ideals along f.

Equations
Instances For
    @[simp]
    theorem ClassGroup.map_quotientMk {A : Type u_1} {B : Type u_2} [CommRing A] [IsDomain A] [CommRing B] [IsDomain B] (f : A →+* B) (hf : Function.Injective ⇑f) (α : (FractionalIdeal (nonZeroDivisors A) (FractionRing A))ˣ) :
    (map f hf) ↑α = ↑((Units.map ↑(FractionalIdeal.extendedHom' (FractionRing B) ⋯)) α)
    @[simp]
    theorem ClassGroup.map_id {A : Type u_1} [CommRing A] [IsDomain A] (x : ClassGroup A) :
    (map (RingHom.id A) ⋯) x = x
    theorem ClassGroup.map_map {A : Type u_1} {B : Type u_2} {C : Type u_3} [CommRing A] [IsDomain A] [CommRing B] [IsDomain B] [CommRing C] [IsDomain C] (f : A →+* B) (hf : Function.Injective ⇑f) (g : B →+* C) (hg : Function.Injective ⇑g) (x : ClassGroup A) :
    (map g hg) ((map f hf) x) = (map (g.comp f) ⋯) x
    theorem ClassGroup.map_mk0 {A : Type u_4} {B : Type u_5} [CommRing A] [CommRing B] [IsDedekindDomain A] [IsDedekindDomain B] (f : A →+* B) (hf : Function.Injective ⇑f) (I : ↥(nonZeroDivisors (Ideal A))) :
    (map f hf) (mk0 I) = mk0 ⟨Ideal.map f ↑I, ⋯⟩
    noncomputable def ClassGroup.mulEquiv {A : Type u_1} {B : Type u_2} [CommRing A] [IsDomain A] [CommRing B] [IsDomain B] (g : A ≃+* B) :

    A ring isomorphism A ≃+* B induces an isomorphism on their class groups.

    Equations
    Instances For
      @[simp]
      theorem ClassGroup.mulEquiv_apply {A : Type u_1} {B : Type u_2} [CommRing A] [IsDomain A] [CommRing B] [IsDomain B] (g : A ≃+* B) (a : ClassGroup A) :
      (mulEquiv g) a = (map ↑g ⋯) a
      @[simp]
      theorem ClassGroup.mulEquiv_symm_apply {A : Type u_1} {B : Type u_2} [CommRing A] [IsDomain A] [CommRing B] [IsDomain B] (g : A ≃+* B) (a : ClassGroup B) :
      (mulEquiv g).symm a = (map ↑g.symm ⋯) a
      theorem ClassGroup.mulEquiv_mk0 {A : Type u_4} {B : Type u_5} [CommRing A] [CommRing B] [IsDedekindDomain A] [IsDedekindDomain B] (g : A ≃+* B) (I : ↥(nonZeroDivisors (Ideal A))) :
      (mulEquiv g) (mk0 I) = mk0 ⟨Ideal.map g ↑I, ⋯⟩
      noncomputable def ClassGroup.extendedHom (A : Type u_1) (B : Type u_2) [CommRing A] [CommRing B] [Algebra A B] [Module.IsTorsionFree A B] [IsDomain A] [IsDomain B] :

      The monoid homomorphism ClassGroup A → ClassGroup B induced by an injective extension of domains A → B.

      Equations
      Instances For
        @[reducible, inline]
        abbrev ClassGroup.extendedIdeal (A : Type u_1) (B : Type u_2) [CommRing A] [CommRing B] [Algebra A B] [Module.IsTorsionFree A B] [IsDomain A] [IsDomain B] (I : ↥(nonZeroDivisors (Ideal A))) :

        The extension of a nonzero integral ideal along an injective extension of domains.

        Equations
        Instances For