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