Theorem: ModuleCat.MonModuleEquivalenceAlgebra.inverseObj_mul
File: Mathlib/CategoryTheory/Monoidal/Internal/Module.lean

Proof steps:
state_before: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
⊢ CategoryTheory.MonoidalCategory.whiskerRight (Algebra.linearMap R ↑A) (of R ↑A) ≫ mul' R ↑A =
    (CategoryTheory.MonoidalCategory.leftUnitor (of R ↑A)).hom
state_after: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
x : ↑(of R ↑A)
⊢ (((TensorProduct.mk R ↑(𝟙_ (ModuleCat R)) ↑(of R ↑A)).compr₂
          (CategoryTheory.MonoidalCategory.whiskerRight (Algebra.linearMap R ↑A) (of R ↑A) ≫ mul' R ↑A))
        1)
      x =
    (((TensorProduct.mk R ↑(𝟙_ (ModuleCat R)) ↑(of R ↑A)).compr₂
          (CategoryTheory.MonoidalCategory.leftUnitor (of R ↑A)).hom)
        1)
      x
tactic: refine TensorProduct.ext <| LinearMap.ext_ring <| LinearMap.ext fun x => ?_
state_before: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
x : ↑(of R ↑A)
⊢ (((TensorProduct.mk R ↑(𝟙_ (ModuleCat R)) ↑(of R ↑A)).compr₂
          (CategoryTheory.MonoidalCategory.whiskerRight (Algebra.linearMap R ↑A) (of R ↑A) ≫ mul' R ↑A))
        1)
      x =
    (((TensorProduct.mk R ↑(𝟙_ (ModuleCat R)) ↑(of R ↑A)).compr₂
          (CategoryTheory.MonoidalCategory.leftUnitor (of R ↑A)).hom)
        1)
      x
state_after: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
x : ↑(of R ↑A)
⊢ (mul' R ↑A)
      ((CategoryTheory.MonoidalCategory.whiskerRight (Algebra.linearMap R ↑A) (of R ↑A))
        (((TensorProduct.mk R ↑(𝟙_ (ModuleCat R)) ↑(of R ↑A)) 1) x)) =
    (CategoryTheory.MonoidalCategory.leftUnitor (of R ↑A)).hom
      (((TensorProduct.mk R ↑(𝟙_ (ModuleCat R)) ↑(of R ↑A)) 1) x)
tactic: erw [compr₂_apply, compr₂_apply, CategoryTheory.comp_apply]
state_before: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
x : ↑(of R ↑A)
⊢ (mul' R ↑A)
      ((CategoryTheory.MonoidalCategory.whiskerRight (Algebra.linearMap R ↑A) (of R ↑A))
        (((TensorProduct.mk R ↑(𝟙_ (ModuleCat R)) ↑(of R ↑A)) 1) x)) =
    (CategoryTheory.MonoidalCategory.leftUnitor (of R ↑A)).hom
      (((TensorProduct.mk R ↑(𝟙_ (ModuleCat R)) ↑(of R ↑A)) 1) x)
state_after: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
x : ↑(of R ↑A)
⊢ (1, x).1 • LinearMap.id (1, x).2 = 1 • x
tactic: erw [LinearMap.mul'_apply, MonoidalCategory.leftUnitor_hom_apply, ← Algebra.smul_def]
state_before: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
x : ↑(of R ↑A)
⊢ (1, x).1 • LinearMap.id (1, x).2 = 1 • x
state_after: no goals
tactic: erw [id_apply]
state_before: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
⊢ CategoryTheory.MonoidalCategory.whiskerLeft (of R ↑A) (Algebra.linearMap R ↑A) ≫ mul' R ↑A =
    (CategoryTheory.MonoidalCategory.rightUnitor (of R ↑A)).hom
state_after: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
x : ↑(of R ↑A)
⊢ (((TensorProduct.mk R ↑(of R ↑A) ↑(𝟙_ (ModuleCat R))).compr₂
          (CategoryTheory.MonoidalCategory.whiskerLeft (of R ↑A) (Algebra.linearMap R ↑A) ≫ mul' R ↑A))
        x)
      1 =
    (((TensorProduct.mk R ↑(of R ↑A) ↑(𝟙_ (ModuleCat R))).compr₂
          (CategoryTheory.MonoidalCategory.rightUnitor (of R ↑A)).hom)
        x)
      1
tactic: refine TensorProduct.ext <| LinearMap.ext fun x => LinearMap.ext_ring ?_
state_before: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
x : ↑(of R ↑A)
⊢ (((TensorProduct.mk R ↑(of R ↑A) ↑(𝟙_ (ModuleCat R))).compr₂
          (CategoryTheory.MonoidalCategory.whiskerLeft (of R ↑A) (Algebra.linearMap R ↑A) ≫ mul' R ↑A))
        x)
      1 =
    (((TensorProduct.mk R ↑(of R ↑A) ↑(𝟙_ (ModuleCat R))).compr₂
          (CategoryTheory.MonoidalCategory.rightUnitor (of R ↑A)).hom)
        x)
      1
state_after: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
x : ↑(of R ↑A)
⊢ (CategoryTheory.MonoidalCategory.whiskerLeft (of R ↑A) (Algebra.linearMap R ↑A) ≫ mul' R ↑A)
      (((TensorProduct.mk R ↑(of R ↑A) ↑(𝟙_ (ModuleCat R))) x) 1) =
    (CategoryTheory.MonoidalCategory.rightUnitor (of R ↑A)).hom
      (((TensorProduct.mk R ↑(of R ↑A) ↑(𝟙_ (ModuleCat R))) x) 1)
tactic: erw [compr₂_apply, compr₂_apply]
state_before: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
x : ↑(of R ↑A)
⊢ (CategoryTheory.MonoidalCategory.whiskerLeft (of R ↑A) (Algebra.linearMap R ↑A) ≫ mul' R ↑A)
      (((TensorProduct.mk R ↑(of R ↑A) ↑(𝟙_ (ModuleCat R))) x) 1) =
    (CategoryTheory.MonoidalCategory.rightUnitor (of R ↑A)).hom
      (((TensorProduct.mk R ↑(of R ↑A) ↑(𝟙_ (ModuleCat R))) x) 1)
state_after: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
x : ↑(of R ↑A)
⊢ (mul' R ↑A)
      ((CategoryTheory.MonoidalCategory.whiskerLeft (of R ↑A) (Algebra.linearMap R ↑A))
        (((TensorProduct.mk R ↑(of R ↑A) ↑(𝟙_ (ModuleCat R))) x) 1)) =
    (CategoryTheory.MonoidalCategory.rightUnitor (of R ↑A)).hom
      (((TensorProduct.mk R ↑(of R ↑A) ↑(𝟙_ (ModuleCat R))) x) 1)
tactic: erw [CategoryTheory.comp_apply]
state_before: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
x : ↑(of R ↑A)
⊢ (mul' R ↑A)
      ((CategoryTheory.MonoidalCategory.whiskerLeft (of R ↑A) (Algebra.linearMap R ↑A))
        (((TensorProduct.mk R ↑(of R ↑A) ↑(𝟙_ (ModuleCat R))) x) 1)) =
    (CategoryTheory.MonoidalCategory.rightUnitor (of R ↑A)).hom
      (((TensorProduct.mk R ↑(of R ↑A) ↑(𝟙_ (ModuleCat R))) x) 1)
state_after: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
x : ↑(of R ↑A)
⊢ (x, 1).2 • LinearMap.id (x, 1).1 = 1 • x
tactic: erw [LinearMap.mul'_apply, ModuleCat.MonoidalCategory.rightUnitor_hom_apply, ← Algebra.commutes,
      ← Algebra.smul_def]
state_before: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
x : ↑(of R ↑A)
⊢ (x, 1).2 • LinearMap.id (x, 1).1 = 1 • x
state_after: no goals
tactic: erw [id_apply]
state_before: R : Type u
inst✝ : CommRing R
A : AlgebraCat R
⊢ CategoryTheory.MonoidalCategory.whiskerRight (mul' R ↑A) (of R ↑A) ≫ mul' R ↑A =
    (CategoryTheory.MonoidalCategory.associator (of R ↑A) (of R ↑A) (of R ↑A)).hom ≫
      CategoryTheory.MonoidalCategory.whiskerLeft (of R ↑A) (mul' R ↑A) ≫ mul' R ↑A
state_after: no goals
tactic: set_option tactic.skipAssignedInstances false in
    -- Porting note: `ext` did not pick up `TensorProduct.ext`
    refine TensorProduct.ext <| TensorProduct.ext <| LinearMap.ext fun x => LinearMap.ext fun y =>
      LinearMap.ext fun z => ?_
    dsimp only [AlgebraCat.id_apply, TensorProduct.mk_apply, LinearMap.compr₂_apply,
      Function.comp_apply, ModuleCat.MonoidalCategory.hom_apply, AlgebraCat.coe_comp,
      MonoidalCategory.associator_hom_apply]
    rw [compr₂_apply, compr₂_apply]
    -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
    erw [CategoryTheory.comp_apply,
      CategoryTheory.comp_apply, CategoryTheory.comp_apply]
    erw [LinearMap.mul'_apply, LinearMap.mul'_apply]
    erw [id_apply]
    erw [TensorProduct.mk_apply, TensorProduct.mk_apply, mul'_apply, LinearMap.id_apply, mul'_apply]
    simp only [LinearMap.mul'_apply, mul_assoc]