Zulip Chat Archive

Stream: Is there code for X?

Topic: MulAction.QuotientAction variant for mulaction on module


Edward van de Meent (Jun 05 2024 at 11:49):

from as far as i can tell, docs#MulAction.QuotientAction only works for using smul on a set with a multiplicative structure, but i'd like to talk about the (multiplicative) action of a group on a quotient of modules, which has an additive structure. IsScalarTower does not hold, the semi-"toAdd"-ification of the field of MulAction.QuotientAction does...

Johan Commelin (Jun 05 2024 at 11:53):

Do we have quotients of group representations in Mathlib/RepresentationTheory/? They should give you the right action...

Edward van de Meent (Jun 05 2024 at 11:56):

not as far as i can tell...

Johan Commelin (Jun 05 2024 at 11:58):

And where does a quotient of modules get the smul of its ring of scalars? Because that ring is a multiplicative monoid... So hopefully that's done in the right abstraction

Edward van de Meent (Jun 05 2024 at 11:59):

that does exist, but that only works for the ring of scalars itself...
for the record, that is docs#Submodule.Quotient.mulAction

Edward van de Meent (Jun 05 2024 at 12:22):

for now, i've defined this:

section
variable {α : Type*} (β : Type*) (K : Type*) [Ring K]
  [AddCommGroup α]
  [Module K α]
  [Monoid β] [MulAction β α] (H : Submodule K α)


class MulAction.ModuleQuotientAction : Prop where
  neg_add_mem :  (b : β),  (a a' : α) , - a + a'  H  - (b  a) + (b  a')  H


variable [MulAction.ModuleQuotientAction β K H]

instance : MulAction β (α  H) where
  smul b := Quotient.map' (b  ·) fun a a' h => by
    apply QuotientAddGroup.leftRel_apply.mpr
    simp only [Submodule.mem_toAddSubgroup]
    apply MulAction.ModuleQuotientAction.neg_add_mem b
    apply QuotientAddGroup.leftRel_apply.mp h
  one_smul q := Quotient.inductionOn' q fun a => congr_arg Quotient.mk'' (one_smul β a)
  mul_smul b b' q := Quotient.inductionOn' q fun a => congr_arg Quotient.mk'' (mul_smul b b' a)

-- #synth SMul β (α ⧸ H)

end

this quite possibly might conflict due to some defEq issues in combination with addition being commutative, but this at least does give the instance i want

Kevin Buzzard (Jun 05 2024 at 12:55):

Shouldn't docs#SubMulAction be involved somehow?

Typically we don't do the golfy "closed under x - y" trick because even though it's one axiom not two, in practice you use add_mem and neg_mem and zero_mem so you have to prove them anyway.

Edward van de Meent (Jun 05 2024 at 12:57):

the thing is, i basically lifted this proof from the one at docs#MulAction.quotient

Edward van de Meent (Jun 05 2024 at 12:57):

(as well as the field for the structure)

Edward van de Meent (Jun 05 2024 at 13:01):

so although you might be right, i wouldn't know how to adress this...


Last updated: May 02 2025 at 03:31 UTC