-- Lean 4 proof step from Mathlib.RingTheory.AdicCompletion.AsTensorProduct (goal)
Goal:
R : Type u_1
inst : CommRing R
I : Ideal R
M : Type u_2
inst_1 : AddCommGroup M
inst_2 : Module R M
N : Type u_3
inst_3 : AddCommGroup N
inst_4 : Module R N
x y : AdicCompletion I R
⊢ (↑R :
          {S : Type u_1} →
            {M M₂ : Type u_2} →
              [inst : Semiring R] →
                [inst_5 : Semiring S] →
                  [inst_6 : AddCommMonoid M] →
                    [inst_7 : AddCommMonoid M₂] →
                      [inst_8 : Module R M] →
                        [inst_9 : Module R M₂] →
                          [inst_10 : Module S M] →
                            [inst_11 : Module S M₂] →
                              [LinearMap.CompatibleSMul M M₂ R S] → (fₗ : M →ₗ[S] M₂) → M →ₗ[R] M₂)
        (S := AdicCompletion I R)
        ((LinearMap.lsmul (AdicCompletion I R) (AdicCompletion I M) :
            (a : AdicCompletion I R) → AdicCompletion I M →ₗ[AdicCompletion I R] AdicCompletion I M)
          (x + y)) ∘ₗ
      of I M =
    HAdd.hAdd (α := M →ₗ[R] AdicCompletion I M)
      ((↑R :
            {S : Type u_1} →
              {M M₂ : Type u_2} →
                [inst : Semiring R] →
                  [inst_5 : Semiring S] →
                    [inst_6 : AddCommMonoid M] →
                      [inst_7 : AddCommMonoid M₂] →
                        [inst_8 : Module R M] →
                          [inst_9 : Module R M₂] →
                            [inst_10 : Module S M] →
                              [inst_11 : Module S M₂] →
                                [LinearMap.CompatibleSMul M M₂ R S] → (fₗ : M →ₗ[S] M₂) → M →ₗ[R] M₂)
          (S := AdicCompletion I R)
          ((LinearMap.lsmul (AdicCompletion I R) (AdicCompletion I M) :
              (a : AdicCompletion I R) → AdicCompletion I M →ₗ[AdicCompletion I R] AdicCompletion I M)
            x) ∘ₗ
        of I M)
      ((↑R :
            {S : Type u_1} →
              {M M₂ : Type u_2} →
                [inst : Semiring R] →
                  [inst_5 : Semiring S] →
                    [inst_6 : AddCommMonoid M] →
                      [inst_7 : AddCommMonoid M₂] →
                        [inst_8 : Module R M] →
                          [inst_9 : Module R M₂] →
                            [inst_10 : Module S M] →
                              [inst_11 : Module S M₂] →
                                [LinearMap.CompatibleSMul M M₂ R S] → (fₗ : M →ₗ[S] M₂) → M →ₗ[R] M₂)
          (S := AdicCompletion I R)
          ((LinearMap.lsmul (AdicCompletion I R) (AdicCompletion I M) :
              (a : AdicCompletion I R) → AdicCompletion I M →ₗ[AdicCompletion I R] AdicCompletion I M)
            y) ∘ₗ
        of I M)
have h : ∀ (x_1 : M),
  Eq (α := AdicCompletion I M)
    (((↑R :
                {S : Type u_1} →
                  {M M₂ : Type u_2} →
                    [inst : Semiring R] →
                      [inst_5 : Semiring S] →
                        [inst_6 : AddCommMonoid M] →
                          [inst_7 : AddCommMonoid M₂] →
                            [inst_8 : Module R M] →
                              [inst_9 : Module R M₂] →
                                [inst_10 : Module S M] →
                                  [inst_11 : Module S M₂] →
                                    [LinearMap.CompatibleSMul M M₂ R S] → (fₗ : M →ₗ[S] M₂) → M →ₗ[R] M₂)
              (S := AdicCompletion I R)
              ((LinearMap.lsmul (AdicCompletion I R) (AdicCompletion I M) :
                  (a : AdicCompletion I R) → AdicCompletion I M →ₗ[AdicCompletion I R] AdicCompletion I M)
                (x + y)) ∘ₗ
            of I M :
          (a : M) → AdicCompletion I M)
        x_1 :
      AdicCompletion I M)
    ((HAdd.hAdd (α := M →ₗ[R] AdicCompletion I M)
            ((↑R :
                  {S : Type u_1} →
                    {M M₂ : Type u_2} →
                      [inst : Semiring R] →
                        [inst_5 : Semiring S] →
                          [inst_6 : AddCommMonoid M] →
                            [inst_7 : AddCommMonoid M₂] →
                              [inst_8 : Module R M] →
                                [inst_9 : Module R M₂] →
                                  [inst_10 : Module S M] →
                                    [inst_11 : Module S M₂] →
                                      [LinearMap.CompatibleSMul M M₂ R S] → (fₗ : M →ₗ[S] M₂) → M →ₗ[R] M₂)
                (S := AdicCompletion I R)
                ((LinearMap.lsmul (AdicCompletion I R) (AdicCompletion I M) :
                    (a : AdicCompletion I R) → AdicCompletion I M →ₗ[AdicCompletion I R] AdicCompletion I M)
                  x) ∘ₗ
              of I M)
            ((↑R :
                  {S : Type u_1} →
                    {M M₂ : Type u_2} →
                      [inst : Semiring R] →
                        [inst_5 : Semiring S] →
                          [inst_6 : AddCommMonoid M] →
                            [inst_7 : AddCommMonoid M₂] →
                              [inst_8 : Module R M] →
                                [inst_9 : Module R M₂] →
                                  [inst_10 : Module S M] →
                                    [inst_11 : Module S M₂] →
                                      [LinearMap.CompatibleSMul M M₂ R S] → (fₗ : M →ₗ[S] M₂) → M →ₗ[R] M₂)
                (S := AdicCompletion I R)
                ((LinearMap.lsmul (AdicCompletion I R) (AdicCompletion I M) :
                    (a : AdicCompletion I R) → AdicCompletion I M →ₗ[AdicCompletion I R] AdicCompletion I M)
                  y) ∘ₗ
              of I M) :
          (a : M) → AdicCompletion I M)
        x_1 :
      AdicCompletion I M)
Tactic: apply LinearMap.ext