category_theory.monoidal.Mon_ ⟷ Mathlib.CategoryTheory.Monoidal.Mon_

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -174,7 +174,7 @@ def forget : Mon_ C β₯€ C where
 end
 
 #print Mon_.forget_faithful /-
-instance forget_faithful : Faithful (@forget C _ _) where
+instance forget_faithful : CategoryTheory.Functor.Faithful (@forget C _ _) where
 #align Mon_.forget_faithful Mon_.forget_faithful
 -/
 
@@ -182,7 +182,7 @@ instance {A B : Mon_ C} (f : A ⟢ B) [e : IsIso ((forget C).map f)] : IsIso f.H
   e
 
 /-- The forgetful functor from monoid objects to the ambient category reflects isomorphisms. -/
-instance : ReflectsIsomorphisms (forget C)
+instance : CategoryTheory.Functor.ReflectsIsomorphisms (forget C)
     where reflects X Y f e :=
     ⟨⟨{   Hom := inv f.hom
           mul_hom' := by
Diff
@@ -3,11 +3,11 @@ Copyright (c) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 -/
-import CategoryTheory.Monoidal.Braided
+import CategoryTheory.Monoidal.Braided.Basic
 import CategoryTheory.Monoidal.Discrete
 import CategoryTheory.Monoidal.CoherenceLemmas
 import CategoryTheory.Limits.Shapes.Terminal
-import Algebra.PunitInstances
+import Algebra.PUnitInstances
 
 #align_import category_theory.monoidal.Mon_ from "leanprover-community/mathlib"@"7e5137f579de09a059a5ce98f364a04e221aabf0"
 
Diff
@@ -3,11 +3,11 @@ Copyright (c) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 -/
-import Mathbin.CategoryTheory.Monoidal.Braided
-import Mathbin.CategoryTheory.Monoidal.Discrete
-import Mathbin.CategoryTheory.Monoidal.CoherenceLemmas
-import Mathbin.CategoryTheory.Limits.Shapes.Terminal
-import Mathbin.Algebra.PunitInstances
+import CategoryTheory.Monoidal.Braided
+import CategoryTheory.Monoidal.Discrete
+import CategoryTheory.Monoidal.CoherenceLemmas
+import CategoryTheory.Limits.Shapes.Terminal
+import Algebra.PunitInstances
 
 #align_import category_theory.monoidal.Mon_ from "leanprover-community/mathlib"@"7e5137f579de09a059a5ce98f364a04e221aabf0"
 
Diff
@@ -56,12 +56,6 @@ structure Mon_ where
 #align Mon_ Mon_
 -/
 
-restate_axiom Mon_.one_mul'
-
-restate_axiom Mon_.mul_one'
-
-restate_axiom Mon_.mul_assoc'
-
 attribute [reassoc] Mon_.one_mul Mon_.mul_one
 
 -- We prove a more general `@[simp]` lemma below.
@@ -122,10 +116,6 @@ structure Hom (M N : Mon_ C) where
 #align Mon_.hom Mon_.Hom
 -/
 
-restate_axiom hom.one_hom'
-
-restate_axiom hom.mul_hom'
-
 attribute [simp, reassoc] hom.one_hom hom.mul_hom
 
 #print Mon_.id /-
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.monoidal.Mon_
-! leanprover-community/mathlib commit 7e5137f579de09a059a5ce98f364a04e221aabf0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Monoidal.Braided
 import Mathbin.CategoryTheory.Monoidal.Discrete
@@ -14,6 +9,8 @@ import Mathbin.CategoryTheory.Monoidal.CoherenceLemmas
 import Mathbin.CategoryTheory.Limits.Shapes.Terminal
 import Mathbin.Algebra.PunitInstances
 
+#align_import category_theory.monoidal.Mon_ from "leanprover-community/mathlib"@"7e5137f579de09a059a5ce98f364a04e221aabf0"
+
 /-!
 # The category of monoids in a monoidal category.
 
Diff
@@ -382,6 +382,7 @@ open EquivLaxMonoidalFunctorPunit
 
 attribute [local simp] eq_to_iso_map
 
+#print Mon_.equivLaxMonoidalFunctorPUnit /-
 /--
 Monoid objects in `C` are "just" lax monoidal functors from the trivial monoidal category to `C`.
 -/
@@ -393,6 +394,7 @@ def equivLaxMonoidalFunctorPUnit : LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C
   unitIso := unitIso C
   counitIso := counitIso C
 #align Mon_.equiv_lax_monoidal_functor_punit Mon_.equivLaxMonoidalFunctorPUnit
+-/
 
 end Mon_
 
@@ -477,6 +479,7 @@ variable [BraidedCategory C]
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Mon_.Mon_tensor_one_mul /-
 theorem Mon_tensor_one_mul (M N : Mon_ C) :
     ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one) βŠ— πŸ™ (M.pt βŠ— N.pt)) ≫
         tensor_ΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) =
@@ -488,6 +491,7 @@ theorem Mon_tensor_one_mul (M N : Mon_ C) :
   symm
   exact tensor_left_unitality C M.X N.X
 #align Mon_.Mon_tensor_one_mul Mon_.Mon_tensor_one_mul
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@@ -495,6 +499,7 @@ theorem Mon_tensor_one_mul (M N : Mon_ C) :
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Mon_.Mon_tensor_mul_one /-
 theorem Mon_tensor_mul_one (M N : Mon_ C) :
     (πŸ™ (M.pt βŠ— N.pt) βŠ— (Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one)) ≫
         tensor_ΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) =
@@ -506,6 +511,7 @@ theorem Mon_tensor_mul_one (M N : Mon_ C) :
   symm
   exact tensor_right_unitality C M.X N.X
 #align Mon_.Mon_tensor_mul_one Mon_.Mon_tensor_mul_one
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@@ -519,6 +525,7 @@ theorem Mon_tensor_mul_one (M N : Mon_ C) :
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Mon_.Mon_tensor_mul_assoc /-
 theorem Mon_tensor_mul_assoc (M N : Mon_ C) :
     (tensor_ΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) βŠ— πŸ™ (M.pt βŠ— N.pt)) ≫
         tensor_ΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) =
@@ -534,6 +541,7 @@ theorem Mon_tensor_mul_assoc (M N : Mon_ C) :
   slice_lhs 2 3 => rw [← tensor_comp, tensor_id]
   simp only [category.assoc]
 #align Mon_.Mon_tensor_mul_assoc Mon_.Mon_tensor_mul_assoc
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@@ -544,6 +552,7 @@ theorem Mon_tensor_mul_assoc (M N : Mon_ C) :
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Mon_.mul_associator /-
 theorem mul_associator {M N P : Mon_ C} :
     (tensor_ΞΌ C (M.pt βŠ— N.pt, P.pt) (M.pt βŠ— N.pt, P.pt) ≫
           (tensor_ΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) βŠ— P.mul)) ≫
@@ -559,9 +568,11 @@ theorem mul_associator {M N P : Mon_ C} :
   slice_lhs 1 3 => rw [associator_monoidal]
   simp only [category.assoc]
 #align Mon_.mul_associator Mon_.mul_associator
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Mon_.mul_leftUnitor /-
 theorem mul_leftUnitor {M : Mon_ C} :
     (tensor_ΞΌ C (πŸ™_ C, M.pt) (πŸ™_ C, M.pt) ≫ ((Ξ»_ (πŸ™_ C)).Hom βŠ— M.mul)) ≫ (Ξ»_ M.pt).Hom =
       ((Ξ»_ M.pt).Hom βŠ— (Ξ»_ M.pt).Hom) ≫ M.mul :=
@@ -571,9 +582,11 @@ theorem mul_leftUnitor {M : Mon_ C} :
   slice_lhs 1 3 => rw [← left_unitor_monoidal]
   simp only [category.assoc, category.id_comp]
 #align Mon_.mul_left_unitor Mon_.mul_leftUnitor
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Mon_.mul_rightUnitor /-
 theorem mul_rightUnitor {M : Mon_ C} :
     (tensor_ΞΌ C (M.pt, πŸ™_ C) (M.pt, πŸ™_ C) ≫ (M.mul βŠ— (Ξ»_ (πŸ™_ C)).Hom)) ≫ (ρ_ M.pt).Hom =
       ((ρ_ M.pt).Hom βŠ— (ρ_ M.pt).Hom) ≫ M.mul :=
@@ -583,6 +596,7 @@ theorem mul_rightUnitor {M : Mon_ C} :
   slice_lhs 1 3 => rw [← right_unitor_monoidal]
   simp only [category.assoc, category.id_comp]
 #align Mon_.mul_right_unitor Mon_.mul_rightUnitor
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 
 ! This file was ported from Lean 3 source module category_theory.monoidal.Mon_
-! leanprover-community/mathlib commit a836c6dba9bd1ee2a0cdc9af0006a596f243031c
+! leanprover-community/mathlib commit 7e5137f579de09a059a5ce98f364a04e221aabf0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -17,6 +17,9 @@ import Mathbin.Algebra.PunitInstances
 /-!
 # The category of monoids in a monoidal category.
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 We define monoids in a monoidal category `C` and show that the category of monoids is equivalent to
 the category of lax monoidal functors from the unit monoidal category to `C`.  We also show that if
 `C` is braided, then the category of monoids is naturally monoidal.
Diff
@@ -32,6 +32,7 @@ open CategoryTheory.MonoidalCategory
 
 variable (C : Type u₁) [Category.{v₁} C] [MonoidalCategory.{v₁} C]
 
+#print Mon_ /-
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
@@ -53,6 +54,7 @@ structure Mon_ where
   -- The heuristic is that unitors and associators "don't have much weight".
   mul_assoc' : (mul βŠ— πŸ™ X) ≫ mul = (Ξ±_ X X X).Hom ≫ (πŸ™ X βŠ— mul) ≫ mul := by obviously
 #align Mon_ Mon_
+-/
 
 restate_axiom Mon_.one_mul'
 
@@ -67,6 +69,7 @@ attribute [simp, reassoc] Mon_.mul_assoc
 
 namespace Mon_
 
+#print Mon_.trivial /-
 /-- The trivial monoid object. We later show this is initial in `Mon_ C`.
 -/
 @[simps]
@@ -77,6 +80,7 @@ def trivial : Mon_ C where
   mul_assoc' := by coherence
   mul_one' := by coherence
 #align Mon_.trivial Mon_.trivial
+-/
 
 instance : Inhabited (Mon_ C) :=
   ⟨trivial C⟩
@@ -84,23 +88,30 @@ instance : Inhabited (Mon_ C) :=
 variable {C} {M : Mon_ C}
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Mon_.one_mul_hom /-
 @[simp]
 theorem one_mul_hom {Z : C} (f : Z ⟢ M.pt) : (M.one βŠ— f) ≫ M.mul = (Ξ»_ Z).Hom ≫ f := by
   rw [← id_tensor_comp_tensor_id, category.assoc, M.one_mul, left_unitor_naturality]
 #align Mon_.one_mul_hom Mon_.one_mul_hom
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Mon_.mul_one_hom /-
 @[simp]
 theorem mul_one_hom {Z : C} (f : Z ⟢ M.pt) : (f βŠ— M.one) ≫ M.mul = (ρ_ Z).Hom ≫ f := by
   rw [← tensor_id_comp_id_tensor, category.assoc, M.mul_one, right_unitor_naturality]
 #align Mon_.mul_one_hom Mon_.mul_one_hom
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Mon_.assoc_flip /-
 theorem assoc_flip :
     (πŸ™ M.pt βŠ— M.mul) ≫ M.mul = (Ξ±_ M.pt M.pt M.pt).inv ≫ (M.mul βŠ— πŸ™ M.pt) ≫ M.mul := by simp
 #align Mon_.assoc_flip Mon_.assoc_flip
+-/
 
+#print Mon_.Hom /-
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /-- A morphism of monoid objects. -/
 @[ext]
