∀ {R : Type u_1} {M : Type u_5} {M₁ : Type u_6} {M₂ : Type u_7} {M₃ : Type u_8} [inst : CommSemiring R]
  [inst_1 : AddCommMonoid M] [inst_2 : AddCommMonoid M₁] [inst_3 : AddCommMonoid M₂] [inst_4 : AddCommMonoid M₃]
  [inst_5 : Module R M] [inst_6 : Module R M₁] [inst_7 : Module R M₂] [inst_8 : Module R M₃] (f : M₁ →ₗ[R] M₂ →ₗ[R] M)
  (i : M₃ →ₗ[R] M) (hi : Function.Injective ⇑i) (hf : ∀ (x : M₁) (y : M₂), (f x) y ∈ i.range) (x : M₁) (y : M₂),
  i (((f.codRestrict₂ i hi hf) x) y) = (f x) y