Theorem: Algebra.TensorProduct.mul_assoc'
File: Mathlib/RingTheory/TensorProduct.lean

tactic: intros x y z
state_before: R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
⊢ ∀ (x y z : A ⊗[R] B), ↑(↑mul (↑(↑mul x) y)) z = ↑(↑mul x) (↑(↑mul y) z)

tactic: refine TensorProduct.induction_on x ?_ ?_ ?_
state_before: R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z : A ⊗[R] B
⊢ ↑(↑mul (↑(↑mul x) y)) z = ↑(↑mul x) (↑(↑mul y) z)

tactic: refine TensorProduct.induction_on y ?_ ?_ ?_
state_before: case refine_2
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z : A ⊗[R] B
⊢ ∀ (x : A) (y_1 : B), ↑(↑mul (↑(↑mul (x ⊗ₜ[R] y_1)) y)) z = ↑(↑mul (x ⊗ₜ[R] y_1)) (↑(↑mul y) z)

case refine_3
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z : A ⊗[R] B
⊢ ∀ (x y_1 : A ⊗[R] B),
    ↑(↑mul (↑(↑mul x) y)) z = ↑(↑mul x) (↑(↑mul y) z) →
      ↑(↑mul (↑(↑mul y_1) y)) z = ↑(↑mul y_1) (↑(↑mul y) z) →
        ↑(↑mul (↑(↑mul (x + y_1)) y)) z = ↑(↑mul (x + y_1)) (↑(↑mul y) z)

tactic: refine TensorProduct.induction_on z ?_ ?_ ?_
state_before: case refine_2.refine_2
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z : A ⊗[R] B
⊢ ∀ (x : A) (y : B) (x_1 : A) (y_1 : B),
    ↑(↑mul (↑(↑mul (x_1 ⊗ₜ[R] y_1)) (x ⊗ₜ[R] y))) z = ↑(↑mul (x_1 ⊗ₜ[R] y_1)) (↑(↑mul (x ⊗ₜ[R] y)) z)

case refine_2.refine_3
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z : A ⊗[R] B
⊢ ∀ (x y : A ⊗[R] B),
    (∀ (x_1 : A) (y : B), ↑(↑mul (↑(↑mul (x_1 ⊗ₜ[R] y)) x)) z = ↑(↑mul (x_1 ⊗ₜ[R] y)) (↑(↑mul x) z)) →
      (∀ (x : A) (y_1 : B), ↑(↑mul (↑(↑mul (x ⊗ₜ[R] y_1)) y)) z = ↑(↑mul (x ⊗ₜ[R] y_1)) (↑(↑mul y) z)) →
        ∀ (x_1 : A) (y_1 : B), ↑(↑mul (↑(↑mul (x_1 ⊗ₜ[R] y_1)) (x + y))) z = ↑(↑mul (x_1 ⊗ₜ[R] y_1)) (↑(↑mul (x + y)) z)

case refine_3
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z : A ⊗[R] B
⊢ ∀ (x y_1 : A ⊗[R] B),
    ↑(↑mul (↑(↑mul x) y)) z = ↑(↑mul x) (↑(↑mul y) z) →
      ↑(↑mul (↑(↑mul y_1) y)) z = ↑(↑mul y_1) (↑(↑mul y) z) →
        ↑(↑mul (↑(↑mul (x + y_1)) y)) z = ↑(↑mul (x + y_1)) (↑(↑mul y) z)

tactic: simp only [LinearMap.map_zero, LinearMap.zero_apply]
state_before: case refine_1
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z : A ⊗[R] B
⊢ ↑(↑mul (↑(↑mul 0) y)) z = ↑(↑mul 0) (↑(↑mul y) z)

tactic: simp only [LinearMap.map_zero, forall_const, LinearMap.zero_apply]
state_before: case refine_2.refine_1
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z : A ⊗[R] B
⊢ ∀ (x : A) (y : B), ↑(↑mul (↑(↑mul (x ⊗ₜ[R] y)) 0)) z = ↑(↑mul (x ⊗ₜ[R] y)) (↑(↑mul 0) z)

