Theorem: CoalgebraCat.MonoidalCategoryAux.associator_hom_toLinearMap
File: Mathlib/Algebra/Category/CoalgebraCat/ComonEquivalence.lean

Proof steps:
state_before: R : Type u
inst✝¹² : CommRing R
M N P Q : Type u
inst✝¹¹ : AddCommGroup M
inst✝¹⁰ : AddCommGroup N
inst✝⁹ : AddCommGroup P
inst✝⁸ : AddCommGroup Q
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Coalgebra R M
inst✝² : Coalgebra R N
inst✝¹ : Coalgebra R P
inst✝ : Coalgebra R Q
⊢ (TensorProduct.mk R
          ↑(Opposite.unop
              (Opposite.unop
                  ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                    ((comonEquivalence R).symm.inverse.obj (of R M)))).X)
          ↑(Opposite.unop
              (Opposite.unop
                  ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                    ((comonEquivalence R).symm.inverse.obj (of R N)))).X)).compr₂
      ((TensorProduct.mk R
            ↑(Opposite.unop
                (Opposite.unop
                    ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                      ((comonEquivalence R).symm.inverse.obj (of R M ⊗ of R N)))).X)
            ↑(Opposite.unop
                (Opposite.unop
                    ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                      ((comonEquivalence R).symm.inverse.obj (of R P)))).X)).compr₂
        (α_ (of R M) (of R N) (of R P)).hom.toCoalgHom.toLinearMap) =
    (TensorProduct.mk R
          ↑(Opposite.unop
              (Opposite.unop
                  ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                    ((comonEquivalence R).symm.inverse.obj (of R M)))).X)
          ↑(Opposite.unop
              (Opposite.unop
                  ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                    ((comonEquivalence R).symm.inverse.obj (of R N)))).X)).compr₂
      ((TensorProduct.mk R
            ↑(Opposite.unop
                (Opposite.unop
                    ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                      ((comonEquivalence R).symm.inverse.obj (of R M ⊗ of R N)))).X)
            ↑(Opposite.unop
                (Opposite.unop
                    ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                      ((comonEquivalence R).symm.inverse.obj (of R P)))).X)).compr₂
        ↑(TensorProduct.assoc R M N P))
state_after: case h.h.h
R : Type u
inst✝¹² : CommRing R
M N P Q : Type u
inst✝¹¹ : AddCommGroup M
inst✝¹⁰ : AddCommGroup N
inst✝⁹ : AddCommGroup P
inst✝⁸ : AddCommGroup Q
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Coalgebra R M
inst✝² : Coalgebra R N
inst✝¹ : Coalgebra R P
inst✝ : Coalgebra R Q
x✝² :
  ↑(Opposite.unop
      (Opposite.unop
          ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
            ((comonEquivalence R).symm.inverse.obj (of R M)))).X)
x✝¹ :
  ↑(Opposite.unop
      (Opposite.unop
          ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
            ((comonEquivalence R).symm.inverse.obj (of R N)))).X)
x✝ :
  ↑(Opposite.unop
      (Opposite.unop
          ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
            ((comonEquivalence R).symm.inverse.obj (of R P)))).X)
