Theorem: CategoryTheory.braiding_rightUnitor_aux₂
File: Mathlib/CategoryTheory/Monoidal/Braided.lean

tactic: coherence
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X : C
⊢ (𝟙 (𝟙_ C) ⊗ (β_ (𝟙_ C) X).hom) ≫ (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom) =
    (𝟙 (𝟙_ C) ⊗ (β_ (𝟙_ C) X).hom) ≫ (α_ (𝟙_ C) X (𝟙_ C)).inv ≫ (α_ (𝟙_ C) X (𝟙_ C)).hom ≫ (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom)

tactic: (slice_rhs 3 4 => rw [← comp_tensor_id, Iso.hom_inv_id, tensor_id])
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X : C
⊢ (𝟙 (𝟙_ C) ⊗ (β_ (𝟙_ C) X).hom) ≫ (α_ (𝟙_ C) X (𝟙_ C)).inv ≫ (α_ (𝟙_ C) X (𝟙_ C)).hom ≫ (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom) =
    (𝟙 (𝟙_ C) ⊗ (β_ (𝟙_ C) X).hom) ≫
      (α_ (𝟙_ C) X (𝟙_ C)).inv ≫
        ((β_ (𝟙_ C) X).hom ⊗ 𝟙 (𝟙_ C)) ≫
          ((β_ (𝟙_ C) X).inv ⊗ 𝟙 (𝟙_ C)) ≫ (α_ (𝟙_ C) X (𝟙_ C)).hom ≫ (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom)

tactic: rw [id_comp]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X : C
⊢ (𝟙 (𝟙_ C) ⊗ (β_ (𝟙_ C) X).hom) ≫ (α_ (𝟙_ C) X (𝟙_ C)).inv ≫ (α_ (𝟙_ C) X (𝟙_ C)).hom ≫ (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom) =
    (𝟙 (𝟙_ C) ⊗ (β_ (𝟙_ C) X).hom) ≫
      (α_ (𝟙_ C) X (𝟙_ C)).inv ≫ (𝟙 ((𝟙_ C ⊗ X) ⊗ 𝟙_ C) ≫ (α_ (𝟙_ C) X (𝟙_ C)).hom) ≫ (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom)

tactic: slice_rhs 3 4 => rw [← comp_tensor_id, Iso.hom_inv_id, tensor_id]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X : C
⊢ (𝟙 (𝟙_ C) ⊗ (β_ (𝟙_ C) X).hom) ≫ (α_ (𝟙_ C) X (𝟙_ C)).inv ≫ (α_ (𝟙_ C) X (𝟙_ C)).hom ≫ (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom) =
    (𝟙 (𝟙_ C) ⊗ (β_ (𝟙_ C) X).hom) ≫
      (α_ (𝟙_ C) X (𝟙_ C)).inv ≫
        ((β_ (𝟙_ C) X).hom ⊗ 𝟙 (𝟙_ C)) ≫
          ((β_ (𝟙_ C) X).inv ⊗ 𝟙 (𝟙_ C)) ≫ (α_ (𝟙_ C) X (𝟙_ C)).hom ≫ (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom)