tactic: simp only [LinearMap.map_zero, forall_const]
state_before: case refine_2.refine_2.refine_1
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z : A ⊗[R] B
⊢ ∀ (x : A) (y : B) (x_1 : A) (y_1 : B),
    ↑(↑mul (↑(↑mul (x_1 ⊗ₜ[R] y_1)) (x ⊗ₜ[R] y))) 0 = ↑(↑mul (x_1 ⊗ₜ[R] y_1)) (↑(↑mul (x ⊗ₜ[R] y)) 0)

tactic: intros
state_before: case refine_2.refine_2.refine_2
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z : A ⊗[R] B
⊢ ∀ (x : A) (y : B) (x_1 : A) (y_1 : B) (x_2 : A) (y_2 : B),
    ↑(↑mul (↑(↑mul (x_2 ⊗ₜ[R] y_2)) (x_1 ⊗ₜ[R] y_1))) (x ⊗ₜ[R] y) =
      ↑(↑mul (x_2 ⊗ₜ[R] y_2)) (↑(↑mul (x_1 ⊗ₜ[R] y_1)) (x ⊗ₜ[R] y))

tactic: simp only [h]
state_before: case refine_2.refine_2.refine_2
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z : A ⊗[R] B
x✝² : A
y✝² : B
x✝¹ : A
y✝¹ : B
x✝ : A
y✝ : B
⊢ ↑(↑mul (↑(↑mul (x✝ ⊗ₜ[R] y✝)) (x✝¹ ⊗ₜ[R] y✝¹))) (x✝² ⊗ₜ[R] y✝²) =
    ↑(↑mul (x✝ ⊗ₜ[R] y✝)) (↑(↑mul (x✝¹ ⊗ₜ[R] y✝¹)) (x✝² ⊗ₜ[R] y✝²))

tactic: intros
state_before: case refine_2.refine_2.refine_3
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z : A ⊗[R] B
⊢ ∀ (x y : A ⊗[R] B),
    (∀ (x_1 : A) (y : B) (x_2 : A) (y_1 : B),
        ↑(↑mul (↑(↑mul (x_2 ⊗ₜ[R] y_1)) (x_1 ⊗ₜ[R] y))) x = ↑(↑mul (x_2 ⊗ₜ[R] y_1)) (↑(↑mul (x_1 ⊗ₜ[R] y)) x)) →
      (∀ (x : A) (y_1 : B) (x_1 : A) (y_2 : B),
          ↑(↑mul (↑(↑mul (x_1 ⊗ₜ[R] y_2)) (x ⊗ₜ[R] y_1))) y = ↑(↑mul (x_1 ⊗ₜ[R] y_2)) (↑(↑mul (x ⊗ₜ[R] y_1)) y)) →
        ∀ (x_1 : A) (y_1 : B) (x_2 : A) (y_2 : B),
          ↑(↑mul (↑(↑mul (x_2 ⊗ₜ[R] y_2)) (x_1 ⊗ₜ[R] y_1))) (x + y) =
            ↑(↑mul (x_2 ⊗ₜ[R] y_2)) (↑(↑mul (x_1 ⊗ₜ[R] y_1)) (x + y))

tactic: simp only [LinearMap.map_add, *]
state_before: case refine_2.refine_2.refine_3
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z x✝² y✝² : A ⊗[R] B
a✝¹ :
  ∀ (x : A) (y : B) (x_1 : A) (y_1 : B),
    ↑(↑mul (↑(↑mul (x_1 ⊗ₜ[R] y_1)) (x ⊗ₜ[R] y))) x✝² = ↑(↑mul (x_1 ⊗ₜ[R] y_1)) (↑(↑mul (x ⊗ₜ[R] y)) x✝²)
a✝ :
  ∀ (x : A) (y : B) (x_1 : A) (y_1 : B),
    ↑(↑mul (↑(↑mul (x_1 ⊗ₜ[R] y_1)) (x ⊗ₜ[R] y))) y✝² = ↑(↑mul (x_1 ⊗ₜ[R] y_1)) (↑(↑mul (x ⊗ₜ[R] y)) y✝²)
