Theorem: TensorProduct.gradedComm_symm
File: Mathlib/LinearAlgebra/TensorProduct/Graded/External.lean

Proof steps:
state_before: R : Type u_1
ι : Type u_2
A : Type u_3
B : Type u_4
inst✝¹¹ : CommSemiring ι
inst✝¹⁰ : Module ι (Additive ℤˣ)
inst✝⁹ : DecidableEq ι
𝒜 : ι → Type u_5
ℬ : ι → Type u_6
inst✝⁸ : CommRing R
inst✝⁷ : (i : ι) → AddCommGroup (𝒜 i)
inst✝⁶ : (i : ι) → AddCommGroup (ℬ i)
inst✝⁵ : (i : ι) → Module R (𝒜 i)
inst✝⁴ : (i : ι) → Module R (ℬ i)
inst✝³ : DirectSum.GRing 𝒜
inst✝² : DirectSum.GRing ℬ
inst✝¹ : DirectSum.GAlgebra R 𝒜
inst✝ : DirectSum.GAlgebra R ℬ
⊢ (gradedComm R 𝒜 ℬ).symm = gradedComm R ℬ 𝒜
state_after: R : Type u_1
ι : Type u_2
A : Type u_3
B : Type u_4
inst✝¹¹ : CommSemiring ι
inst✝¹⁰ : Module ι (Additive ℤˣ)
inst✝⁹ : DecidableEq ι
𝒜 : ι → Type u_5
ℬ : ι → Type u_6
inst✝⁸ : CommRing R
inst✝⁷ : (i : ι) → AddCommGroup (𝒜 i)
inst✝⁶ : (i : ι) → AddCommGroup (ℬ i)
inst✝⁵ : (i : ι) → Module R (𝒜 i)
inst✝⁴ : (i : ι) → Module R (ℬ i)
inst✝³ : DirectSum.GRing 𝒜
inst✝² : DirectSum.GRing ℬ
inst✝¹ : DirectSum.GAlgebra R 𝒜
inst✝ : DirectSum.GAlgebra R ℬ
⊢ (TensorProduct.directSum R R ℬ 𝒜).trans
      ((TensorProduct.directSum R R 𝒜 ℬ).trans
          (LinearEquiv.ofLinear (gradedCommAux R 𝒜 ℬ) (gradedCommAux R ℬ 𝒜) ⋯ ⋯)).symm =
    ((TensorProduct.directSum R R ℬ 𝒜).trans
          (LinearEquiv.ofLinear (gradedCommAux R ℬ 𝒜) (gradedCommAux R 𝒜 ℬ) ⋯ ⋯)).trans
      (TensorProduct.directSum R R 𝒜 ℬ).symm
tactic: rw [gradedComm, gradedComm, LinearEquiv.trans_symm, LinearEquiv.symm_symm]
state_before: R : Type u_1
ι : Type u_2
A : Type u_3
B : Type u_4
inst✝¹¹ : CommSemiring ι
inst✝¹⁰ : Module ι (Additive ℤˣ)
inst✝⁹ : DecidableEq ι
𝒜 : ι → Type u_5
ℬ : ι → Type u_6
inst✝⁸ : CommRing R
inst✝⁷ : (i : ι) → AddCommGroup (𝒜 i)
inst✝⁶ : (i : ι) → AddCommGroup (ℬ i)
inst✝⁵ : (i : ι) → Module R (𝒜 i)
inst✝⁴ : (i : ι) → Module R (ℬ i)
inst✝³ : DirectSum.GRing 𝒜
inst✝² : DirectSum.GRing ℬ
inst✝¹ : DirectSum.GAlgebra R 𝒜
inst✝ : DirectSum.GAlgebra R ℬ
⊢ (TensorProduct.directSum R R ℬ 𝒜).trans
      ((TensorProduct.directSum R R 𝒜 ℬ).trans
          (LinearEquiv.ofLinear (gradedCommAux R 𝒜 ℬ) (gradedCommAux R ℬ 𝒜) ⋯ ⋯)).symm =
    ((TensorProduct.directSum R R ℬ 𝒜).trans
          (LinearEquiv.ofLinear (gradedCommAux R ℬ 𝒜) (gradedCommAux R 𝒜 ℬ) ⋯ ⋯)).trans
      (TensorProduct.directSum R R 𝒜 ℬ).symm
