Module: Mathlib.Algebra.Category.CoalgCat.ComonEquivalence

Goal state before:
pp: R : Type u
inst✝⁹ : CommRing R
M N P : Type u
inst✝⁸ : AddCommGroup M
inst✝⁷ : AddCommGroup N
inst✝⁶ : AddCommGroup P
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : Module R P
inst✝² : Coalgebra R M
inst✝¹ : Coalgebra R N
inst✝ : Coalgebra R P
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:
;

Goal state after:
R : Type u
inst✝⁹ : CommRing R
M N P : Type u
inst✝⁸ : AddCommGroup M
inst✝⁷ : AddCommGroup N
inst✝⁶ : AddCommGroup P
inst✝⁵ : Module R M
inst✝⁴ : Module R N
inst✝³ : Module R P
inst✝² : Coalgebra R M
inst✝¹ : Coalgebra R N
inst✝ : Coalgebra R P
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✝