-- 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
Rp : Type u_5 := Localization (M := R) P.primeCompl
e_1 : LocalizedModule P.primeCompl M ≃ₗ[Rp] Rp
e : LocalizedModule P.primeCompl M ≃ₗ[R] Rp
x y : LocalizedModule P.primeCompl M
this :
  Eq (α := Rp ⊗[Rp] Rp)
    ((e : (a : LocalizedModule P.primeCompl M) → Rp) y ⊗ₜ[Rp] (e : (a : LocalizedModule P.primeCompl M) → Rp) x :
      Rp ⊗[Rp] Rp)
    ((e : (a : LocalizedModule P.primeCompl M) → Rp) x ⊗ₜ[Rp] (e : (a : LocalizedModule P.primeCompl M) → Rp) y :
      Rp ⊗[Rp] Rp)
⊢ Eq.{u_5 + 1} (α := Rp ⊗[Rp] Rp)
    ((TensorProduct.congr e e ≪≫ₗ equivOfCompatibleSMul Rp R R Rp Rp :
          (a : LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M) → Rp ⊗[Rp] Rp)
        (((((AlgebraTensorModule.curry
                      (↑(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) :
                  (a : LocalizedModule P.primeCompl M) →
                    LocalizedModule P.primeCompl M →ₗ[R]
                      LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M)
                x :
              LocalizedModule P.primeCompl M →ₗ[R] LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M) :
            (a : LocalizedModule P.primeCompl M) → LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M)
          y) :
      Rp ⊗[Rp] Rp)
    ((TensorProduct.congr e e ≪≫ₗ equivOfCompatibleSMul Rp R R Rp Rp :
          (a : LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M) → Rp ⊗[Rp] Rp)
        (((((AlgebraTensorModule.curry
                      (((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)
                        (↑(LinearEquiv.refl R (M ⊗[R] 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) :
                  (a : LocalizedModule P.primeCompl M) →
                    LocalizedModule P.primeCompl M →ₗ[R]
                      LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M)
                x :
              LocalizedModule P.primeCompl M →ₗ[R] LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M) :
            (a : LocalizedModule P.primeCompl M) → LocalizedModule P.primeCompl M ⊗[R] LocalizedModule P.primeCompl M)
          y) :
      Rp ⊗[Rp] Rp)

Tactic:
simpa [equivOfCompatibleSMul]

Premises used: TensorProduct.equivOfCompatibleSMul