-- Module: Mathlib.RingTheory.PicardGroup
Goal:
R : Type u_5
M : Type u_6
inst : CommRing R
inst_1 : AddCommGroup M
inst_2 : Module R M
inst_3 : Module.Invertible R M
f : (P : Ideal R) → [inst_4 : P.IsMaximal] → M →ₗ[R] LocalizedModule P.primeCompl M :=
  fun (P : Ideal R) [P.IsMaximal] ↦ LocalizedModule.mkLinearMap P.primeCompl M
ff : (P : Ideal R) →
  [inst_4 : P.IsMaximal] → M ⊗[R] M →ₗ[R] LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M :=
  fun (P : Ideal R) [P.IsMaximal] ↦ map (f P) (f P)
P : Ideal R
h : P.IsMaximal
refine_1 :
  Eq (α := M ⊗[R] M →ₗ[R] LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M)
    ((((IsLocalizedModule.map P.primeCompl (ff P) (ff P) :
                (M ⊗[R] M →ₗ[R] M ⊗[R] M) →ₗ[R]
                  LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M →ₗ[R]
                    LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M) :
              (a : M ⊗[R] M →ₗ[R] M ⊗[R] M) →
                LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M →ₗ[R]
                  LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M)
            (↑(TensorProduct.comm R M M) : M ⊗[R] M →ₗ[R] M ⊗[R] M) :
          LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M →ₗ[R]
            LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M) ∘ₗ
        (ff P : M ⊗[R] M →ₗ[R] LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M) :
      M ⊗[R] M →ₗ[R] LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M)
    ((↑(TensorProduct.comm R (LocalizedModule P.primeCompl M) (LocalizedModule P.primeCompl M)) :
          LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M →ₗ[R]
            LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M) ∘ₗ
        ff P :
      M ⊗[R] M →ₗ[R] LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M)
⊢ Eq (α :=
    LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M →ₗ[R]
      LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M)
    (((IsLocalizedModule.map P.primeCompl (ff P) (ff P) :
            (M ⊗[R] M →ₗ[R] M ⊗[R] M) →ₗ[R]
              LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M →ₗ[R]
                LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M) :
          (a : M ⊗[R] M →ₗ[R] M ⊗[R] M) →
            LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M →ₗ[R]
              LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M)
        (↑(TensorProduct.comm R M M) : M ⊗[R] M →ₗ[R] M ⊗[R] M) :
      LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M →ₗ[R]
        LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M)
    ((↑(TensorProduct.comm R (LocalizedModule P.primeCompl M) (LocalizedModule P.primeCompl M)) :
        LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M →ₗ[R]
          LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M) :
      LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M →ₗ[R]
        LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M)

Tactic:
apply IsLocalizedModule.linearMap_ext P.primeCompl (ff P) (ff P)

Premises used: IsLocalizedModule.linearMap_ext, Ideal.primeCompl