@@ -109,6 +120,7 @@ structure Hom (M N : Mon_ C) where
   one_hom' : M.one ≫ hom = N.one := by obviously
   mul_hom' : M.mul ≫ hom = (hom βŠ— hom) ≫ N.mul := by obviously
 #align Mon_.hom Mon_.Hom
+-/
 
 restate_axiom hom.one_hom'
 
@@ -116,51 +128,65 @@ restate_axiom hom.mul_hom'
 
 attribute [simp, reassoc] hom.one_hom hom.mul_hom
 
+#print Mon_.id /-
 /-- The identity morphism on a monoid object. -/
 @[simps]
 def id (M : Mon_ C) : Hom M M where Hom := πŸ™ M.pt
 #align Mon_.id Mon_.id
+-/
 
+#print Mon_.homInhabited /-
 instance homInhabited (M : Mon_ C) : Inhabited (Hom M M) :=
   ⟨id M⟩
 #align Mon_.hom_inhabited Mon_.homInhabited
+-/
 
+#print Mon_.comp /-
 /-- Composition of morphisms of monoid objects. -/
 @[simps]
 def comp {M N O : Mon_ C} (f : Hom M N) (g : Hom N O) : Hom M O where Hom := f.Hom ≫ g.Hom
 #align Mon_.comp Mon_.comp
+-/
 
 instance : Category (Mon_ C) where
   Hom M N := Hom M N
   id := id
   comp M N O f g := comp f g
 
+#print Mon_.id_hom' /-
 @[simp]
 theorem id_hom' (M : Mon_ C) : (πŸ™ M : Hom M M).Hom = πŸ™ M.pt :=
   rfl
 #align Mon_.id_hom' Mon_.id_hom'
+-/
 
+#print Mon_.comp_hom' /-
 @[simp]
 theorem comp_hom' {M N K : Mon_ C} (f : M ⟢ N) (g : N ⟢ K) :
     (f ≫ g : Hom M K).Hom = f.Hom ≫ g.Hom :=
   rfl
 #align Mon_.comp_hom' Mon_.comp_hom'
+-/
 
 section
 
 variable (C)
 
+#print Mon_.forget /-
 /-- The forgetful functor from monoid objects to the ambient category. -/
 @[simps]
 def forget : Mon_ C β₯€ C where
   obj A := A.pt
   map A B f := f.Hom
 #align Mon_.forget Mon_.forget
+-/
 
 end
 
+#print Mon_.forget_faithful /-
 instance forget_faithful : Faithful (@forget C _ _) where
 #align Mon_.forget_faithful Mon_.forget_faithful
+-/
 
 instance {A B : Mon_ C} (f : A ⟢ B) [e : IsIso ((forget C).map f)] : IsIso f.Hom :=
   e
@@ -175,6 +201,7 @@ instance : ReflectsIsomorphisms (forget C)
         by tidy⟩⟩
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Mon_.isoOfIso /-
 /-- Construct an isomorphism of monoids by giving an isomorphism between the underlying objects
 and checking compatibility with unit and multiplication only in the forward direction.
 -/
@@ -193,7 +220,9 @@ def isoOfIso {M N : Mon_ C} (f : M.pt β‰… N.pt) (one_f : M.one ≫ f.Hom = N.one
         slice_rhs 2 3 => rw [mul_f]
         simp }
 #align Mon_.iso_of_iso Mon_.isoOfIso
+-/
 
+#print Mon_.uniqueHomFromTrivial /-
 instance uniqueHomFromTrivial (A : Mon_ C) : Unique (trivial C ⟢ A)
     where
   default :=
@@ -205,6 +234,7 @@ instance uniqueHomFromTrivial (A : Mon_ C) : Unique (trivial C ⟢ A)
     rw [← category.id_comp f.hom]
     erw [f.one_hom]
 #align Mon_.unique_hom_from_trivial Mon_.uniqueHomFromTrivial
+-/
 
 open CategoryTheory.Limits
 
@@ -217,6 +247,7 @@ namespace CategoryTheory.LaxMonoidalFunctor
 
 variable {C} {D : Type uβ‚‚} [Category.{vβ‚‚} D] [MonoidalCategory.{vβ‚‚} D]
 
+#print CategoryTheory.LaxMonoidalFunctor.mapMon /-
 -- TODO: map_Mod F A : Mod A β₯€ Mod (F.map_Mon A)
 /-- A lax monoidal functor takes monoid objects to monoid objects.
 
@@ -262,15 +293,18 @@ def mapMon (F : LaxMonoidalFunctor C D) : Mon_ C β₯€ Mon_ D
   map_id' A := by ext; simp
   map_comp' A B C f g := by ext; simp
 #align category_theory.lax_monoidal_functor.map_Mon CategoryTheory.LaxMonoidalFunctor.mapMon
+-/
 
 variable (C D)
 
+#print CategoryTheory.LaxMonoidalFunctor.mapMonFunctor /-
 /-- `map_Mon` is functorial in the lax monoidal functor. -/
 def mapMonFunctor : LaxMonoidalFunctor C D β₯€ Mon_ C β₯€ Mon_ D
     where
   obj := mapMon
   map F G Ξ± := { app := fun A => { Hom := Ξ±.app A.pt } }
 #align category_theory.lax_monoidal_functor.map_Mon_functor CategoryTheory.LaxMonoidalFunctor.mapMonFunctor
+-/
 
 end CategoryTheory.LaxMonoidalFunctor
 
@@ -280,14 +314,17 @@ open CategoryTheory.LaxMonoidalFunctor
 
 namespace EquivLaxMonoidalFunctorPunit
 
+#print Mon_.EquivLaxMonoidalFunctorPUnit.laxMonoidalToMon /-
 /-- Implementation of `Mon_.equiv_lax_monoidal_functor_punit`. -/
 @[simps]
 def laxMonoidalToMon : LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C β₯€ Mon_ C
     where
   obj F := (F.mapMon : Mon_ _ β₯€ Mon_ C).obj (trivial (Discrete PUnit))
   map F G Ξ± := ((mapMonFunctor (Discrete PUnit) C).map Ξ±).app _
-#align Mon_.equiv_lax_monoidal_functor_punit.lax_monoidal_to_Mon Mon_.EquivLaxMonoidalFunctorPunit.laxMonoidalToMon
+#align Mon_.equiv_lax_monoidal_functor_punit.lax_monoidal_to_Mon Mon_.EquivLaxMonoidalFunctorPUnit.laxMonoidalToMon
+-/
 
+#print Mon_.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidal /-
 /-- Implementation of `Mon_.equiv_lax_monoidal_functor_punit`. -/
 @[simps]
 def monToLaxMonoidal : Mon_ C β₯€ LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C
@@ -304,12 +341,14 @@ def monToLaxMonoidal : Mon_ C β₯€ LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C
       naturality' := fun _ _ _ => by dsimp; rw [category.id_comp, category.comp_id]
       unit' := f.OneHom
       tensor' := fun _ _ => f.MulHom }
-#align Mon_.equiv_lax_monoidal_functor_punit.Mon_to_lax_monoidal Mon_.EquivLaxMonoidalFunctorPunit.monToLaxMonoidal
+#align Mon_.equiv_lax_monoidal_functor_punit.Mon_to_lax_monoidal Mon_.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidal
+-/
 
 attribute [local tidy] tactic.discrete_cases
 
 attribute [local simp] eq_to_iso_map
 
+#print Mon_.EquivLaxMonoidalFunctorPUnit.unitIso /-
 /-- Implementation of `Mon_.equiv_lax_monoidal_functor_punit`. -/
 @[simps]
 def unitIso :
@@ -319,8 +358,10 @@ def unitIso :
       MonoidalNatIso.ofComponents (fun _ => F.toFunctor.mapIso (eqToIso (by ext))) (by tidy)
         (by tidy) (by tidy))
     (by tidy)
-#align Mon_.equiv_lax_monoidal_functor_punit.unit_iso Mon_.EquivLaxMonoidalFunctorPunit.unitIso
+#align Mon_.equiv_lax_monoidal_functor_punit.unit_iso Mon_.EquivLaxMonoidalFunctorPUnit.unitIso
+-/
 
+#print Mon_.EquivLaxMonoidalFunctorPUnit.counitIso /-
 /-- Implementation of `Mon_.equiv_lax_monoidal_functor_punit`. -/
 @[simps]
 def counitIso : monToLaxMonoidal C β‹™ laxMonoidalToMon C β‰… 𝟭 (Mon_ C) :=
@@ -329,7 +370,8 @@ def counitIso : monToLaxMonoidal C β‹™ laxMonoidalToMon C β‰… 𝟭 (Mon_ C) :=
       { Hom := { Hom := πŸ™ _ }
         inv := { Hom := πŸ™ _ } })
     (by tidy)
-#align Mon_.equiv_lax_monoidal_functor_punit.counit_iso Mon_.EquivLaxMonoidalFunctorPunit.counitIso
+#align Mon_.equiv_lax_monoidal_functor_punit.counit_iso Mon_.EquivLaxMonoidalFunctorPUnit.counitIso
+-/
 
 end EquivLaxMonoidalFunctorPunit
 
@@ -341,13 +383,13 @@ attribute [local simp] eq_to_iso_map
 Monoid objects in `C` are "just" lax monoidal functors from the trivial monoidal category to `C`.
 -/
 @[simps]
-def equivLaxMonoidalFunctorPunit : LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C β‰Œ Mon_ C
+def equivLaxMonoidalFunctorPUnit : LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C β‰Œ Mon_ C
     where
   Functor := laxMonoidalToMon C
   inverse := monToLaxMonoidal C
   unitIso := unitIso C
   counitIso := counitIso C
-#align Mon_.equiv_lax_monoidal_functor_punit Mon_.equivLaxMonoidalFunctorPunit
+#align Mon_.equiv_lax_monoidal_functor_punit Mon_.equivLaxMonoidalFunctorPUnit
 
 end Mon_
 
@@ -391,6 +433,7 @@ variable {C}
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Mon_.one_associator /-
 -- The proofs that associators and unitors preserve monoid units don't require braiding.
 theorem one_associator {M N P : Mon_ C} :
     ((Ξ»_ (πŸ™_ C)).inv ≫ ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one) βŠ— P.one)) ≫ (Ξ±_ M.pt N.pt P.pt).Hom =
@@ -405,18 +448,23 @@ theorem one_associator {M N P : Mon_ C} :
   slice_lhs 1 2 => rw [left_unitor_inv_naturality]
   simp only [category.assoc]
 #align Mon_.one_associator Mon_.one_associator
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Mon_.one_leftUnitor /-
 theorem one_leftUnitor {M : Mon_ C} :
     ((Ξ»_ (πŸ™_ C)).inv ≫ (πŸ™ (πŸ™_ C) βŠ— M.one)) ≫ (Ξ»_ M.pt).Hom = M.one := by
   slice_lhs 2 3 => rw [left_unitor_naturality]; simp
 #align Mon_.one_left_unitor Mon_.one_leftUnitor
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Mon_.one_rightUnitor /-
 theorem one_rightUnitor {M : Mon_ C} :
     ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— πŸ™ (πŸ™_ C))) ≫ (ρ_ M.pt).Hom = M.one := by
   slice_lhs 2 3 => rw [right_unitor_naturality, ← unitors_equal]; simp
 #align Mon_.one_right_unitor Mon_.one_rightUnitor
+-/
 
 variable [BraidedCategory C]
 
@@ -537,6 +585,7 @@ theorem mul_rightUnitor {M : Mon_ C} :
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print Mon_.monMonoidal /-
 instance monMonoidal : MonoidalCategory (Mon_ C)
     where
   tensorObj M N :=
@@ -568,6 +617,7 @@ instance monMonoidal : MonoidalCategory (Mon_ C)
   pentagon' := by intros; ext; dsimp; apply pentagon
   triangle' := by intros; ext; dsimp; apply triangle
 #align Mon_.Mon_monoidal Mon_.monMonoidal
