-- Lean 4 proof step from Mathlib.RingTheory.LocalRing.Module (goal)
Goal:
R : Type u_1
inst : CommRing R
M₁ : Type u_5
M₂ : Type u_6
M₃ : Type u_7
N₁ : Type u_8
N₂ : Type u_9
N₃ : Type u_10
inst_1 : AddCommGroup M₁
inst_2 : Module R M₁
inst_3 : AddCommGroup M₂
inst_4 : Module R M₂
inst_5 : AddCommGroup M₃
inst_6 : Module R M₃
inst_7 : AddCommGroup N₁
inst_8 : Module R N₁
inst_9 : AddCommGroup N₂
inst_10 : Module R N₂
inst_11 : AddCommGroup N₃
inst_12 : Module R N₃
f₁ : M₁ →ₗ[R] M₂
f₂ : M₂ →ₗ[R] M₃
g₁ : N₁ →ₗ[R] N₂
g₂ : N₂ →ₗ[R] N₃
hfexact : Exact.{u_5, u_6, u_7} (M := M₁) (N := M₂) (P := M₃) (⇑f₁ : (a : M₁) → M₂) (⇑f₂ : (a : M₂) → M₃)
hfsurj : Surjective.{u_6 + 1, u_7 + 1} (α := M₂) (β := M₃) (⇑f₂ : (a : M₂) → M₃)
hgexact : Exact.{u_8, u_9, u_10} (M := N₁) (N := N₂) (P := N₃) (⇑g₁ : (a : N₁) → N₂) (⇑g₂ : (a : N₂) → N₃)
hgsurj : Surjective.{u_9 + 1, u_10 + 1} (α := N₂) (β := N₃) (⇑g₂ : (a : N₂) → N₃)
hfinj :
  Function.Injective (α := M₁ ⊗[R] N₃) (β := M₂ ⊗[R] N₃) (⇑(LinearMap.rTensor N₃ f₁) : (a : M₁ ⊗[R] N₃) → M₂ ⊗[R] N₃)
hginj :
  Function.Injective (α := M₂ ⊗[R] N₁) (β := M₂ ⊗[R] N₂) (⇑(LinearMap.lTensor M₂ g₁) : (a : M₂ ⊗[R] N₁) → M₂ ⊗[R] N₂)
x : M₂ ⊗[R] N₁
hx :
  Eq (α := M₃ ⊗[R] N₂)
    ((LinearMap.lTensor M₃ g₁ : (a : M₃ ⊗[R] N₁) → M₃ ⊗[R] N₂)
        ((LinearMap.rTensor N₁ f₂ : (a : M₂ ⊗[R] N₁) → M₃ ⊗[R] N₁) x) :
      M₃ ⊗[R] N₂)
    (0 : M₃ ⊗[R] N₂)
this_1 :
  Eq (α := M₃ ⊗[R] N₂)
    ((LinearMap.rTensor N₂ f₂ : (a : M₂ ⊗[R] N₂) → M₃ ⊗[R] N₂)
        ((LinearMap.lTensor M₂ g₁ : (a : M₂ ⊗[R] N₁) → M₂ ⊗[R] N₂) x) :
      M₃ ⊗[R] N₂)
    (0 : M₃ ⊗[R] N₂)
z : M₁ ⊗[R] N₁
hy :
  Eq (α := M₂ ⊗[R] N₂)
    ((LinearMap.rTensor N₂ f₁ : (a : M₁ ⊗[R] N₂) → M₂ ⊗[R] N₂)
        ((LinearMap.lTensor M₁ g₁ : (a : M₁ ⊗[R] N₁) → M₁ ⊗[R] N₂) z) :
      M₂ ⊗[R] N₂)
    ((LinearMap.lTensor M₂ g₁ : (a : M₂ ⊗[R] N₁) → M₂ ⊗[R] N₂) x : M₂ ⊗[R] N₂)
this :
  Eq (α := M₁ ⊗[R] N₃)
    ((LinearMap.lTensor M₁ g₂ : (a : M₁ ⊗[R] N₂) → M₁ ⊗[R] N₃)
        ((LinearMap.lTensor M₁ g₁ : (a : M₁ ⊗[R] N₁) → M₁ ⊗[R] N₂) z) :
      M₁ ⊗[R] N₃)
    (0 : M₁ ⊗[R] N₃)
⊢ Eq (α := M₃ ⊗[R] N₁) ((LinearMap.rTensor N₁ f₂ : (a : M₂ ⊗[R] N₁) → M₃ ⊗[R] N₁) x : M₃ ⊗[R] N₁) (0 : M₃ ⊗[R] N₁)
have obtain : ∀
  (hx :
    Eq (α := M₃ ⊗[R] N₂)
      ((LinearMap.lTensor M₃ g₁ : (a : M₃ ⊗[R] N₁) → M₃ ⊗[R] N₂)
          ((LinearMap.rTensor N₁ f₂ : (a : M₂ ⊗[R] N₁) → M₃ ⊗[R] N₁)
            ((LinearMap.rTensor N₁ f₁ : (a : M₁ ⊗[R] N₁) → M₂ ⊗[R] N₁) z)) :
        M₃ ⊗[R] N₂)
      (0 : M₃ ⊗[R] N₂))
  (this :
    Eq (α := M₃ ⊗[R] N₂)
      ((LinearMap.rTensor N₂ f₂ : (a : M₂ ⊗[R] N₂) → M₃ ⊗[R] N₂)
          ((LinearMap.lTensor M₂ g₁ : (a : M₂ ⊗[R] N₁) → M₂ ⊗[R] N₂)
            ((LinearMap.rTensor N₁ f₁ : (a : M₁ ⊗[R] N₁) → M₂ ⊗[R] N₁) z)) :
        M₃ ⊗[R] N₂)
      (0 : M₃ ⊗[R] N₂))
  (hy :
    Eq (α := M₂ ⊗[R] N₂)
      ((LinearMap.rTensor N₂ f₁ : (a : M₁ ⊗[R] N₂) → M₂ ⊗[R] N₂)
          ((LinearMap.lTensor M₁ g₁ : (a : M₁ ⊗[R] N₁) → M₁ ⊗[R] N₂) z) :
        M₂ ⊗[R] N₂)
      ((LinearMap.lTensor M₂ g₁ : (a : M₂ ⊗[R] N₁) → M₂ ⊗[R] N₂)
          ((LinearMap.rTensor N₁ f₁ : (a : M₁ ⊗[R] N₁) → M₂ ⊗[R] N₁) z) :
        M₂ ⊗[R] N₂)),
  Eq (α := M₃ ⊗[R] N₁)
    ((LinearMap.rTensor N₁ f₂ : (a : M₂ ⊗[R] N₁) → M₃ ⊗[R] N₁)
        ((LinearMap.rTensor N₁ f₁ : (a : M₁ ⊗[R] N₁) → M₂ ⊗[R] N₁) z) :
      M₃ ⊗[R] N₁)
    (0 : M₃ ⊗[R] N₁)
Tactic: obtain rfl : f₁.rTensor N₁ z = x := by
    apply hginj
    simp only [← hy, ← LinearMap.comp_apply, ← LinearMap.comp_apply, LinearMap.lTensor_comp_rTensor,
      LinearMap.rTensor_comp_lTensor]
Cleared hypotheses: x, hx, this_1, hy