⊢ ((((TensorProduct.mk R
                ↑(Opposite.unop
                    (Opposite.unop
                        ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                          ((comonEquivalence R).symm.inverse.obj (of R M)))).X)
                ↑(Opposite.unop
                    (Opposite.unop
                        ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                          ((comonEquivalence R).symm.inverse.obj (of R N)))).X)).compr₂
            ((TensorProduct.mk R
                  ↑(Opposite.unop
                      (Opposite.unop
                          ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                            ((comonEquivalence R).symm.inverse.obj (of R M ⊗ of R N)))).X)
                  ↑(Opposite.unop
                      (Opposite.unop
                          ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                            ((comonEquivalence R).symm.inverse.obj (of R P)))).X)).compr₂
              (α_ (of R M) (of R N) (of R P)).hom.toCoalgHom.toLinearMap))
          x✝²)
        x✝¹)
      x✝ =
    ((((TensorProduct.mk R
                ↑(Opposite.unop
                    (Opposite.unop
                        ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                          ((comonEquivalence R).symm.inverse.obj (of R M)))).X)
                ↑(Opposite.unop
                    (Opposite.unop
                        ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                          ((comonEquivalence R).symm.inverse.obj (of R N)))).X)).compr₂
            ((TensorProduct.mk R
                  ↑(Opposite.unop
                      (Opposite.unop
                          ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                            ((comonEquivalence R).symm.inverse.obj (of R M ⊗ of R N)))).X)
                  ↑(Opposite.unop
                      (Opposite.unop
                          ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                            ((comonEquivalence R).symm.inverse.obj (of R P)))).X)).compr₂
              ↑(TensorProduct.assoc R M N P)))
          x✝²)
        x✝¹)
      x✝
tactic: ext
state_before: case h.h.h
R : Type u
inst✝¹² : CommRing R
M N P Q : Type u
inst✝¹¹ : AddCommGroup M
inst✝¹⁰ : AddCommGroup N
inst✝⁹ : AddCommGroup P
inst✝⁸ : AddCommGroup Q
inst✝⁷ : Module R M
inst✝⁶ : Module R N
inst✝⁵ : Module R P
inst✝⁴ : Module R Q
inst✝³ : Coalgebra R M
inst✝² : Coalgebra R N
inst✝¹ : Coalgebra R P
inst✝ : Coalgebra R Q
x✝² :
  ↑(Opposite.unop
      (Opposite.unop
          ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
            ((comonEquivalence R).symm.inverse.obj (of R M)))).X)
x✝¹ :
  ↑(Opposite.unop
      (Opposite.unop
          ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
            ((comonEquivalence R).symm.inverse.obj (of R N)))).X)
x✝ :
  ↑(Opposite.unop
      (Opposite.unop
          ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
            ((comonEquivalence R).symm.inverse.obj (of R P)))).X)
⊢ ((((TensorProduct.mk R
                ↑(Opposite.unop
                    (Opposite.unop
                        ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                          ((comonEquivalence R).symm.inverse.obj (of R M)))).X)
                ↑(Opposite.unop
                    (Opposite.unop
                        ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                          ((comonEquivalence R).symm.inverse.obj (of R N)))).X)).compr₂
            ((TensorProduct.mk R
                  ↑(Opposite.unop
                      (Opposite.unop
                          ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                            ((comonEquivalence R).symm.inverse.obj (of R M ⊗ of R N)))).X)
                  ↑(Opposite.unop
                      (Opposite.unop
                          ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                            ((comonEquivalence R).symm.inverse.obj (of R P)))).X)).compr₂
              (α_ (of R M) (of R N) (of R P)).hom.toCoalgHom.toLinearMap))
          x✝²)
        x✝¹)
      x✝ =
    ((((TensorProduct.mk R
                ↑(Opposite.unop
                    (Opposite.unop
                        ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                          ((comonEquivalence R).symm.inverse.obj (of R M)))).X)
                ↑(Opposite.unop
                    (Opposite.unop
                        ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                          ((comonEquivalence R).symm.inverse.obj (of R N)))).X)).compr₂
            ((TensorProduct.mk R
                  ↑(Opposite.unop
                      (Opposite.unop
                          ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                            ((comonEquivalence R).symm.inverse.obj (of R M ⊗ of R N)))).X)
                  ↑(Opposite.unop
                      (Opposite.unop
                          ((Comon_.Comon_EquivMon_OpOp (ModuleCat R)).symm.inverse.obj
                            ((comonEquivalence R).symm.inverse.obj (of R P)))).X)).compr₂
              ↑(TensorProduct.assoc R M N P)))
          x✝²)
        x✝¹)
      x✝
state_after: no goals
tactic: rfl