Zulip Chat Archive

Stream: Is there code for X?

Topic: multiplier subring


Edward van de Meent (Sep 22 2024 at 09:26):

does mathlib already have the following concept?

def multiplierRing
    (K : Type*) [Ring K]
    (SK : Type*) [SetLike SK K] [AddSubgroupClass SK K] (I : SK) :
    Subring K where
  carrier := {x:K |  i  I, (x * i)  I}
  add_mem' := fun {a b} ha hb i hi=> by
    simp only [Set.mem_setOf_eq] at ha hb 
    rw [right_distrib]
    exact add_mem (ha i hi) (hb i hi)
  zero_mem' := by
    simp only [Set.mem_setOf_eq, zero_mul]
    intros
    exact zero_mem I
  one_mem' := by
    simp only [Set.mem_setOf_eq, one_mul, imp_self, forall_const]
  neg_mem' {a} := by
    simp only [Set.mem_setOf_eq, neg_mul]
    intro ha i hi
    exact neg_mem (ha i hi)
  mul_mem' {a b} := by
    simp only [Set.mem_setOf_eq]
    intro ha hb i hi
    rw [mul_assoc]
    exact ha (b * i) (hb i hi)

i'm asking because i'd like to prove that for fractional ideals, if the ideal is invertible, it is proper, (i.e. its multiplier subring is exactly the embedding of R in its field of fractions)

Edward van de Meent (Sep 22 2024 at 09:28):

as a side note, to make this work for fractional ideals i also need the AddSubgroupClass instance for FractionalIdeal, which afaict doesn't exist either?

Yaël Dillies (Sep 22 2024 at 09:29):

Is this not docs#Submodule.colon ?

Edward van de Meent (Sep 22 2024 at 09:30):

it looks like it...

Edward van de Meent (Sep 22 2024 at 09:32):

by the way, is there a reason why FractionalIdeal is a def using Subtype rather than this:

structure FractionalIdeal extends Submodule R P where
  isFractional : IsFractional S toSubmodule

Edward van de Meent (Sep 22 2024 at 09:34):

because i think the above works much nicer, exposing I.add_mem and the like...

Kevin Buzzard (Sep 22 2024 at 11:02):

Yaël Dillies said:

Is this not docs#Submodule.colon ?

That produces an ideal from an ideal. This produces a subring from a subgroup.


Last updated: May 02 2025 at 03:31 UTC