+-/
 
 end Mon_
 
Diff
@@ -428,7 +428,7 @@ variable [BraidedCategory C]
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem Mon_tensor_one_mul (M N : Mon_ C) :
     ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one) βŠ— πŸ™ (M.pt βŠ— N.pt)) ≫
-        tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) =
+        tensor_ΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) =
       (Ξ»_ (M.pt βŠ— N.pt)).Hom :=
   by
   rw [← category.id_comp (πŸ™ (M.X βŠ— N.X)), tensor_comp]
@@ -446,7 +446,7 @@ theorem Mon_tensor_one_mul (M N : Mon_ C) :
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem Mon_tensor_mul_one (M N : Mon_ C) :
     (πŸ™ (M.pt βŠ— N.pt) βŠ— (Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one)) ≫
-        tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) =
+        tensor_ΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) =
       (ρ_ (M.pt βŠ— N.pt)).Hom :=
   by
   rw [← category.id_comp (πŸ™ (M.X βŠ— N.X)), tensor_comp]
@@ -469,11 +469,11 @@ theorem Mon_tensor_mul_one (M N : Mon_ C) :
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem Mon_tensor_mul_assoc (M N : Mon_ C) :
-    (tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) βŠ— πŸ™ (M.pt βŠ— N.pt)) ≫
-        tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) =
+    (tensor_ΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) βŠ— πŸ™ (M.pt βŠ— N.pt)) ≫
+        tensor_ΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) =
       (Ξ±_ (M.pt βŠ— N.pt) (M.pt βŠ— N.pt) (M.pt βŠ— N.pt)).Hom ≫
-        (πŸ™ (M.pt βŠ— N.pt) βŠ— tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul)) ≫
-          tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) :=
+        (πŸ™ (M.pt βŠ— N.pt) βŠ— tensor_ΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul)) ≫
+          tensor_ΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) :=
   by
   rw [← category.id_comp (πŸ™ (M.X βŠ— N.X)), tensor_comp]
   slice_lhs 2 3 => rw [← tensor_id, tensor_ΞΌ_natural]
@@ -494,12 +494,12 @@ theorem Mon_tensor_mul_assoc (M N : Mon_ C) :
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem mul_associator {M N P : Mon_ C} :
-    (tensorΞΌ C (M.pt βŠ— N.pt, P.pt) (M.pt βŠ— N.pt, P.pt) ≫
-          (tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) βŠ— P.mul)) ≫
+    (tensor_ΞΌ C (M.pt βŠ— N.pt, P.pt) (M.pt βŠ— N.pt, P.pt) ≫
+          (tensor_ΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) βŠ— P.mul)) ≫
         (Ξ±_ M.pt N.pt P.pt).Hom =
       ((Ξ±_ M.pt N.pt P.pt).Hom βŠ— (Ξ±_ M.pt N.pt P.pt).Hom) ≫
-        tensorΞΌ C (M.pt, N.pt βŠ— P.pt) (M.pt, N.pt βŠ— P.pt) ≫
-          (M.mul βŠ— tensorΞΌ C (N.pt, P.pt) (N.pt, P.pt) ≫ (N.mul βŠ— P.mul)) :=
+        tensor_ΞΌ C (M.pt, N.pt βŠ— P.pt) (M.pt, N.pt βŠ— P.pt) ≫
+          (M.mul βŠ— tensor_ΞΌ C (N.pt, P.pt) (N.pt, P.pt) ≫ (N.mul βŠ— P.mul)) :=
   by
   simp
   slice_lhs 2 3 => rw [← category.id_comp P.mul, tensor_comp]
@@ -512,7 +512,7 @@ theorem mul_associator {M N P : Mon_ C} :
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem mul_leftUnitor {M : Mon_ C} :
-    (tensorΞΌ C (πŸ™_ C, M.pt) (πŸ™_ C, M.pt) ≫ ((Ξ»_ (πŸ™_ C)).Hom βŠ— M.mul)) ≫ (Ξ»_ M.pt).Hom =
+    (tensor_ΞΌ C (πŸ™_ C, M.pt) (πŸ™_ C, M.pt) ≫ ((Ξ»_ (πŸ™_ C)).Hom βŠ— M.mul)) ≫ (Ξ»_ M.pt).Hom =
       ((Ξ»_ M.pt).Hom βŠ— (Ξ»_ M.pt).Hom) ≫ M.mul :=
   by
   rw [← category.comp_id (Ξ»_ (πŸ™_ C)).Hom, ← category.id_comp M.mul, tensor_comp]
@@ -524,7 +524,7 @@ theorem mul_leftUnitor {M : Mon_ C} :
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem mul_rightUnitor {M : Mon_ C} :
-    (tensorΞΌ C (M.pt, πŸ™_ C) (M.pt, πŸ™_ C) ≫ (M.mul βŠ— (Ξ»_ (πŸ™_ C)).Hom)) ≫ (ρ_ M.pt).Hom =
+    (tensor_ΞΌ C (M.pt, πŸ™_ C) (M.pt, πŸ™_ C) ≫ (M.mul βŠ— (Ξ»_ (πŸ™_ C)).Hom)) ≫ (ρ_ M.pt).Hom =
       ((ρ_ M.pt).Hom βŠ— (ρ_ M.pt).Hom) ≫ M.mul :=
   by
   rw [← category.id_comp M.mul, ← category.comp_id (Ξ»_ (πŸ™_ C)).Hom, tensor_comp]
@@ -542,7 +542,7 @@ instance monMonoidal : MonoidalCategory (Mon_ C)
   tensorObj M N :=
     { pt := M.pt βŠ— N.pt
       one := (Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one)
-      mul := tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul)
+      mul := tensor_ΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul)
       one_mul' := Mon_tensor_one_mul M N
       mul_one' := Mon_tensor_mul_one M N
       mul_assoc' := Mon_tensor_mul_assoc M N }
Diff
@@ -556,17 +556,17 @@ instance monMonoidal : MonoidalCategory (Mon_ C)
         slice_rhs 1 2 => rw [tensor_ΞΌ_natural]
         slice_lhs 2 3 => rw [← tensor_comp, hom.mul_hom f, hom.mul_hom g, tensor_comp]
         simp only [category.assoc] }
-  tensor_id' := by intros ; ext; apply tensor_id
-  tensor_comp' := by intros ; ext; apply tensor_comp
+  tensor_id' := by intros; ext; apply tensor_id
+  tensor_comp' := by intros; ext; apply tensor_comp
   tensorUnit := trivial C
   associator M N P := isoOfIso (Ξ±_ M.pt N.pt P.pt) one_associator mul_associator
-  associator_naturality' := by intros ; ext; dsimp; apply associator_naturality
+  associator_naturality' := by intros; ext; dsimp; apply associator_naturality
   leftUnitor M := isoOfIso (Ξ»_ M.pt) one_leftUnitor mul_leftUnitor
-  leftUnitor_naturality' := by intros ; ext; dsimp; apply left_unitor_naturality
+  leftUnitor_naturality' := by intros; ext; dsimp; apply left_unitor_naturality
   rightUnitor M := isoOfIso (ρ_ M.pt) one_rightUnitor mul_rightUnitor
-  rightUnitor_naturality' := by intros ; ext; dsimp; apply right_unitor_naturality
-  pentagon' := by intros ; ext; dsimp; apply pentagon
-  triangle' := by intros ; ext; dsimp; apply triangle
+  rightUnitor_naturality' := by intros; ext; dsimp; apply right_unitor_naturality
+  pentagon' := by intros; ext; dsimp; apply pentagon
+  triangle' := by intros; ext; dsimp; apply triangle
 #align Mon_.Mon_monoidal Mon_.monMonoidal
 
 end Mon_
Diff
@@ -187,9 +187,7 @@ def isoOfIso {M N : Mon_ C} (f : M.pt β‰… N.pt) (one_f : M.one ≫ f.Hom = N.one
       mul_hom' := mul_f }
   inv :=
     { Hom := f.inv
-      one_hom' := by
-        rw [← one_f]
-        simp
+      one_hom' := by rw [← one_f]; simp
       mul_hom' := by
         rw [← cancel_mono f.hom]
         slice_rhs 2 3 => rw [mul_f]
@@ -200,12 +198,8 @@ instance uniqueHomFromTrivial (A : Mon_ C) : Unique (trivial C ⟢ A)
     where
   default :=
     { Hom := A.one
-      one_hom' := by
-        dsimp
-        simp
-      mul_hom' := by
-        dsimp
-        simp [A.one_mul, unitors_equal] }
+      one_hom' := by dsimp; simp
+      mul_hom' := by dsimp; simp [A.one_mul, unitors_equal] }
   uniq f := by
     ext; simp
     rw [← category.id_comp f.hom]
@@ -260,19 +254,13 @@ def mapMon (F : LaxMonoidalFunctor C D) : Mon_ C β₯€ Mon_ D
         simp only [category.assoc] }
   map A B f :=
     { Hom := F.map f.Hom
-      one_hom' := by
-        dsimp
-        rw [category.assoc, ← F.to_functor.map_comp, f.one_hom]
+      one_hom' := by dsimp; rw [category.assoc, ← F.to_functor.map_comp, f.one_hom]
       mul_hom' := by
         dsimp
         rw [category.assoc, F.ΞΌ_natural_assoc, ← F.to_functor.map_comp, ← F.to_functor.map_comp,
           f.mul_hom] }
-  map_id' A := by
-    ext
-    simp
-  map_comp' A B C f g := by
-    ext
-    simp
+  map_id' A := by ext; simp
+  map_comp' A B C f g := by ext; simp
 #align category_theory.lax_monoidal_functor.map_Mon CategoryTheory.LaxMonoidalFunctor.mapMon
 
 variable (C D)
@@ -313,9 +301,7 @@ def monToLaxMonoidal : Mon_ C β₯€ LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C
       map_comp' := fun _ _ _ _ _ => (Category.id_comp (πŸ™ A.pt)).symm }
   map A B f :=
     { app := fun _ => f.Hom
-      naturality' := fun _ _ _ => by
-        dsimp
-        rw [category.id_comp, category.comp_id]
+      naturality' := fun _ _ _ => by dsimp; rw [category.id_comp, category.comp_id]
       unit' := f.OneHom
       tensor' := fun _ _ => f.MulHom }
 #align Mon_.equiv_lax_monoidal_functor_punit.Mon_to_lax_monoidal Mon_.EquivLaxMonoidalFunctorPunit.monToLaxMonoidal
@@ -422,18 +408,14 @@ theorem one_associator {M N P : Mon_ C} :
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem one_leftUnitor {M : Mon_ C} :
-    ((Ξ»_ (πŸ™_ C)).inv ≫ (πŸ™ (πŸ™_ C) βŠ— M.one)) ≫ (Ξ»_ M.pt).Hom = M.one :=
-  by
-  slice_lhs 2 3 => rw [left_unitor_naturality]
-  simp
+    ((Ξ»_ (πŸ™_ C)).inv ≫ (πŸ™ (πŸ™_ C) βŠ— M.one)) ≫ (Ξ»_ M.pt).Hom = M.one := by
+  slice_lhs 2 3 => rw [left_unitor_naturality]; simp
 #align Mon_.one_left_unitor Mon_.one_leftUnitor
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem one_rightUnitor {M : Mon_ C} :
-    ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— πŸ™ (πŸ™_ C))) ≫ (ρ_ M.pt).Hom = M.one :=
-  by
-  slice_lhs 2 3 => rw [right_unitor_naturality, ← unitors_equal]
-  simp
+    ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— πŸ™ (πŸ™_ C))) ≫ (ρ_ M.pt).Hom = M.one := by
+  slice_lhs 2 3 => rw [right_unitor_naturality, ← unitors_equal]; simp
 #align Mon_.one_right_unitor Mon_.one_rightUnitor
 
 variable [BraidedCategory C]