x✝¹ : A
y✝¹ : B
x✝ : A
y✝ : B
⊢ ↑(↑mul (↑(↑mul (x✝ ⊗ₜ[R] y✝)) (x✝¹ ⊗ₜ[R] y✝¹))) (x✝² + y✝²) =
    ↑(↑mul (x✝ ⊗ₜ[R] y✝)) (↑(↑mul (x✝¹ ⊗ₜ[R] y✝¹)) (x✝² + y✝²))

tactic: intros
state_before: case refine_2.refine_3
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z : A ⊗[R] B
⊢ ∀ (x y : A ⊗[R] B),
    (∀ (x_1 : A) (y : B), ↑(↑mul (↑(↑mul (x_1 ⊗ₜ[R] y)) x)) z = ↑(↑mul (x_1 ⊗ₜ[R] y)) (↑(↑mul x) z)) →
      (∀ (x : A) (y_1 : B), ↑(↑mul (↑(↑mul (x ⊗ₜ[R] y_1)) y)) z = ↑(↑mul (x ⊗ₜ[R] y_1)) (↑(↑mul y) z)) →
        ∀ (x_1 : A) (y_1 : B), ↑(↑mul (↑(↑mul (x_1 ⊗ₜ[R] y_1)) (x + y))) z = ↑(↑mul (x_1 ⊗ₜ[R] y_1)) (↑(↑mul (x + y)) z)

tactic: simp only [LinearMap.map_add, *, LinearMap.add_apply]
state_before: case refine_2.refine_3
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z x✝¹ y✝¹ : A ⊗[R] B
a✝¹ : ∀ (x : A) (y : B), ↑(↑mul (↑(↑mul (x ⊗ₜ[R] y)) x✝¹)) z = ↑(↑mul (x ⊗ₜ[R] y)) (↑(↑mul x✝¹) z)
a✝ : ∀ (x : A) (y : B), ↑(↑mul (↑(↑mul (x ⊗ₜ[R] y)) y✝¹)) z = ↑(↑mul (x ⊗ₜ[R] y)) (↑(↑mul y✝¹) z)
x✝ : A
y✝ : B
⊢ ↑(↑mul (↑(↑mul (x✝ ⊗ₜ[R] y✝)) (x✝¹ + y✝¹))) z = ↑(↑mul (x✝ ⊗ₜ[R] y✝)) (↑(↑mul (x✝¹ + y✝¹)) z)

tactic: intros
state_before: case refine_3
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z : A ⊗[R] B
⊢ ∀ (x y_1 : A ⊗[R] B),
    ↑(↑mul (↑(↑mul x) y)) z = ↑(↑mul x) (↑(↑mul y) z) →
      ↑(↑mul (↑(↑mul y_1) y)) z = ↑(↑mul y_1) (↑(↑mul y) z) →
        ↑(↑mul (↑(↑mul (x + y_1)) y)) z = ↑(↑mul (x + y_1)) (↑(↑mul y) z)

tactic: simp only [LinearMap.map_add, *, LinearMap.add_apply]
state_before: case refine_3
R : Type u
inst✝⁴ : CommSemiring R
A : Type v₁
inst✝³ : Semiring A
inst✝² : Algebra R A
B : Type v₂
inst✝¹ : Semiring B
inst✝ : Algebra R B
mul : A ⊗[R] B →ₗ[R] A ⊗[R] B →ₗ[R] A ⊗[R] B
h :
  ∀ (a₁ a₂ a₃ : A) (b₁ b₂ b₃ : B),
    ↑(↑mul (↑(↑mul (a₁ ⊗ₜ[R] b₁)) (a₂ ⊗ₜ[R] b₂))) (a₃ ⊗ₜ[R] b₃) =
      ↑(↑mul (a₁ ⊗ₜ[R] b₁)) (↑(↑mul (a₂ ⊗ₜ[R] b₂)) (a₃ ⊗ₜ[R] b₃))
x y z x✝ y✝ : A ⊗[R] B
a✝¹ : ↑(↑mul (↑(↑mul x✝) y)) z = ↑(↑mul x✝) (↑(↑mul y) z)
a✝ : ↑(↑mul (↑(↑mul y✝) y)) z = ↑(↑mul y✝) (↑(↑mul y) z)
⊢ ↑(↑mul (↑(↑mul (x✝ + y✝)) y)) z = ↑(↑mul (x✝ + y✝)) (↑(↑mul y) z)