∀ {M : Type u_3} {A : Type u_1} {B : Type u_2} [inst : Monoid M] [inst_1 : Monoid A] [inst_2 : MulDistribMulAction M A]
  [inst_3 : Monoid B] [inst_4 : SMul M B] (f : B →* A) (hf : Function.Injective ⇑f)
  (smul : ∀ (c : M) (x : B), f (c • x) = c • f x) (c : M), f (c • 1) = f 1