@@ -574,43 +556,17 @@ instance monMonoidal : MonoidalCategory (Mon_ C)
         slice_rhs 1 2 => rw [tensor_ΞΌ_natural]
         slice_lhs 2 3 => rw [← tensor_comp, hom.mul_hom f, hom.mul_hom g, tensor_comp]
         simp only [category.assoc] }
-  tensor_id' := by
-    intros
-    ext
-    apply tensor_id
-  tensor_comp' := by
-    intros
-    ext
-    apply tensor_comp
+  tensor_id' := by intros ; ext; apply tensor_id
+  tensor_comp' := by intros ; ext; apply tensor_comp
   tensorUnit := trivial C
   associator M N P := isoOfIso (Ξ±_ M.pt N.pt P.pt) one_associator mul_associator
-  associator_naturality' := by
-    intros
-    ext
-    dsimp
-    apply associator_naturality
+  associator_naturality' := by intros ; ext; dsimp; apply associator_naturality
   leftUnitor M := isoOfIso (Ξ»_ M.pt) one_leftUnitor mul_leftUnitor
-  leftUnitor_naturality' := by
-    intros
-    ext
-    dsimp
-    apply left_unitor_naturality
+  leftUnitor_naturality' := by intros ; ext; dsimp; apply left_unitor_naturality
   rightUnitor M := isoOfIso (ρ_ M.pt) one_rightUnitor mul_rightUnitor
-  rightUnitor_naturality' := by
-    intros
-    ext
-    dsimp
-    apply right_unitor_naturality
-  pentagon' := by
-    intros
-    ext
-    dsimp
-    apply pentagon
-  triangle' := by
-    intros
-    ext
-    dsimp
-    apply triangle
+  rightUnitor_naturality' := by intros ; ext; dsimp; apply right_unitor_naturality
+  pentagon' := by intros ; ext; dsimp; apply pentagon
+  triangle' := by intros ; ext; dsimp; apply triangle
 #align Mon_.Mon_monoidal Mon_.monMonoidal
 
 end Mon_
Diff
@@ -60,10 +60,10 @@ restate_axiom Mon_.mul_one'
 
 restate_axiom Mon_.mul_assoc'
 
-attribute [reassoc.1] Mon_.one_mul Mon_.mul_one
+attribute [reassoc] Mon_.one_mul Mon_.mul_one
 
 -- We prove a more general `@[simp]` lemma below.
-attribute [simp, reassoc.1] Mon_.mul_assoc
+attribute [simp, reassoc] Mon_.mul_assoc
 
 namespace Mon_
 
@@ -114,7 +114,7 @@ restate_axiom hom.one_hom'
 
 restate_axiom hom.mul_hom'
 
-attribute [simp, reassoc.1] hom.one_hom hom.mul_hom
+attribute [simp, reassoc] hom.one_hom hom.mul_hom
 
 /-- The identity morphism on a monoid object. -/
 @[simps]
Diff
@@ -42,7 +42,7 @@ variable (C : Type u₁) [Category.{v₁} C] [MonoidalCategory.{v₁} C]
 When the monoidal category is preadditive, this is also sometimes called an "algebra object".
 -/
 structure Mon_ where
-  x : C
+  pt : C
   one : πŸ™_ C ⟢ X
   mul : X βŠ— X ⟢ X
   one_mul' : (one βŠ— πŸ™ X) ≫ mul = (Ξ»_ X).Hom := by obviously
@@ -71,7 +71,7 @@ namespace Mon_
 -/
 @[simps]
 def trivial : Mon_ C where
-  x := πŸ™_ C
+  pt := πŸ™_ C
   one := πŸ™ _
   mul := (Ξ»_ _).Hom
   mul_assoc' := by coherence
@@ -85,27 +85,27 @@ variable {C} {M : Mon_ C}
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 @[simp]
-theorem one_mul_hom {Z : C} (f : Z ⟢ M.x) : (M.one βŠ— f) ≫ M.mul = (Ξ»_ Z).Hom ≫ f := by
+theorem one_mul_hom {Z : C} (f : Z ⟢ M.pt) : (M.one βŠ— f) ≫ M.mul = (Ξ»_ Z).Hom ≫ f := by
   rw [← id_tensor_comp_tensor_id, category.assoc, M.one_mul, left_unitor_naturality]
 #align Mon_.one_mul_hom Mon_.one_mul_hom
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 @[simp]
-theorem mul_one_hom {Z : C} (f : Z ⟢ M.x) : (f βŠ— M.one) ≫ M.mul = (ρ_ Z).Hom ≫ f := by
+theorem mul_one_hom {Z : C} (f : Z ⟢ M.pt) : (f βŠ— M.one) ≫ M.mul = (ρ_ Z).Hom ≫ f := by
   rw [← tensor_id_comp_id_tensor, category.assoc, M.mul_one, right_unitor_naturality]
 #align Mon_.mul_one_hom Mon_.mul_one_hom
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
-theorem assoc_flip : (πŸ™ M.x βŠ— M.mul) ≫ M.mul = (Ξ±_ M.x M.x M.x).inv ≫ (M.mul βŠ— πŸ™ M.x) ≫ M.mul := by
-  simp
+theorem assoc_flip :
+    (πŸ™ M.pt βŠ— M.mul) ≫ M.mul = (Ξ±_ M.pt M.pt M.pt).inv ≫ (M.mul βŠ— πŸ™ M.pt) ≫ M.mul := by simp
 #align Mon_.assoc_flip Mon_.assoc_flip
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /-- A morphism of monoid objects. -/
 @[ext]
 structure Hom (M N : Mon_ C) where
-  Hom : M.x ⟢ N.x
+  Hom : M.pt ⟢ N.pt
   one_hom' : M.one ≫ hom = N.one := by obviously
   mul_hom' : M.mul ≫ hom = (hom βŠ— hom) ≫ N.mul := by obviously
 #align Mon_.hom Mon_.Hom
@@ -118,7 +118,7 @@ attribute [simp, reassoc.1] hom.one_hom hom.mul_hom
 
 /-- The identity morphism on a monoid object. -/
 @[simps]
-def id (M : Mon_ C) : Hom M M where Hom := πŸ™ M.x
+def id (M : Mon_ C) : Hom M M where Hom := πŸ™ M.pt
 #align Mon_.id Mon_.id
 
 instance homInhabited (M : Mon_ C) : Inhabited (Hom M M) :=
@@ -136,7 +136,7 @@ instance : Category (Mon_ C) where
   comp M N O f g := comp f g
 
 @[simp]
-theorem id_hom' (M : Mon_ C) : (πŸ™ M : Hom M M).Hom = πŸ™ M.x :=
+theorem id_hom' (M : Mon_ C) : (πŸ™ M : Hom M M).Hom = πŸ™ M.pt :=
   rfl
 #align Mon_.id_hom' Mon_.id_hom'
 
@@ -153,7 +153,7 @@ variable (C)
 /-- The forgetful functor from monoid objects to the ambient category. -/
 @[simps]
 def forget : Mon_ C β₯€ C where
-  obj A := A.x
+  obj A := A.pt
   map A B f := f.Hom
 #align Mon_.forget Mon_.forget
 
@@ -178,7 +178,7 @@ instance : ReflectsIsomorphisms (forget C)
 /-- Construct an isomorphism of monoids by giving an isomorphism between the underlying objects
 and checking compatibility with unit and multiplication only in the forward direction.
 -/
-def isoOfIso {M N : Mon_ C} (f : M.x β‰… N.x) (one_f : M.one ≫ f.Hom = N.one)
+def isoOfIso {M N : Mon_ C} (f : M.pt β‰… N.pt) (one_f : M.one ≫ f.Hom = N.one)
     (mul_f : M.mul ≫ f.Hom = (f.Hom βŠ— f.Hom) ≫ N.mul) : M β‰… N
     where
   Hom :=