state_after: case h
R : Type u_1
ι : Type u_2
A : Type u_3
B : Type u_4
inst✝¹¹ : CommSemiring ι
inst✝¹⁰ : Module ι (Additive ℤˣ)
inst✝⁹ : DecidableEq ι
𝒜 : ι → Type u_5
ℬ : ι → Type u_6
inst✝⁸ : CommRing R
inst✝⁷ : (i : ι) → AddCommGroup (𝒜 i)
inst✝⁶ : (i : ι) → AddCommGroup (ℬ i)
inst✝⁵ : (i : ι) → Module R (𝒜 i)
inst✝⁴ : (i : ι) → Module R (ℬ i)
inst✝³ : DirectSum.GRing 𝒜
inst✝² : DirectSum.GRing ℬ
inst✝¹ : DirectSum.GAlgebra R 𝒜
inst✝ : DirectSum.GAlgebra R ℬ
x✝ : (⨁ (i : ι), ℬ i) ⊗[R] ⨁ (i : ι), 𝒜 i
⊢ ((TensorProduct.directSum R R ℬ 𝒜).trans
        ((TensorProduct.directSum R R 𝒜 ℬ).trans
            (LinearEquiv.ofLinear (gradedCommAux R 𝒜 ℬ) (gradedCommAux R ℬ 𝒜) ⋯ ⋯)).symm)
      x✝ =
    (((TensorProduct.directSum R R ℬ 𝒜).trans
            (LinearEquiv.ofLinear (gradedCommAux R ℬ 𝒜) (gradedCommAux R 𝒜 ℬ) ⋯ ⋯)).trans
        (TensorProduct.directSum R R 𝒜 ℬ).symm)
      x✝
tactic: ext
state_before: case h
R : Type u_1
ι : Type u_2
A : Type u_3
B : Type u_4
inst✝¹¹ : CommSemiring ι
inst✝¹⁰ : Module ι (Additive ℤˣ)
inst✝⁹ : DecidableEq ι
𝒜 : ι → Type u_5
ℬ : ι → Type u_6
inst✝⁸ : CommRing R
inst✝⁷ : (i : ι) → AddCommGroup (𝒜 i)
inst✝⁶ : (i : ι) → AddCommGroup (ℬ i)
inst✝⁵ : (i : ι) → Module R (𝒜 i)
inst✝⁴ : (i : ι) → Module R (ℬ i)
inst✝³ : DirectSum.GRing 𝒜
inst✝² : DirectSum.GRing ℬ
inst✝¹ : DirectSum.GAlgebra R 𝒜
inst✝ : DirectSum.GAlgebra R ℬ
x✝ : (⨁ (i : ι), ℬ i) ⊗[R] ⨁ (i : ι), 𝒜 i
⊢ ((TensorProduct.directSum R R ℬ 𝒜).trans
        ((TensorProduct.directSum R R 𝒜 ℬ).trans
            (LinearEquiv.ofLinear (gradedCommAux R 𝒜 ℬ) (gradedCommAux R ℬ 𝒜) ⋯ ⋯)).symm)
      x✝ =
    (((TensorProduct.directSum R R ℬ 𝒜).trans
            (LinearEquiv.ofLinear (gradedCommAux R ℬ 𝒜) (gradedCommAux R 𝒜 ℬ) ⋯ ⋯)).trans
        (TensorProduct.directSum R R 𝒜 ℬ).symm)
      x✝
state_after: no goals
tactic: rfl