tactic: (slice_lhs 1 3 => rw [← hexagon_reverse])
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X : C
⊢ (𝟙 (𝟙_ C) ⊗ (β_ (𝟙_ C) X).hom) ≫
      (α_ (𝟙_ C) X (𝟙_ C)).inv ≫
        ((β_ (𝟙_ C) X).hom ⊗ 𝟙 (𝟙_ C)) ≫
          ((β_ (𝟙_ C) X).inv ⊗ 𝟙 (𝟙_ C)) ≫ (α_ (𝟙_ C) X (𝟙_ C)).hom ≫ (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom) =
    (α_ (𝟙_ C) tensorUnit' X).inv ≫
      (β_ (𝟙_ C ⊗ tensorUnit') X).hom ≫
        (α_ X (𝟙_ C) tensorUnit').inv ≫
          ((β_ (𝟙_ C) X).inv ⊗ 𝟙 tensorUnit') ≫ (α_ (𝟙_ C) X tensorUnit').hom ≫ (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom)

tactic: simp only [assoc]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X : C
⊢ ((((α_ (𝟙_ C) (𝟙_ C) X).inv ≫ (β_ (𝟙_ C ⊗ 𝟙_ C) X).hom ≫ (α_ X (𝟙_ C) (𝟙_ C)).inv) ≫ ((β_ (𝟙_ C) X).inv ⊗ 𝟙 (𝟙_ C))) ≫
        (α_ (𝟙_ C) X (𝟙_ C)).hom) ≫
      (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom) =
    (α_ (𝟙_ C) tensorUnit' X).inv ≫
      (β_ (𝟙_ C ⊗ tensorUnit') X).hom ≫
        (α_ X (𝟙_ C) tensorUnit').inv ≫
          ((β_ (𝟙_ C) X).inv ⊗ 𝟙 tensorUnit') ≫ (α_ (𝟙_ C) X tensorUnit').hom ≫ (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom)

tactic: slice_lhs 1 3 => rw [← hexagon_reverse]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X : C
⊢ (𝟙 (𝟙_ C) ⊗ (β_ (𝟙_ C) X).hom) ≫
      (α_ (𝟙_ C) X (𝟙_ C)).inv ≫
        ((β_ (𝟙_ C) X).hom ⊗ 𝟙 (𝟙_ C)) ≫
          ((β_ (𝟙_ C) X).inv ⊗ 𝟙 (𝟙_ C)) ≫ (α_ (𝟙_ C) X (𝟙_ C)).hom ≫ (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom) =
    (α_ (𝟙_ C) tensorUnit' X).inv ≫
      (β_ (𝟙_ C ⊗ tensorUnit') X).hom ≫
        (α_ X (𝟙_ C) tensorUnit').inv ≫
          ((β_ (𝟙_ C) X).inv ⊗ 𝟙 tensorUnit') ≫ (α_ (𝟙_ C) X tensorUnit').hom ≫ (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom)

tactic: rw [braiding_rightUnitor_aux₁]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X : C
⊢ (α_ (𝟙_ C) tensorUnit' X).inv ≫
      (β_ (𝟙_ C ⊗ tensorUnit') X).hom ≫
        (α_ X (𝟙_ C) tensorUnit').inv ≫
          ((β_ (𝟙_ C) X).inv ⊗ 𝟙 tensorUnit') ≫ (α_ (𝟙_ C) X tensorUnit').hom ≫ (𝟙 (𝟙_ C) ⊗ (ρ_ X).hom) =
    (α_ (𝟙_ C) tensorUnit' X).inv ≫ (β_ (𝟙_ C ⊗ tensorUnit') X).hom ≫ (𝟙 X ⊗ (ρ_ (𝟙_ C)).hom) ≫ (β_ (𝟙_ C) X).inv

tactic: (slice_lhs 2 3 => rw [← braiding_naturality])
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X : C
⊢ (α_ (𝟙_ C) tensorUnit' X).inv ≫ (β_ (𝟙_ C ⊗ tensorUnit') X).hom ≫ (𝟙 X ⊗ (ρ_ (𝟙_ C)).hom) ≫ (β_ (𝟙_ C) X).inv =
    (α_ (𝟙_ C) tensorUnit' X).inv ≫ ((ρ_ (𝟙_ C)).hom ⊗ 𝟙 X) ≫ (β_ (𝟙_ C) X).hom ≫ (β_ (𝟙_ C) X).inv

tactic: simp only [assoc]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X : C
⊢ (α_ (𝟙_ C) tensorUnit' X).inv ≫ (((ρ_ (𝟙_ C)).hom ⊗ 𝟙 X) ≫ (β_ (𝟙_ C) X).hom) ≫ (β_ (𝟙_ C) X).inv =
    (α_ (𝟙_ C) tensorUnit' X).inv ≫ ((ρ_ (𝟙_ C)).hom ⊗ 𝟙 X) ≫ (β_ (𝟙_ C) X).hom ≫ (β_ (𝟙_ C) X).inv

tactic: slice_lhs 2 3 => rw [← braiding_naturality]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X : C
⊢ (α_ (𝟙_ C) tensorUnit' X).inv ≫ (β_ (𝟙_ C ⊗ tensorUnit') X).hom ≫ (𝟙 X ⊗ (ρ_ (𝟙_ C)).hom) ≫ (β_ (𝟙_ C) X).inv =
    (α_ (𝟙_ C) tensorUnit' X).inv ≫ ((ρ_ (𝟙_ C)).hom ⊗ 𝟙 X) ≫ (β_ (𝟙_ C) X).hom ≫ (β_ (𝟙_ C) X).inv

tactic: rw [Iso.hom_inv_id, comp_id]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X : C
⊢ (α_ (𝟙_ C) tensorUnit' X).inv ≫ ((ρ_ (𝟙_ C)).hom ⊗ 𝟙 X) ≫ (β_ (𝟙_ C) X).hom ≫ (β_ (𝟙_ C) X).inv =
    (α_ (𝟙_ C) tensorUnit' X).inv ≫ ((ρ_ (𝟙_ C)).hom ⊗ 𝟙 X)

tactic: rw [triangle_assoc_comp_right]
state_before: C : Type u₁
inst✝² : Category C
inst✝¹ : MonoidalCategory C
inst✝ : BraidedCategory C
X : C
⊢ (α_ (𝟙_ C) tensorUnit' X).inv ≫ ((ρ_ (𝟙_ C)).hom ⊗ 𝟙 X) = 𝟙 (𝟙_ C) ⊗ (λ_ X).hom