HepLean Documentation

Mathlib.Tactic.CategoryTheory.Monoidal.PureCoherence

Coherence tactic for monoidal categories #

We provide a monoidal_coherence tactic, which proves that any two morphisms (with the same source and target) in a monoidal category which are built out of associators and unitors are equal.

@[reducible, inline]

The composition of the normalizing isomorphisms η_f : p ⊗ f ≅ pf and η_g : pf ⊗ g ≅ pfg.

Equations
Instances For
    theorem Mathlib.Tactic.Monoidal.naturality_tensorHom {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {p : C} {f₁ : C} {g₁ : C} {f₂ : C} {g₂ : C} {pf₁ : C} {pf₁f₂ : C} {η : f₁ g₁} {θ : f₂ g₂} (η_f₁ : CategoryTheory.MonoidalCategory.tensorObj p f₁ pf₁) (η_g₁ : CategoryTheory.MonoidalCategory.tensorObj p g₁ pf₁) (η_f₂ : CategoryTheory.MonoidalCategory.tensorObj pf₁ f₂ pf₁f₂) (η_g₂ : CategoryTheory.MonoidalCategory.tensorObj pf₁ g₂ pf₁f₂) (ih_η : CategoryTheory.MonoidalCategory.whiskerLeftIso p η ≪≫ η_g₁ = η_f₁) (ih_θ : CategoryTheory.MonoidalCategory.whiskerLeftIso pf₁ θ ≪≫ η_g₂ = η_f₂) :
    theorem Mathlib.Tactic.Monoidal.mk_eq_of_naturality {C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {f : C} {g : C} {f' : C} {η : f g} {θ : f g} {η' : f g} {θ' : f g} (η_f : CategoryTheory.MonoidalCategory.tensorObj (𝟙_ C) f f') (η_g : CategoryTheory.MonoidalCategory.tensorObj (𝟙_ C) g f') (η_hom : η'.hom = η) (Θ_hom : θ'.hom = θ) (Hη : CategoryTheory.MonoidalCategory.whiskerLeftIso (𝟙_ C) η' ≪≫ η_g = η_f) (Hθ : CategoryTheory.MonoidalCategory.whiskerLeftIso (𝟙_ C) θ' ≪≫ η_g = η_f) :
    η = θ

    Close the goal of the form η = θ, where η and θ are 2-isomorphisms made up only of associators, unitors, and identities.

    example {C : Type} [Category C] [MonoidalCategory C] :
      (λ_ (𝟙_ C)).hom = (ρ_ (𝟙_ C)).hom := by
      monoidal_coherence
    
    Equations
    Instances For

      Close the goal of the form η = θ, where η and θ are 2-isomorphisms made up only of associators, unitors, and identities.

      example {C : Type} [Category C] [MonoidalCategory C] :
        (λ_ (𝟙_ C)).hom = (ρ_ (𝟙_ C)).hom := by
        monoidal_coherence
      
      Equations
      Instances For