-- Module: Mathlib.LinearAlgebra.Alternating.DomCoprod
Goal:
ιa : Type u_1
ιb : Type u_2
inst : Fintype ιa
inst_1 : Fintype ιb
R' : Type u_3
Mᵢ : Type u_4
N₁ : Type u_5
N₂ : Type u_6
inst_2 : CommSemiring R'
inst_3 : AddCommGroup N₁
inst_4 : Module R' N₁
inst_5 : AddCommGroup N₂
inst_6 : Module R' N₂
inst_7 : AddCommMonoid Mᵢ
inst_8 : Module R' Mᵢ
inst_9 : DecidableEq ιa
inst_10 : DecidableEq ιb
m₁ m₂ : Mᵢ [⋀^ιa]→ₗ[R'] N₁
n : Mᵢ [⋀^ιb]→ₗ[R'] N₂
x : ιa ⊕ ιb → Mᵢ
a : Perm (ιa ⊕ ιb)
refine_1 :
  HSMul.hSMul (α := ℤˣ) (β := N₁ ⊗[R'] N₂) (((Perm.sign : Perm (ιa ⊕ ιb) →* ℤˣ) : (a : Perm (ιa ⊕ ιb)) → ℤˣ) a : ℤˣ)
      ((MultilinearMap.domDomCongr a
              (HAdd.hAdd (α := MultilinearMap R' (fun (x : ιa ⊕ ιb) ↦ Mᵢ) (N₁ ⊗[R'] N₂)) (β :=
                MultilinearMap R' (fun (x : ιa ⊕ ιb) ↦ Mᵢ) (N₁ ⊗[R'] N₂))
                ((MultilinearMap.domCoprod' :
                      (a : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁ ⊗[R'] MultilinearMap R' (fun (x : ιb) ↦ Mᵢ) N₂) →
                        MultilinearMap R' (fun (x : ιa ⊕ ιb) ↦ Mᵢ) (N₁ ⊗[R'] N₂))
                    ((↑m₁ : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁) ⊗ₜ[R']
                      (↑n : MultilinearMap R' (fun (x : ιb) ↦ Mᵢ) N₂)) :
                  MultilinearMap R' (fun (x : ιa ⊕ ιb) ↦ Mᵢ) (N₁ ⊗[R'] N₂))
                ((MultilinearMap.domCoprod' :
                      (a : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁ ⊗[R'] MultilinearMap R' (fun (x : ιb) ↦ Mᵢ) N₂) →
                        MultilinearMap R' (fun (x : ιa ⊕ ιb) ↦ Mᵢ) (N₁ ⊗[R'] N₂))
                    ((↑m₂ : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁) ⊗ₜ[R']
                      (↑n : MultilinearMap R' (fun (x : ιb) ↦ Mᵢ) N₂)) :
                  MultilinearMap R' (fun (x : ιa ⊕ ιb) ↦ Mᵢ) (N₁ ⊗[R'] N₂))) :
            (a : (i : ιa ⊕ ιb) → Mᵢ) → N₁ ⊗[R'] N₂)
          x :
        N₁ ⊗[R'] N₂) =
    HSMul.hSMul (α := ℤˣ) (β := N₁ ⊗[R'] N₂) (((Perm.sign : Perm (ιa ⊕ ιb) →* ℤˣ) : (a : Perm (ιa ⊕ ιb)) → ℤˣ) a : ℤˣ)
        ((MultilinearMap.domDomCongr a
                ((MultilinearMap.domCoprod' :
                    (a : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁ ⊗[R'] MultilinearMap R' (fun (x : ιb) ↦ Mᵢ) N₂) →
                      MultilinearMap R' (fun (x : ιa ⊕ ιb) ↦ Mᵢ) (N₁ ⊗[R'] N₂))
                  ((↑m₁ : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁) ⊗ₜ[R']
                    (↑n : MultilinearMap R' (fun (x : ιb) ↦ Mᵢ) N₂))) :
              (a : (i : ιa ⊕ ιb) → Mᵢ) → N₁ ⊗[R'] N₂)
            x :
          N₁ ⊗[R'] N₂) +
      HSMul.hSMul (α := ℤˣ) (β := N₁ ⊗[R'] N₂) (((Perm.sign : Perm (ιa ⊕ ιb) →* ℤˣ) : (a : Perm (ιa ⊕ ιb)) → ℤˣ) a : ℤˣ)
        ((MultilinearMap.domDomCongr a
                ((MultilinearMap.domCoprod' :
                    (a : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁ ⊗[R'] MultilinearMap R' (fun (x : ιb) ↦ Mᵢ) N₂) →
                      MultilinearMap R' (fun (x : ιa ⊕ ιb) ↦ Mᵢ) (N₁ ⊗[R'] N₂))
                  ((↑m₂ : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁) ⊗ₜ[R']
                    (↑n : MultilinearMap R' (fun (x : ιb) ↦ Mᵢ) N₂))) :
              (a : (i : ιa ⊕ ιb) → Mᵢ) → N₁ ⊗[R'] N₂)
            x :
          N₁ ⊗[R'] N₂)
⊢ HSMul.hSMul (α := ℤˣ) (β := N₁ ⊗[R'] N₂) (((Perm.sign : Perm (ιa ⊕ ιb) →* ℤˣ) : (a : Perm (ιa ⊕ ιb)) → ℤˣ) a : ℤˣ)
      ((MultilinearMap.domDomCongr a
              ((MultilinearMap.domCoprod' :
                  (a : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁ ⊗[R'] MultilinearMap R' (fun (x : ιb) ↦ Mᵢ) N₂) →
                    MultilinearMap R' (fun (x : ιa ⊕ ιb) ↦ Mᵢ) (N₁ ⊗[R'] N₂))
                (((↑m₁ : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁) +
                    (↑m₂ : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁)) ⊗ₜ[R']
                  (↑n : MultilinearMap R' (fun (x : ιb) ↦ Mᵢ) N₂))) :
            (a : (i : ιa ⊕ ιb) → Mᵢ) → N₁ ⊗[R'] N₂)
          x :
        N₁ ⊗[R'] N₂) =
    HSMul.hSMul (α := ℤˣ) (β := N₁ ⊗[R'] N₂) (((Perm.sign : Perm (ιa ⊕ ιb) →* ℤˣ) : (a : Perm (ιa ⊕ ιb)) → ℤˣ) a : ℤˣ)
        ((MultilinearMap.domDomCongr a
                ((MultilinearMap.domCoprod' :
                    (a : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁ ⊗[R'] MultilinearMap R' (fun (x : ιb) ↦ Mᵢ) N₂) →
                      MultilinearMap R' (fun (x : ιa ⊕ ιb) ↦ Mᵢ) (N₁ ⊗[R'] N₂))
                  ((↑m₁ : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁) ⊗ₜ[R']
                    (↑n : MultilinearMap R' (fun (x : ιb) ↦ Mᵢ) N₂))) :
              (a : (i : ιa ⊕ ιb) → Mᵢ) → N₁ ⊗[R'] N₂)
            x :
          N₁ ⊗[R'] N₂) +
      HSMul.hSMul (α := ℤˣ) (β := N₁ ⊗[R'] N₂) (((Perm.sign : Perm (ιa ⊕ ιb) →* ℤˣ) : (a : Perm (ιa ⊕ ιb)) → ℤˣ) a : ℤˣ)
        ((MultilinearMap.domDomCongr a
                ((MultilinearMap.domCoprod' :
                    (a : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁ ⊗[R'] MultilinearMap R' (fun (x : ιb) ↦ Mᵢ) N₂) →
                      MultilinearMap R' (fun (x : ιa ⊕ ιb) ↦ Mᵢ) (N₁ ⊗[R'] N₂))
                  ((↑m₂ : MultilinearMap R' (fun (x : ιa) ↦ Mᵢ) N₁) ⊗ₜ[R']
                    (↑n : MultilinearMap R' (fun (x : ιb) ↦ Mᵢ) N₂))) :
              (a : (i : ιa ⊕ ιb) → Mᵢ) → N₁ ⊗[R'] N₂)
            x :
          N₁ ⊗[R'] N₂)

Tactic:
simp only [TensorProduct.add_tmul, ← TensorProduct.smul_tmul', TensorProduct.tmul_add,
        TensorProduct.tmul_smul, map_add, map_smul]

Premises used: TensorProduct.tmul_smul, map_add, TensorProduct.smul_tmul', TensorProduct.tmul_add, TensorProduct.add_tmul, map_smul