@@ -232,7 +232,7 @@ That is, a lax monoidal functor `F : C β₯€ D` induces a functor `Mon_ C β₯€ Mon_
 def mapMon (F : LaxMonoidalFunctor C D) : Mon_ C β₯€ Mon_ D
     where
   obj A :=
-    { x := F.obj A.x
+    { pt := F.obj A.pt
       one := F.Ξ΅ ≫ F.map A.one
       mul := F.ΞΌ _ _ ≫ F.map A.mul
       one_mul' := by
@@ -281,7 +281,7 @@ variable (C D)
 def mapMonFunctor : LaxMonoidalFunctor C D β₯€ Mon_ C β₯€ Mon_ D
     where
   obj := mapMon
-  map F G Ξ± := { app := fun A => { Hom := Ξ±.app A.x } }
+  map F G Ξ± := { app := fun A => { Hom := Ξ±.app A.pt } }
 #align category_theory.lax_monoidal_functor.map_Mon_functor CategoryTheory.LaxMonoidalFunctor.mapMonFunctor
 
 end CategoryTheory.LaxMonoidalFunctor
@@ -305,12 +305,12 @@ def laxMonoidalToMon : LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C β₯€ Mon_ C
 def monToLaxMonoidal : Mon_ C β₯€ LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C
     where
   obj A :=
-    { obj := fun _ => A.x
+    { obj := fun _ => A.pt
       map := fun _ _ _ => πŸ™ _
       Ξ΅ := A.one
       ΞΌ := fun _ _ => A.mul
       map_id' := fun _ => rfl
-      map_comp' := fun _ _ _ _ _ => (Category.id_comp (πŸ™ A.x)).symm }
+      map_comp' := fun _ _ _ _ _ => (Category.id_comp (πŸ™ A.pt)).symm }
   map A B f :=
     { app := fun _ => f.Hom
       naturality' := fun _ _ _ => by
@@ -407,7 +407,7 @@ variable {C}
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 -- The proofs that associators and unitors preserve monoid units don't require braiding.
 theorem one_associator {M N P : Mon_ C} :
-    ((Ξ»_ (πŸ™_ C)).inv ≫ ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one) βŠ— P.one)) ≫ (Ξ±_ M.x N.x P.x).Hom =
+    ((Ξ»_ (πŸ™_ C)).inv ≫ ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one) βŠ— P.one)) ≫ (Ξ±_ M.pt N.pt P.pt).Hom =
       (Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— (Ξ»_ (πŸ™_ C)).inv ≫ (N.one βŠ— P.one)) :=
   by
   simp
@@ -422,7 +422,7 @@ theorem one_associator {M N P : Mon_ C} :
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem one_leftUnitor {M : Mon_ C} :
-    ((Ξ»_ (πŸ™_ C)).inv ≫ (πŸ™ (πŸ™_ C) βŠ— M.one)) ≫ (Ξ»_ M.x).Hom = M.one :=
+    ((Ξ»_ (πŸ™_ C)).inv ≫ (πŸ™ (πŸ™_ C) βŠ— M.one)) ≫ (Ξ»_ M.pt).Hom = M.one :=
   by
   slice_lhs 2 3 => rw [left_unitor_naturality]
   simp
@@ -430,7 +430,7 @@ theorem one_leftUnitor {M : Mon_ C} :
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem one_rightUnitor {M : Mon_ C} :
-    ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— πŸ™ (πŸ™_ C))) ≫ (ρ_ M.x).Hom = M.one :=
+    ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— πŸ™ (πŸ™_ C))) ≫ (ρ_ M.pt).Hom = M.one :=
   by
   slice_lhs 2 3 => rw [right_unitor_naturality, ← unitors_equal]
   simp
@@ -445,9 +445,9 @@ variable [BraidedCategory C]
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem Mon_tensor_one_mul (M N : Mon_ C) :
-    ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one) βŠ— πŸ™ (M.x βŠ— N.x)) ≫
-        tensorΞΌ C (M.x, N.x) (M.x, N.x) ≫ (M.mul βŠ— N.mul) =
-      (Ξ»_ (M.x βŠ— N.x)).Hom :=
+    ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one) βŠ— πŸ™ (M.pt βŠ— N.pt)) ≫
+        tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) =
+      (Ξ»_ (M.pt βŠ— N.pt)).Hom :=
   by
   rw [← category.id_comp (πŸ™ (M.X βŠ— N.X)), tensor_comp]
   slice_lhs 2 3 => rw [← tensor_id, tensor_ΞΌ_natural]
@@ -463,9 +463,9 @@ theorem Mon_tensor_one_mul (M N : Mon_ C) :
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem Mon_tensor_mul_one (M N : Mon_ C) :
-    (πŸ™ (M.x βŠ— N.x) βŠ— (Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one)) ≫
-        tensorΞΌ C (M.x, N.x) (M.x, N.x) ≫ (M.mul βŠ— N.mul) =
-      (ρ_ (M.x βŠ— N.x)).Hom :=
+    (πŸ™ (M.pt βŠ— N.pt) βŠ— (Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one)) ≫
+        tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) =
+      (ρ_ (M.pt βŠ— N.pt)).Hom :=
   by
   rw [← category.id_comp (πŸ™ (M.X βŠ— N.X)), tensor_comp]
   slice_lhs 2 3 => rw [← tensor_id, tensor_ΞΌ_natural]
@@ -487,11 +487,11 @@ theorem Mon_tensor_mul_one (M N : Mon_ C) :
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem Mon_tensor_mul_assoc (M N : Mon_ C) :
-    (tensorΞΌ C (M.x, N.x) (M.x, N.x) ≫ (M.mul βŠ— N.mul) βŠ— πŸ™ (M.x βŠ— N.x)) ≫
-        tensorΞΌ C (M.x, N.x) (M.x, N.x) ≫ (M.mul βŠ— N.mul) =
-      (Ξ±_ (M.x βŠ— N.x) (M.x βŠ— N.x) (M.x βŠ— N.x)).Hom ≫
-        (πŸ™ (M.x βŠ— N.x) βŠ— tensorΞΌ C (M.x, N.x) (M.x, N.x) ≫ (M.mul βŠ— N.mul)) ≫
-          tensorΞΌ C (M.x, N.x) (M.x, N.x) ≫ (M.mul βŠ— N.mul) :=
+    (tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) βŠ— πŸ™ (M.pt βŠ— N.pt)) ≫
+        tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) =
+      (Ξ±_ (M.pt βŠ— N.pt) (M.pt βŠ— N.pt) (M.pt βŠ— N.pt)).Hom ≫
+        (πŸ™ (M.pt βŠ— N.pt) βŠ— tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul)) ≫
+          tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) :=
   by
   rw [← category.id_comp (πŸ™ (M.X βŠ— N.X)), tensor_comp]
   slice_lhs 2 3 => rw [← tensor_id, tensor_ΞΌ_natural]
@@ -512,12 +512,12 @@ theorem Mon_tensor_mul_assoc (M N : Mon_ C) :
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem mul_associator {M N P : Mon_ C} :
-    (tensorΞΌ C (M.x βŠ— N.x, P.x) (M.x βŠ— N.x, P.x) ≫
-          (tensorΞΌ C (M.x, N.x) (M.x, N.x) ≫ (M.mul βŠ— N.mul) βŠ— P.mul)) ≫
-        (Ξ±_ M.x N.x P.x).Hom =
-      ((Ξ±_ M.x N.x P.x).Hom βŠ— (Ξ±_ M.x N.x P.x).Hom) ≫
-        tensorΞΌ C (M.x, N.x βŠ— P.x) (M.x, N.x βŠ— P.x) ≫
-          (M.mul βŠ— tensorΞΌ C (N.x, P.x) (N.x, P.x) ≫ (N.mul βŠ— P.mul)) :=
+    (tensorΞΌ C (M.pt βŠ— N.pt, P.pt) (M.pt βŠ— N.pt, P.pt) ≫
+          (tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul) βŠ— P.mul)) ≫
+        (Ξ±_ M.pt N.pt P.pt).Hom =
+      ((Ξ±_ M.pt N.pt P.pt).Hom βŠ— (Ξ±_ M.pt N.pt P.pt).Hom) ≫
+        tensorΞΌ C (M.pt, N.pt βŠ— P.pt) (M.pt, N.pt βŠ— P.pt) ≫
+          (M.mul βŠ— tensorΞΌ C (N.pt, P.pt) (N.pt, P.pt) ≫ (N.mul βŠ— P.mul)) :=
   by
   simp
   slice_lhs 2 3 => rw [← category.id_comp P.mul, tensor_comp]
@@ -530,8 +530,8 @@ theorem mul_associator {M N P : Mon_ C} :
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem mul_leftUnitor {M : Mon_ C} :
-    (tensorΞΌ C (πŸ™_ C, M.x) (πŸ™_ C, M.x) ≫ ((Ξ»_ (πŸ™_ C)).Hom βŠ— M.mul)) ≫ (Ξ»_ M.x).Hom =
-      ((Ξ»_ M.x).Hom βŠ— (Ξ»_ M.x).Hom) ≫ M.mul :=
+    (tensorΞΌ C (πŸ™_ C, M.pt) (πŸ™_ C, M.pt) ≫ ((Ξ»_ (πŸ™_ C)).Hom βŠ— M.mul)) ≫ (Ξ»_ M.pt).Hom =
+      ((Ξ»_ M.pt).Hom βŠ— (Ξ»_ M.pt).Hom) ≫ M.mul :=
   by
   rw [← category.comp_id (Ξ»_ (πŸ™_ C)).Hom, ← category.id_comp M.mul, tensor_comp]
   slice_lhs 3 4 => rw [left_unitor_naturality]
@@ -542,8 +542,8 @@ theorem mul_leftUnitor {M : Mon_ C} :
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 theorem mul_rightUnitor {M : Mon_ C} :
-    (tensorΞΌ C (M.x, πŸ™_ C) (M.x, πŸ™_ C) ≫ (M.mul βŠ— (Ξ»_ (πŸ™_ C)).Hom)) ≫ (ρ_ M.x).Hom =
-      ((ρ_ M.x).Hom βŠ— (ρ_ M.x).Hom) ≫ M.mul :=
+    (tensorΞΌ C (M.pt, πŸ™_ C) (M.pt, πŸ™_ C) ≫ (M.mul βŠ— (Ξ»_ (πŸ™_ C)).Hom)) ≫ (ρ_ M.pt).Hom =
+      ((ρ_ M.pt).Hom βŠ— (ρ_ M.pt).Hom) ≫ M.mul :=
   by
   rw [← category.id_comp M.mul, ← category.comp_id (Ξ»_ (πŸ™_ C)).Hom, tensor_comp]
   slice_lhs 3 4 => rw [right_unitor_naturality]
@@ -558,9 +558,9 @@ theorem mul_rightUnitor {M : Mon_ C} :
 instance monMonoidal : MonoidalCategory (Mon_ C)
     where
   tensorObj M N :=
-    { x := M.x βŠ— N.x
+    { pt := M.pt βŠ— N.pt
       one := (Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one)
-      mul := tensorΞΌ C (M.x, N.x) (M.x, N.x) ≫ (M.mul βŠ— N.mul)
+      mul := tensorΞΌ C (M.pt, N.pt) (M.pt, N.pt) ≫ (M.mul βŠ— N.mul)
       one_mul' := Mon_tensor_one_mul M N
       mul_one' := Mon_tensor_mul_one M N
       mul_assoc' := Mon_tensor_mul_assoc M N }
@@ -583,19 +583,19 @@ instance monMonoidal : MonoidalCategory (Mon_ C)
     ext
     apply tensor_comp
   tensorUnit := trivial C
-  associator M N P := isoOfIso (Ξ±_ M.x N.x P.x) one_associator mul_associator
+  associator M N P := isoOfIso (Ξ±_ M.pt N.pt P.pt) one_associator mul_associator
   associator_naturality' := by
     intros
     ext
     dsimp
     apply associator_naturality
-  leftUnitor M := isoOfIso (Ξ»_ M.x) one_leftUnitor mul_leftUnitor
+  leftUnitor M := isoOfIso (Ξ»_ M.pt) one_leftUnitor mul_leftUnitor
   leftUnitor_naturality' := by
     intros
     ext
     dsimp
     apply left_unitor_naturality
-  rightUnitor M := isoOfIso (ρ_ M.x) one_rightUnitor mul_rightUnitor
+  rightUnitor M := isoOfIso (ρ_ M.pt) one_rightUnitor mul_rightUnitor
   rightUnitor_naturality' := by
     intros
     ext

Changes in mathlib4

mathlib3
mathlib4
chore(CategoryTheory): move Full, Faithful, EssSurj, IsEquivalence and ReflectsIsomorphisms to the Functor namespace (#11985)

These notions on functors are now Functor.Full, Functor.Faithful, Functor.EssSurj, Functor.IsEquivalence, Functor.ReflectsIsomorphisms. Deprecated aliases are introduced for the previous names.

Diff
@@ -145,14 +145,14 @@ def forget : Mon_ C β₯€ C where
 
 end
 
-instance forget_faithful : Faithful (@forget C _ _) where
+instance forget_faithful : (forget C).Faithful where
 #align Mon_.forget_faithful Mon_.forget_faithful
 
 instance {A B : Mon_ C} (f : A ⟢ B) [e : IsIso ((forget C).map f)] : IsIso f.hom :=
   e
 
 /-- The forgetful functor from monoid objects to the ambient category reflects isomorphisms. -/
-instance : ReflectsIsomorphisms (forget C) where
+instance : (forget C).ReflectsIsomorphisms where
   reflects f e :=
     ⟨⟨{ hom := inv f.hom
         mul_hom := by
feat: the opposite of a braided category is braided (#10095)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 -/
-import Mathlib.CategoryTheory.Monoidal.Braided
+import Mathlib.CategoryTheory.Monoidal.Braided.Basic
 import Mathlib.CategoryTheory.Monoidal.Discrete
 import Mathlib.CategoryTheory.Monoidal.CoherenceLemmas
 import Mathlib.CategoryTheory.Limits.Shapes.Terminal
feat(CategoryTheory/Monoidal): replace πŸ™ X βŠ— f with X ◁ f (#10912)

We set id_tensorHom and tensorHom_id as simp lemmas. Partially extracted from #6307.

Diff
@@ -73,12 +73,12 @@ variable {M : Mon_ C}
 
 @[simp]
 theorem one_mul_hom {Z : C} (f : Z ⟢ M.X) : (M.one βŠ— f) ≫ M.mul = (Ξ»_ Z).hom ≫ f := by
-  rw [tensorHom_def'_assoc, M.one_mul, leftUnitor_naturality']
+  rw [tensorHom_def'_assoc, M.one_mul, leftUnitor_naturality]
 #align Mon_.one_mul_hom Mon_.one_mul_hom
 
 @[simp]
 theorem mul_one_hom {Z : C} (f : Z ⟢ M.X) : (f βŠ— M.one) ≫ M.mul = (ρ_ Z).hom ≫ f := by
-  rw [tensorHom_def_assoc, M.mul_one, rightUnitor_naturality']
+  rw [tensorHom_def_assoc, M.mul_one, rightUnitor_naturality]
 #align Mon_.mul_one_hom Mon_.mul_one_hom
 
 theorem assoc_flip :
@@ -163,6 +163,7 @@ instance : ReflectsIsomorphisms (forget C) where
 /-- Construct an isomorphism of monoids by giving an isomorphism between the underlying objects
 and checking compatibility with unit and multiplication only in the forward direction.
 -/
+@[simps]
 def isoOfIso {M N : Mon_ C} (f : M.X β‰… N.X) (one_f : M.one ≫ f.hom = N.one)
     (mul_f : M.mul ≫ f.hom = (f.hom βŠ— f.hom) ≫ N.mul) : M β‰… N where
   hom :=
@@ -212,15 +213,15 @@ def mapMon (F : LaxMonoidalFunctor C D) : Mon_ C β₯€ Mon_ D where
       one := F.Ξ΅ ≫ F.map A.one
       mul := F.ΞΌ _ _ ≫ F.map A.mul
       one_mul := by
-        simp only [comp_whiskerRight, Category.assoc, ΞΌ_natural_left'_assoc, left_unitality']
+        simp only [comp_whiskerRight, Category.assoc, ΞΌ_natural_left_assoc, left_unitality]
         slice_lhs 3 4 => rw [← F.toFunctor.map_comp, A.one_mul]
       mul_one := by
-        simp only [MonoidalCategory.whiskerLeft_comp, Category.assoc, ΞΌ_natural_right'_assoc,
-          right_unitality']
+        simp only [MonoidalCategory.whiskerLeft_comp, Category.assoc, ΞΌ_natural_right_assoc,
+          right_unitality]
         slice_lhs 3 4 => rw [← F.toFunctor.map_comp, A.mul_one]
       mul_assoc := by
-        simp only [comp_whiskerRight, Category.assoc, ΞΌ_natural_left'_assoc,
-          MonoidalCategory.whiskerLeft_comp, ΞΌ_natural_right'_assoc]
+        simp only [comp_whiskerRight, Category.assoc, ΞΌ_natural_left_assoc,
+          MonoidalCategory.whiskerLeft_comp, ΞΌ_natural_right_assoc]
         slice_lhs 3 4 => rw [← F.toFunctor.map_comp, A.mul_assoc]
         simp }
   map f :=
@@ -258,8 +259,6 @@ def laxMonoidalToMon : LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C β₯€ Mon_ C
   map Ξ± := ((mapMonFunctor (Discrete PUnit) C).map Ξ±).app _
 #align Mon_.equiv_lax_monoidal_functor_punit.lax_monoidal_to_Mon Mon_.EquivLaxMonoidalFunctorPUnit.laxMonoidalToMon
 
-attribute [local simp] id_tensorHom tensorHom_id
-
 /-- Implementation of `Mon_.equivLaxMonoidalFunctorPUnit`. -/
 @[simps]
 def monToLaxMonoidal : Mon_ C β₯€ LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C where
@@ -377,14 +376,12 @@ theorem one_associator {M N P : Mon_ C} :
   slice_lhs 1 3 => rw [← Category.id_comp P.one, tensor_comp]
   slice_lhs 2 3 => rw [associator_naturality]
   slice_rhs 1 2 => rw [← Category.id_comp M.one, tensor_comp]
-  slice_lhs 1 2 => rw [← leftUnitor_tensor_inv]
+  slice_lhs 1 2 => rw [tensorHom_id, ← leftUnitor_tensor_inv]
   rw [← cancel_epi (Ξ»_ (πŸ™_ C)).inv]
   slice_lhs 1 2 => rw [leftUnitor_inv_naturality]
   simp
 #align Mon_.one_associator Mon_.one_associator
 
-attribute [local simp] id_tensorHom tensorHom_id
-
 theorem one_leftUnitor {M : Mon_ C} :
     ((Ξ»_ (πŸ™_ C)).inv ≫ (πŸ™ (πŸ™_ C) βŠ— M.one)) ≫ (Ξ»_ M.X).hom = M.one := by
   simp
@@ -454,7 +451,7 @@ theorem mul_leftUnitor {M : Mon_ C} :
       ((Ξ»_ M.X).hom βŠ— (Ξ»_ M.X).hom) ≫ M.mul := by
   rw [← Category.comp_id (Ξ»_ (πŸ™_ C)).hom, ← Category.id_comp M.mul, tensor_comp]
   simp only [tensorHom_id, id_tensorHom]
-  slice_lhs 3 4 => rw [leftUnitor_naturality']
+  slice_lhs 3 4 => rw [leftUnitor_naturality]
   slice_lhs 1 3 => rw [← leftUnitor_monoidal]
   simp only [Category.assoc, Category.id_comp]
 #align Mon_.mul_left_unitor Mon_.mul_leftUnitor
@@ -464,7 +461,7 @@ theorem mul_rightUnitor {M : Mon_ C} :
       ((ρ_ M.X).hom βŠ— (ρ_ M.X).hom) ≫ M.mul := by
   rw [← Category.id_comp M.mul, ← Category.comp_id (Ξ»_ (πŸ™_ C)).hom, tensor_comp]
   simp only [tensorHom_id, id_tensorHom]
-  slice_lhs 3 4 => rw [rightUnitor_naturality']
+  slice_lhs 3 4 => rw [rightUnitor_naturality]
   slice_lhs 1 3 => rw [← rightUnitor_monoidal]
   simp only [Category.assoc, Category.id_comp]
 #align Mon_.mul_right_unitor Mon_.mul_rightUnitor
chore: bump aesop; update syntax (#10955)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -277,7 +277,7 @@ def monToLaxMonoidal : Mon_ C β₯€ LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C
       tensor := fun _ _ => f.mul_hom }
 #align Mon_.equiv_lax_monoidal_functor_punit.Mon_to_lax_monoidal Mon_.EquivLaxMonoidalFunctorPUnit.monToLaxMonoidal
 
-attribute [local aesop safe tactic (rule_sets [CategoryTheory])]
+attribute [local aesop safe tactic (rule_sets := [CategoryTheory])]
   CategoryTheory.Discrete.discreteCases
 
 attribute [local simp] eqToIso_map
feat(CategoryTheory/Monoidal/Mon_): add simp lemmas (#10905)
Diff
@@ -469,6 +469,7 @@ theorem mul_rightUnitor {M : Mon_ C} :
   simp only [Category.assoc, Category.id_comp]
 #align Mon_.mul_right_unitor Mon_.mul_rightUnitor
 
+@[simps tensorObj_X tensorHom_hom]
 instance monMonoidalStruct : MonoidalCategoryStruct (Mon_ C) :=
   let tensorObj (M N : Mon_ C) : Mon_ C :=
     { X := M.X βŠ— N.X
@@ -497,14 +498,39 @@ instance monMonoidalStruct : MonoidalCategoryStruct (Mon_ C) :=
     leftUnitor := fun M ↦ isoOfIso (Ξ»_ M.X) one_leftUnitor mul_leftUnitor
     rightUnitor := fun M ↦ isoOfIso (ρ_ M.X) one_rightUnitor mul_rightUnitor }
 
-instance monMonoidal : MonoidalCategory (Mon_ C) := .ofTensorHom
-  (tensor_id := by intros; ext; apply tensor_id)
-  (tensor_comp := by intros; ext; apply tensor_comp)
-  (associator_naturality := by intros; ext; dsimp; apply associator_naturality)
-  (leftUnitor_naturality := by intros; ext; dsimp; apply leftUnitor_naturality)
-  (rightUnitor_naturality := by intros; ext; dsimp; apply rightUnitor_naturality)
-  (pentagon := by intros; ext; dsimp; apply pentagon)
-  (triangle := by intros; ext; dsimp; apply triangle)
+@[simp]
+theorem tensorUnit_X : (πŸ™_ (Mon_ C)).X = πŸ™_ C := rfl
+
+@[simp]
+theorem whiskerLeft_hom {X Y : Mon_ C} (f : X ⟢ Y) (Z : Mon_ C) :
+    (f β–· Z).hom = f.hom β–· Z.X := by
+  rw [← tensorHom_id]; rfl
+
+@[simp]
+theorem whiskerRight_hom (X : Mon_ C) {Y Z : Mon_ C} (f : Y ⟢ Z) :
+    (X ◁ f).hom = X.X ◁ f.hom := by
+  rw [← id_tensorHom]; rfl
+
+@[simp]
+theorem leftUnitor_hom_hom (X : Mon_ C) : (Ξ»_ X).hom.hom = (Ξ»_ X.X).hom := rfl
+
+@[simp]
+theorem leftUnitor_inv_hom (X : Mon_ C) : (Ξ»_ X).inv.hom = (Ξ»_ X.X).inv := rfl
+
+@[simp]
+theorem rightUnitor_hom_hom (X : Mon_ C) : (ρ_ X).hom.hom = (ρ_ X.X).hom := rfl
+
+@[simp]
+theorem rightUnitor_inv_hom (X : Mon_ C) : (ρ_ X).inv.hom = (ρ_ X.X).inv := rfl
+
+@[simp]
+theorem associator_hom_hom (X Y Z : Mon_ C) : (Ξ±_ X Y Z).hom.hom = (Ξ±_ X.X Y.X Z.X).hom := rfl
+
+@[simp]
+theorem associator_inv_hom (X Y Z : Mon_ C) : (Ξ±_ X Y Z).inv.hom = (Ξ±_ X.X Y.X Z.X).inv := rfl
+
+instance monMonoidal : MonoidalCategory (Mon_ C) where
+  tensorHom_def := by intros; ext; simp [tensorHom_def]
 #align Mon_.Mon_monoidal Mon_.monMonoidal
 
 end Mon_
feat(CategoryTheory/Functor): definition of Kan extensions (#10195)

This PR introduces basic definitions for Kan extensions of functors. It prepares for future development of derived functors and a refactor of the file CategoryTheory.Limits.KanExtension.

Co-authored-by: JoΓ«l Riou <37772949+joelriou@users.noreply.github.com>

Diff
@@ -412,7 +412,7 @@ theorem Mon_tensor_mul_one (M N : Mon_ C) :
     (M.X βŠ— N.X) ◁ ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one)) ≫
         tensor_ΞΌ C (M.X, N.X) (M.X, N.X) ≫ (M.mul βŠ— N.mul) =
       (ρ_ (M.X βŠ— N.X)).hom := by
-  simp only [whiskerLeft_comp_assoc]
+  simp only [MonoidalCategory.whiskerLeft_comp_assoc]
   slice_lhs 2 3 => rw [tensor_ΞΌ_natural_right]
   slice_lhs 3 4 => rw [← tensor_comp, mul_one M, mul_one N]
   symm
@@ -425,7 +425,7 @@ theorem Mon_tensor_mul_assoc (M N : Mon_ C) :
       (Ξ±_ (M.X βŠ— N.X) (M.X βŠ— N.X) (M.X βŠ— N.X)).hom ≫
         ((M.X βŠ— N.X) ◁ (tensor_ΞΌ C (M.X, N.X) (M.X, N.X) ≫ (M.mul βŠ— N.mul))) ≫
           tensor_ΞΌ C (M.X, N.X) (M.X, N.X) ≫ (M.mul βŠ— N.mul) := by
-  simp only [comp_whiskerRight_assoc, whiskerLeft_comp_assoc]
+  simp only [comp_whiskerRight_assoc, MonoidalCategory.whiskerLeft_comp_assoc]
   slice_lhs 2 3 => rw [tensor_ΞΌ_natural_left]
   slice_lhs 3 4 => rw [← tensor_comp, mul_assoc M, mul_assoc N, tensor_comp, tensor_comp]
   slice_lhs 1 3 => rw [tensor_associativity]
refactor(CategoryTheory/Monoidal/Braided): use monoidalComp in the proofs (#10078)
Diff
@@ -36,17 +36,19 @@ structure Mon_ where
   X : C
   one : πŸ™_ C ⟢ X
   mul : X βŠ— X ⟢ X
-  one_mul : (one βŠ— πŸ™ X) ≫ mul = (Ξ»_ X).hom := by aesop_cat
-  mul_one : (πŸ™ X βŠ— one) ≫ mul = (ρ_ X).hom := by aesop_cat
+  one_mul : (one β–· X) ≫ mul = (Ξ»_ X).hom := by aesop_cat
+  mul_one : (X ◁ one) ≫ mul = (ρ_ X).hom := by aesop_cat
   -- Obviously there is some flexibility stating this axiom.
   -- This one has left- and right-hand sides matching the statement of `Monoid.mul_assoc`,
   -- and chooses to place the associator on the right-hand side.
   -- The heuristic is that unitors and associators "don't have much weight".
-  mul_assoc : (mul βŠ— πŸ™ X) ≫ mul = (Ξ±_ X X X).hom ≫ (πŸ™ X βŠ— mul) ≫ mul := by aesop_cat
+  mul_assoc : (mul β–· X) ≫ mul = (Ξ±_ X X X).hom ≫ (X ◁ mul) ≫ mul := by aesop_cat
 #align Mon_ Mon_
 
 attribute [reassoc] Mon_.one_mul Mon_.mul_one
 
+attribute [simp] Mon_.one_mul Mon_.mul_one
+
 -- We prove a more general `@[simp]` lemma below.
 attribute [reassoc (attr := simp)] Mon_.mul_assoc
 
@@ -71,16 +73,16 @@ variable {M : Mon_ C}
 
 @[simp]
 theorem one_mul_hom {Z : C} (f : Z ⟢ M.X) : (M.one βŠ— f) ≫ M.mul = (Ξ»_ Z).hom ≫ f := by
-  rw [← id_tensor_comp_tensor_id, Category.assoc, M.one_mul, leftUnitor_naturality]
+  rw [tensorHom_def'_assoc, M.one_mul, leftUnitor_naturality']
 #align Mon_.one_mul_hom Mon_.one_mul_hom
 
 @[simp]
 theorem mul_one_hom {Z : C} (f : Z ⟢ M.X) : (f βŠ— M.one) ≫ M.mul = (ρ_ Z).hom ≫ f := by
-  rw [← tensor_id_comp_id_tensor, Category.assoc, M.mul_one, rightUnitor_naturality]
+  rw [tensorHom_def_assoc, M.mul_one, rightUnitor_naturality']
 #align Mon_.mul_one_hom Mon_.mul_one_hom
 
 theorem assoc_flip :
-    (πŸ™ M.X βŠ— M.mul) ≫ M.mul = (Ξ±_ M.X M.X M.X).inv ≫ (M.mul βŠ— πŸ™ M.X) ≫ M.mul := by simp
+    (M.X ◁ M.mul) ≫ M.mul = (Ξ±_ M.X M.X M.X).inv ≫ (M.mul β–· M.X) ≫ M.mul := by simp
 #align Mon_.assoc_flip Mon_.assoc_flip
 
 /-- A morphism of monoid objects. -/
@@ -210,28 +212,17 @@ def mapMon (F : LaxMonoidalFunctor C D) : Mon_ C β₯€ Mon_ D where
       one := F.Ξ΅ ≫ F.map A.one
       mul := F.ΞΌ _ _ ≫ F.map A.mul
       one_mul := by
-        conv_lhs => rw [comp_tensor_id, ← F.toFunctor.map_id]
-        slice_lhs 2 3 => rw [F.ΞΌ_natural]
+        simp only [comp_whiskerRight, Category.assoc, ΞΌ_natural_left'_assoc, left_unitality']
         slice_lhs 3 4 => rw [← F.toFunctor.map_comp, A.one_mul]
-        rw [F.toFunctor.map_id]
-        rw [F.left_unitality]
       mul_one := by
-        conv_lhs => rw [id_tensor_comp, ← F.toFunctor.map_id]
-        slice_lhs 2 3 => rw [F.ΞΌ_natural]
+        simp only [MonoidalCategory.whiskerLeft_comp, Category.assoc, ΞΌ_natural_right'_assoc,
+          right_unitality']
         slice_lhs 3 4 => rw [← F.toFunctor.map_comp, A.mul_one]
-        rw [F.toFunctor.map_id]
-        rw [F.right_unitality]
       mul_assoc := by
-        conv_lhs => rw [comp_tensor_id, ← F.toFunctor.map_id]
-        slice_lhs 2 3 => rw [F.ΞΌ_natural]
+        simp only [comp_whiskerRight, Category.assoc, ΞΌ_natural_left'_assoc,
+          MonoidalCategory.whiskerLeft_comp, ΞΌ_natural_right'_assoc]
         slice_lhs 3 4 => rw [← F.toFunctor.map_comp, A.mul_assoc]
-        conv_lhs => rw [F.toFunctor.map_id]
-        conv_lhs => rw [F.toFunctor.map_comp, F.toFunctor.map_comp]
-        conv_rhs => rw [id_tensor_comp, ← F.toFunctor.map_id]
-        slice_rhs 3 4 => rw [F.ΞΌ_natural]
-        conv_rhs => rw [F.toFunctor.map_id]
-        slice_rhs 1 3 => rw [← F.associativity]
-        simp only [Category.assoc] }
+        simp }
   map f :=
     { hom := F.map f.hom
       one_hom := by dsimp; rw [Category.assoc, ← F.toFunctor.map_comp, f.one_hom]
@@ -267,6 +258,8 @@ def laxMonoidalToMon : LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C β₯€ Mon_ C
   map Ξ± := ((mapMonFunctor (Discrete PUnit) C).map Ξ±).app _
 #align Mon_.equiv_lax_monoidal_functor_punit.lax_monoidal_to_Mon Mon_.EquivLaxMonoidalFunctorPUnit.laxMonoidalToMon
 
+attribute [local simp] id_tensorHom tensorHom_id
+
 /-- Implementation of `Mon_.equivLaxMonoidalFunctorPUnit`. -/
 @[simps]
 def monToLaxMonoidal : Mon_ C β₯€ LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C where
@@ -387,59 +380,57 @@ theorem one_associator {M N P : Mon_ C} :
   slice_lhs 1 2 => rw [← leftUnitor_tensor_inv]
   rw [← cancel_epi (Ξ»_ (πŸ™_ C)).inv]
   slice_lhs 1 2 => rw [leftUnitor_inv_naturality]
-  simp only [Category.assoc]
+  simp
 #align Mon_.one_associator Mon_.one_associator
 
+attribute [local simp] id_tensorHom tensorHom_id
+
 theorem one_leftUnitor {M : Mon_ C} :
     ((Ξ»_ (πŸ™_ C)).inv ≫ (πŸ™ (πŸ™_ C) βŠ— M.one)) ≫ (Ξ»_ M.X).hom = M.one := by
-  slice_lhs 2 3 => rw [leftUnitor_naturality]
   simp
 #align Mon_.one_left_unitor Mon_.one_leftUnitor
 
 theorem one_rightUnitor {M : Mon_ C} :
     ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— πŸ™ (πŸ™_ C))) ≫ (ρ_ M.X).hom = M.one := by
-  slice_lhs 2 3 => rw [rightUnitor_naturality, ← unitors_equal]
-  simp
+  simp [← unitors_equal]
 #align Mon_.one_right_unitor Mon_.one_rightUnitor
 
 variable [BraidedCategory C]
 
 theorem Mon_tensor_one_mul (M N : Mon_ C) :
-    ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one) βŠ— πŸ™ (M.X βŠ— N.X)) ≫
+    (((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one)) β–· (M.X βŠ— N.X)) ≫
         tensor_ΞΌ C (M.X, N.X) (M.X, N.X) ≫ (M.mul βŠ— N.mul) =
       (Ξ»_ (M.X βŠ— N.X)).hom := by
-  rw [← Category.id_comp (πŸ™ (M.X βŠ— N.X)), tensor_comp]
-  slice_lhs 2 3 => rw [← tensor_id, tensor_ΞΌ_natural]
+  simp only [comp_whiskerRight_assoc]
+  slice_lhs 2 3 => rw [tensor_ΞΌ_natural_left]
   slice_lhs 3 4 => rw [← tensor_comp, one_mul M, one_mul N]
   symm
   exact tensor_left_unitality C M.X N.X
 #align Mon_.Mon_tensor_one_mul Mon_.Mon_tensor_one_mul
 
 theorem Mon_tensor_mul_one (M N : Mon_ C) :
-    (πŸ™ (M.X βŠ— N.X) βŠ— (Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one)) ≫
+    (M.X βŠ— N.X) ◁ ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one)) ≫
         tensor_ΞΌ C (M.X, N.X) (M.X, N.X) ≫ (M.mul βŠ— N.mul) =
       (ρ_ (M.X βŠ— N.X)).hom := by
-  rw [← Category.id_comp (πŸ™ (M.X βŠ— N.X)), tensor_comp]
-  slice_lhs 2 3 => rw [← tensor_id, tensor_ΞΌ_natural]
+  simp only [whiskerLeft_comp_assoc]
+  slice_lhs 2 3 => rw [tensor_ΞΌ_natural_right]
   slice_lhs 3 4 => rw [← tensor_comp, mul_one M, mul_one N]
   symm
   exact tensor_right_unitality C M.X N.X
 #align Mon_.Mon_tensor_mul_one Mon_.Mon_tensor_mul_one
 
 theorem Mon_tensor_mul_assoc (M N : Mon_ C) :
-    (tensor_ΞΌ C (M.X, N.X) (M.X, N.X) ≫ (M.mul βŠ— N.mul) βŠ— πŸ™ (M.X βŠ— N.X)) ≫
+    ((tensor_ΞΌ C (M.X, N.X) (M.X, N.X) ≫ (M.mul βŠ— N.mul)) β–· (M.X βŠ— N.X)) ≫
         tensor_ΞΌ C (M.X, N.X) (M.X, N.X) ≫ (M.mul βŠ— N.mul) =
       (Ξ±_ (M.X βŠ— N.X) (M.X βŠ— N.X) (M.X βŠ— N.X)).hom ≫
-        (πŸ™ (M.X βŠ— N.X) βŠ— tensor_ΞΌ C (M.X, N.X) (M.X, N.X) ≫ (M.mul βŠ— N.mul)) ≫
+        ((M.X βŠ— N.X) ◁ (tensor_ΞΌ C (M.X, N.X) (M.X, N.X) ≫ (M.mul βŠ— N.mul))) ≫
           tensor_ΞΌ C (M.X, N.X) (M.X, N.X) ≫ (M.mul βŠ— N.mul) := by
-  rw [← Category.id_comp (πŸ™ (M.X βŠ— N.X)), tensor_comp]
-  slice_lhs 2 3 => rw [← tensor_id, tensor_ΞΌ_natural]
+  simp only [comp_whiskerRight_assoc, whiskerLeft_comp_assoc]
+  slice_lhs 2 3 => rw [tensor_ΞΌ_natural_left]
   slice_lhs 3 4 => rw [← tensor_comp, mul_assoc M, mul_assoc N, tensor_comp, tensor_comp]
-  -- Porting note: needed to add `dsimp` here.
-  slice_lhs 1 3 => dsimp; rw [tensor_associativity]
-  slice_lhs 3 4 => rw [← tensor_ΞΌ_natural]
-  slice_lhs 2 3 => rw [← tensor_comp, tensor_id]
-  simp only [Category.assoc]
+  slice_lhs 1 3 => rw [tensor_associativity]
+  slice_lhs 3 4 => rw [← tensor_ΞΌ_natural_right]
+  simp
 #align Mon_.Mon_tensor_mul_assoc Mon_.Mon_tensor_mul_assoc
 
 theorem mul_associator {M N P : Mon_ C} :
@@ -453,6 +444,7 @@ theorem mul_associator {M N P : Mon_ C} :
   slice_lhs 2 3 => rw [← Category.id_comp P.mul, tensor_comp]
   slice_lhs 3 4 => rw [associator_naturality]
   slice_rhs 3 4 => rw [← Category.id_comp M.mul, tensor_comp]
+  simp only [tensorHom_id, id_tensorHom]
   slice_lhs 1 3 => rw [associator_monoidal]
   simp only [Category.assoc]
 #align Mon_.mul_associator Mon_.mul_associator
@@ -461,7 +453,8 @@ theorem mul_leftUnitor {M : Mon_ C} :
     (tensor_ΞΌ C (πŸ™_ C, M.X) (πŸ™_ C, M.X) ≫ ((Ξ»_ (πŸ™_ C)).hom βŠ— M.mul)) ≫ (Ξ»_ M.X).hom =
       ((Ξ»_ M.X).hom βŠ— (Ξ»_ M.X).hom) ≫ M.mul := by
   rw [← Category.comp_id (Ξ»_ (πŸ™_ C)).hom, ← Category.id_comp M.mul, tensor_comp]
-  slice_lhs 3 4 => rw [leftUnitor_naturality]
+  simp only [tensorHom_id, id_tensorHom]
+  slice_lhs 3 4 => rw [leftUnitor_naturality']
   slice_lhs 1 3 => rw [← leftUnitor_monoidal]
   simp only [Category.assoc, Category.id_comp]
 #align Mon_.mul_left_unitor Mon_.mul_leftUnitor
@@ -470,7 +463,8 @@ theorem mul_rightUnitor {M : Mon_ C} :
     (tensor_ΞΌ C (M.X, πŸ™_ C) (M.X, πŸ™_ C) ≫ (M.mul βŠ— (Ξ»_ (πŸ™_ C)).hom)) ≫ (ρ_ M.X).hom =
       ((ρ_ M.X).hom βŠ— (ρ_ M.X).hom) ≫ M.mul := by
   rw [← Category.id_comp M.mul, ← Category.comp_id (Ξ»_ (πŸ™_ C)).hom, tensor_comp]
-  slice_lhs 3 4 => rw [rightUnitor_naturality]
+  simp only [tensorHom_id, id_tensorHom]
+  slice_lhs 3 4 => rw [rightUnitor_naturality']
   slice_lhs 1 3 => rw [← rightUnitor_monoidal]
   simp only [Category.assoc, Category.id_comp]
 #align Mon_.mul_right_unitor Mon_.mul_rightUnitor
refactor: Move the data fields of MonoidalCategory into a Struct class (#7279)

This matches the approach for CategoryStruct, and allows us to use the notation within MonoidalCategory.

It also makes it easier to induce the lawful structure along a faithful functor, as again it means by the time we are providing the proof fields, the notation is already available.

This also eliminates tensorUnit vs tensorUnit', adding a custom pretty-printer to provide the unprimed version with appropriate notation.

Diff
@@ -475,15 +475,16 @@ theorem mul_rightUnitor {M : Mon_ C} :
   simp only [Category.assoc, Category.id_comp]
 #align Mon_.mul_right_unitor Mon_.mul_rightUnitor
 
-instance monMonoidal : MonoidalCategory (Mon_ C) := .ofTensorHom
-  (tensorObj := fun M N ↦
+instance monMonoidalStruct : MonoidalCategoryStruct (Mon_ C) :=
+  let tensorObj (M N : Mon_ C) : Mon_ C :=
     { X := M.X βŠ— N.X
       one := (Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one)
       mul := tensor_ΞΌ C (M.X, N.X) (M.X, N.X) ≫ (M.mul βŠ— N.mul)
       one_mul := Mon_tensor_one_mul M N
       mul_one := Mon_tensor_mul_one M N
-      mul_assoc := Mon_tensor_mul_assoc M N })
-  (tensorHom := fun f g ↦
+      mul_assoc := Mon_tensor_mul_assoc M N }
+  let tensorHom {X₁ Y₁ Xβ‚‚ Yβ‚‚ : Mon_ C} (f : X₁ ⟢ Y₁) (g : Xβ‚‚ ⟢ Yβ‚‚) :
+      tensorObj _ _ ⟢ tensorObj _ _ :=
     { hom := f.hom βŠ— g.hom
       one_hom := by
         dsimp
@@ -492,15 +493,21 @@ instance monMonoidal : MonoidalCategory (Mon_ C) := .ofTensorHom
         dsimp
         slice_rhs 1 2 => rw [tensor_ΞΌ_natural]
         slice_lhs 2 3 => rw [← tensor_comp, Hom.mul_hom f, Hom.mul_hom g, tensor_comp]
-        simp only [Category.assoc] })
+        simp only [Category.assoc] }
+  { tensorObj := tensorObj
+    tensorHom := tensorHom
+    whiskerRight := fun f Y => tensorHom f (πŸ™ Y)
+    whiskerLeft := fun X _ _ g => tensorHom (πŸ™ X) g
+    tensorUnit := trivial C
+    associator := fun M N P ↦ isoOfIso (Ξ±_ M.X N.X P.X) one_associator mul_associator
+    leftUnitor := fun M ↦ isoOfIso (Ξ»_ M.X) one_leftUnitor mul_leftUnitor
+    rightUnitor := fun M ↦ isoOfIso (ρ_ M.X) one_rightUnitor mul_rightUnitor }
+
+instance monMonoidal : MonoidalCategory (Mon_ C) := .ofTensorHom
   (tensor_id := by intros; ext; apply tensor_id)
   (tensor_comp := by intros; ext; apply tensor_comp)
-  (tensorUnit' := trivial C)
-  (associator := fun M N P ↦ isoOfIso (Ξ±_ M.X N.X P.X) one_associator mul_associator)
   (associator_naturality := by intros; ext; dsimp; apply associator_naturality)
-  (leftUnitor := fun M ↦ isoOfIso (Ξ»_ M.X) one_leftUnitor mul_leftUnitor)
   (leftUnitor_naturality := by intros; ext; dsimp; apply leftUnitor_naturality)
-  (rightUnitor := fun M ↦ isoOfIso (ρ_ M.X) one_rightUnitor mul_rightUnitor)
   (rightUnitor_naturality := by intros; ext; dsimp; apply rightUnitor_naturality)
   (pentagon := by intros; ext; dsimp; apply pentagon)
   (triangle := by intros; ext; dsimp; apply triangle)
chore: fix nonterminal simps (#7497)

Fixes the nonterminal simps identified by #7496

Diff
@@ -380,7 +380,7 @@ variable {C}
 theorem one_associator {M N P : Mon_ C} :
     ((Ξ»_ (πŸ™_ C)).inv ≫ ((Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one) βŠ— P.one)) ≫ (Ξ±_ M.X N.X P.X).hom =
       (Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— (Ξ»_ (πŸ™_ C)).inv ≫ (N.one βŠ— P.one)) := by
-  simp
+  simp only [Category.assoc, Iso.cancel_iso_inv_left]
   slice_lhs 1 3 => rw [← Category.id_comp P.one, tensor_comp]
   slice_lhs 2 3 => rw [associator_naturality]
   slice_rhs 1 2 => rw [← Category.id_comp M.one, tensor_comp]
@@ -449,7 +449,7 @@ theorem mul_associator {M N P : Mon_ C} :
       ((Ξ±_ M.X N.X P.X).hom βŠ— (Ξ±_ M.X N.X P.X).hom) ≫
         tensor_ΞΌ C (M.X, N.X βŠ— P.X) (M.X, N.X βŠ— P.X) ≫
           (M.mul βŠ— tensor_ΞΌ C (N.X, P.X) (N.X, P.X) ≫ (N.mul βŠ— P.mul)) := by
-  simp
+  simp only [tensor_obj, prodMonoidal_tensorObj, Category.assoc]
   slice_lhs 2 3 => rw [← Category.id_comp P.mul, tensor_comp]
   slice_lhs 3 4 => rw [associator_naturality]
   slice_rhs 3 4 => rw [← Category.id_comp M.mul, tensor_comp]
feat(CategoryTheory/Monoidal): define whiskering operators (#6420)

Extracted from #6307. Just put the whiskerings into the constructor.

Diff
@@ -475,15 +475,15 @@ theorem mul_rightUnitor {M : Mon_ C} :
   simp only [Category.assoc, Category.id_comp]
 #align Mon_.mul_right_unitor Mon_.mul_rightUnitor
 
-instance monMonoidal : MonoidalCategory (Mon_ C) where
-  tensorObj M N :=
+instance monMonoidal : MonoidalCategory (Mon_ C) := .ofTensorHom
+  (tensorObj := fun M N ↦
     { X := M.X βŠ— N.X
       one := (Ξ»_ (πŸ™_ C)).inv ≫ (M.one βŠ— N.one)
       mul := tensor_ΞΌ C (M.X, N.X) (M.X, N.X) ≫ (M.mul βŠ— N.mul)
       one_mul := Mon_tensor_one_mul M N
       mul_one := Mon_tensor_mul_one M N
-      mul_assoc := Mon_tensor_mul_assoc M N }
-  tensorHom f g :=
+      mul_assoc := Mon_tensor_mul_assoc M N })
+  (tensorHom := fun f g ↦
     { hom := f.hom βŠ— g.hom
       one_hom := by
         dsimp
@@ -492,18 +492,18 @@ instance monMonoidal : MonoidalCategory (Mon_ C) where
         dsimp
         slice_rhs 1 2 => rw [tensor_ΞΌ_natural]
         slice_lhs 2 3 => rw [← tensor_comp, Hom.mul_hom f, Hom.mul_hom g, tensor_comp]
-        simp only [Category.assoc] }
-  tensor_id := by intros; ext; apply tensor_id
-  tensor_comp := by intros; ext; apply tensor_comp
-  tensorUnit' := trivial C
-  associator M N P := isoOfIso (Ξ±_ M.X N.X P.X) one_associator mul_associator
-  associator_naturality := by intros; ext; dsimp; apply associator_naturality
-  leftUnitor M := isoOfIso (Ξ»_ M.X) one_leftUnitor mul_leftUnitor
-  leftUnitor_naturality := by intros; ext; dsimp; apply leftUnitor_naturality
-  rightUnitor M := isoOfIso (ρ_ M.X) one_rightUnitor mul_rightUnitor
-  rightUnitor_naturality := by intros; ext; dsimp; apply rightUnitor_naturality
-  pentagon := by intros; ext; dsimp; apply pentagon
-  triangle := by intros; ext; dsimp; apply triangle
+        simp only [Category.assoc] })
+  (tensor_id := by intros; ext; apply tensor_id)
+  (tensor_comp := by intros; ext; apply tensor_comp)
+  (tensorUnit' := trivial C)
+  (associator := fun M N P ↦ isoOfIso (Ξ±_ M.X N.X P.X) one_associator mul_associator)
+  (associator_naturality := by intros; ext; dsimp; apply associator_naturality)
+  (leftUnitor := fun M ↦ isoOfIso (Ξ»_ M.X) one_leftUnitor mul_leftUnitor)
+  (leftUnitor_naturality := by intros; ext; dsimp; apply leftUnitor_naturality)
+  (rightUnitor := fun M ↦ isoOfIso (ρ_ M.X) one_rightUnitor mul_rightUnitor)
+  (rightUnitor_naturality := by intros; ext; dsimp; apply rightUnitor_naturality)
+  (pentagon := by intros; ext; dsimp; apply pentagon)
+  (triangle := by intros; ext; dsimp; apply triangle)
 #align Mon_.Mon_monoidal Mon_.monMonoidal
 
 end Mon_
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.monoidal.Mon_
-! leanprover-community/mathlib commit a836c6dba9bd1ee2a0cdc9af0006a596f243031c
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Monoidal.Braided
 import Mathlib.CategoryTheory.Monoidal.Discrete
@@ -14,6 +9,8 @@ import Mathlib.CategoryTheory.Monoidal.CoherenceLemmas
 import Mathlib.CategoryTheory.Limits.Shapes.Terminal
 import Mathlib.Algebra.PUnitInstances
 
+#align_import category_theory.monoidal.Mon_ from "leanprover-community/mathlib"@"a836c6dba9bd1ee2a0cdc9af0006a596f243031c"
+
 /-!
 # The category of monoids in a monoidal category.
 
feat: port CategoryTheory.Monoidal.Mon_ (#4763)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au>

Dependencies 3 + 225

226 files ported (98.7%)
82896 lines ported (98.8%)
Show graph

The unported dependencies are