category_theory.monoidal.free.basicMathlib.CategoryTheory.Monoidal.Free.Basic

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -163,7 +163,7 @@ instance : MonoidalCategory (F C)
     where
   tensorObj X Y := FreeMonoidalCategory.tensor X Y
   tensorHom X₁ Y₁ X₂ Y₂ :=
-    Quotient.map₂ Hom.tensor <| by intro _ _ h _ _ h'; exact hom_equiv.tensor h h'
+    Quotient.map₂ Hom.whiskerLeft <| by intro _ _ h _ _ h'; exact hom_equiv.tensor h h'
   tensor_id' X Y := Quotient.sound tensor_id
   tensor_comp' X₁ Y₁ Z₁ X₂ Y₂ Z₂ := by rintro ⟨f₁⟩ ⟨f₂⟩ ⟨g₁⟩ ⟨g₂⟩;
     exact Quotient.sound (tensor_comp _ _ _ _)
Diff
@@ -69,10 +69,10 @@ inductive Hom : F C → F C → Type u
   | id (X) : hom X X
   | α_hom (X Y Z : F C) : hom ((X.tensor Y).tensor Z) (X.tensor (Y.tensor Z))
   | α_inv (X Y Z : F C) : hom (X.tensor (Y.tensor Z)) ((X.tensor Y).tensor Z)
-  | l_hom (X) : hom (Unit.tensor X) X
-  | l_inv (X) : hom X (Unit.tensor X)
-  | ρ_hom (X : F C) : hom (X.tensor Unit) X
-  | ρ_inv (X : F C) : hom X (X.tensor Unit)
+  | l_hom (X) : hom (unit.tensor X) X
+  | l_inv (X) : hom X (unit.tensor X)
+  | ρ_hom (X : F C) : hom (X.tensor unit) X
+  | ρ_inv (X : F C) : hom X (X.tensor unit)
   | comp {X Y Z} (f : hom X Y) (g : hom Y Z) : hom X Z
   | tensor {W X Y Z} (f : hom W Y) (g : hom X Z) : hom (W.tensor X) (Y.tensor Z)
 #align category_theory.free_monoidal_category.hom CategoryTheory.FreeMonoidalCategory.Hom
@@ -112,12 +112,12 @@ inductive HomEquivCat : ∀ {X Y : F C}, (X ⟶ᵐ Y) → (X ⟶ᵐ Y) → Prop
   | ρ_inv_hom {X} : hom_equiv ((Hom.ρ_inv X).comp (Hom.ρ_hom X)) (Hom.id _)
   |
   ρ_naturality {X Y} (f : X ⟶ᵐ Y) :
-    hom_equiv ((f.tensor (Hom.id Unit)).comp (Hom.ρ_hom Y)) ((Hom.ρ_hom X).comp f)
+    hom_equiv ((f.tensor (Hom.id unit)).comp (Hom.ρ_hom Y)) ((Hom.ρ_hom X).comp f)
   | l_hom_inv {X} : hom_equiv ((Hom.l_hom X).comp (Hom.l_inv X)) (Hom.id _)
   | l_inv_hom {X} : hom_equiv ((Hom.l_inv X).comp (Hom.l_hom X)) (Hom.id _)
   |
   l_naturality {X Y} (f : X ⟶ᵐ Y) :
-    hom_equiv (((Hom.id Unit).tensor f).comp (Hom.l_hom Y)) ((Hom.l_hom X).comp f)
+    hom_equiv (((Hom.id unit).tensor f).comp (Hom.l_hom Y)) ((Hom.l_hom X).comp f)
   |
   pentagon {W X Y Z} :
     hom_equiv
@@ -126,7 +126,7 @@ inductive HomEquivCat : ∀ {X Y : F C}, (X ⟶ᵐ Y) → (X ⟶ᵐ Y) → Prop
       ((Hom.α_hom (W.tensor X) Y Z).comp (Hom.α_hom W X (Y.tensor Z)))
   |
   triangle {X Y} :
-    hom_equiv ((Hom.α_hom X Unit Y).comp ((Hom.id X).tensor (Hom.l_hom Y)))
+    hom_equiv ((Hom.α_hom X unit Y).comp ((Hom.id X).tensor (Hom.l_hom Y)))
       ((Hom.ρ_hom X).tensor (Hom.id Y))
 #align category_theory.free_monoidal_category.hom_equiv CategoryTheory.FreeMonoidalCategory.HomEquivCat
 
@@ -167,7 +167,7 @@ instance : MonoidalCategory (F C)
   tensor_id' X Y := Quotient.sound tensor_id
   tensor_comp' X₁ Y₁ Z₁ X₂ Y₂ Z₂ := by rintro ⟨f₁⟩ ⟨f₂⟩ ⟨g₁⟩ ⟨g₂⟩;
     exact Quotient.sound (tensor_comp _ _ _ _)
-  tensorUnit := FreeMonoidalCategory.Unit
+  tensorUnit := FreeMonoidalCategory.unit
   associator X Y Z :=
     ⟨⟦Hom.α_hom X Y Z⟧, ⟦Hom.α_inv X Y Z⟧, Quotient.sound α_hom_inv, Quotient.sound α_inv_hom⟩
   associator_naturality' X₁ X₂ X₃ Y₁ Y₂ Y₃ := by rintro ⟨f₁⟩ ⟨f₂⟩ ⟨f₃⟩;
@@ -255,7 +255,7 @@ theorem tensor_eq_tensor {X Y : F C} : X.tensor Y = X ⊗ Y :=
 
 #print CategoryTheory.FreeMonoidalCategory.unit_eq_unit /-
 @[simp]
-theorem unit_eq_unit : FreeMonoidalCategory.Unit = 𝟙_ (F C) :=
+theorem unit_eq_unit : FreeMonoidalCategory.unit = 𝟙_ (F C) :=
   rfl
 #align category_theory.free_monoidal_category.unit_eq_unit CategoryTheory.FreeMonoidalCategory.unit_eq_unit
 -/
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2021 Markus Himmel. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Markus Himmel
 -/
-import Mathbin.CategoryTheory.Monoidal.Functor
+import CategoryTheory.Monoidal.Functor
 
 #align_import category_theory.monoidal.free.basic from "leanprover-community/mathlib"@"fe8d0ff42c3c24d789f491dc2622b6cac3d61564"
 
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2021 Markus Himmel. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Markus Himmel
-
-! This file was ported from Lean 3 source module category_theory.monoidal.free.basic
-! leanprover-community/mathlib commit fe8d0ff42c3c24d789f491dc2622b6cac3d61564
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Monoidal.Functor
 
+#align_import category_theory.monoidal.free.basic from "leanprover-community/mathlib"@"fe8d0ff42c3c24d789f491dc2622b6cac3d61564"
+
 /-!
 # The free monoidal category over a type
 
Diff
@@ -59,7 +59,6 @@ inductive FreeMonoidalCategory : Type u
 
 end
 
--- mathport name: exprF
 local notation "F" => FreeMonoidalCategory
 
 namespace FreeMonoidalCategory
@@ -82,7 +81,6 @@ inductive Hom : F C → F C → Type u
 #align category_theory.free_monoidal_category.hom CategoryTheory.FreeMonoidalCategory.Hom
 -/
 
--- mathport name: «expr ⟶ᵐ »
 local infixr:10 " ⟶ᵐ " => Hom
 
 /-- The morphisms of the free monoidal category satisfy 21 relations ensuring that the resulting
@@ -193,11 +191,13 @@ theorem mk_comp {X Y Z : F C} (f : X ⟶ᵐ Y) (g : Y ⟶ᵐ Z) :
 #align category_theory.free_monoidal_category.mk_comp CategoryTheory.FreeMonoidalCategory.mk_comp
 -/
 
+#print CategoryTheory.FreeMonoidalCategory.mk_tensor /-
 @[simp]
 theorem mk_tensor {X₁ Y₁ X₂ Y₂ : F C} (f : X₁ ⟶ᵐ Y₁) (g : X₂ ⟶ᵐ Y₂) :
     ⟦f.tensor g⟧ = @MonoidalCategory.tensorHom (F C) _ _ _ _ _ _ ⟦f⟧ ⟦g⟧ :=
   rfl
 #align category_theory.free_monoidal_category.mk_tensor CategoryTheory.FreeMonoidalCategory.mk_tensor
+-/
 
 #print CategoryTheory.FreeMonoidalCategory.mk_id /-
 @[simp]
@@ -206,46 +206,62 @@ theorem mk_id {X : F C} : ⟦Hom.id X⟧ = 𝟙 X :=
 #align category_theory.free_monoidal_category.mk_id CategoryTheory.FreeMonoidalCategory.mk_id
 -/
 
+#print CategoryTheory.FreeMonoidalCategory.mk_α_hom /-
 @[simp]
 theorem mk_α_hom {X Y Z : F C} : ⟦Hom.α_hom X Y Z⟧ = (α_ X Y Z).Hom :=
   rfl
 #align category_theory.free_monoidal_category.mk_α_hom CategoryTheory.FreeMonoidalCategory.mk_α_hom
+-/
 
+#print CategoryTheory.FreeMonoidalCategory.mk_α_inv /-
 @[simp]
 theorem mk_α_inv {X Y Z : F C} : ⟦Hom.α_inv X Y Z⟧ = (α_ X Y Z).inv :=
   rfl
 #align category_theory.free_monoidal_category.mk_α_inv CategoryTheory.FreeMonoidalCategory.mk_α_inv
+-/
 
+#print CategoryTheory.FreeMonoidalCategory.mk_ρ_hom /-
 @[simp]
 theorem mk_ρ_hom {X : F C} : ⟦Hom.ρ_hom X⟧ = (ρ_ X).Hom :=
   rfl
 #align category_theory.free_monoidal_category.mk_ρ_hom CategoryTheory.FreeMonoidalCategory.mk_ρ_hom
+-/
 
+#print CategoryTheory.FreeMonoidalCategory.mk_ρ_inv /-
 @[simp]
 theorem mk_ρ_inv {X : F C} : ⟦Hom.ρ_inv X⟧ = (ρ_ X).inv :=
   rfl
 #align category_theory.free_monoidal_category.mk_ρ_inv CategoryTheory.FreeMonoidalCategory.mk_ρ_inv
+-/
 
+#print CategoryTheory.FreeMonoidalCategory.mk_l_hom /-
 @[simp]
 theorem mk_l_hom {X : F C} : ⟦Hom.l_hom X⟧ = (λ_ X).Hom :=
   rfl
 #align category_theory.free_monoidal_category.mk_l_hom CategoryTheory.FreeMonoidalCategory.mk_l_hom
+-/
 
+#print CategoryTheory.FreeMonoidalCategory.mk_l_inv /-
 @[simp]
 theorem mk_l_inv {X : F C} : ⟦Hom.l_inv X⟧ = (λ_ X).inv :=
   rfl
 #align category_theory.free_monoidal_category.mk_l_inv CategoryTheory.FreeMonoidalCategory.mk_l_inv
+-/
 
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print CategoryTheory.FreeMonoidalCategory.tensor_eq_tensor /-
 @[simp]
 theorem tensor_eq_tensor {X Y : F C} : X.tensor Y = X ⊗ Y :=
   rfl
 #align category_theory.free_monoidal_category.tensor_eq_tensor CategoryTheory.FreeMonoidalCategory.tensor_eq_tensor
+-/
 
+#print CategoryTheory.FreeMonoidalCategory.unit_eq_unit /-
 @[simp]
 theorem unit_eq_unit : FreeMonoidalCategory.Unit = 𝟙_ (F C) :=
   rfl
 #align category_theory.free_monoidal_category.unit_eq_unit CategoryTheory.FreeMonoidalCategory.unit_eq_unit
+-/
 
 section Functor
 
@@ -318,6 +334,7 @@ def projectMap (X Y : F C) : (X ⟶ Y) → (projectObj f X ⟶ projectObj f Y) :
 
 end
 
+#print CategoryTheory.FreeMonoidalCategory.project /-
 /-- If `D` is a monoidal category and we have a function `C → D`, then we have a functor from the
     free monoidal category over `C` to the category `D`. -/
 def project : MonoidalFunctor (F C) D
@@ -327,6 +344,7 @@ def project : MonoidalFunctor (F C) D
   ε := 𝟙 _
   μ X Y := 𝟙 _
 #align category_theory.free_monoidal_category.project CategoryTheory.FreeMonoidalCategory.project
+-/
 
 end Functor
 
Diff
@@ -288,8 +288,8 @@ def projectMap (X Y : F C) : (X ⟶ Y) → (projectObj f X ⟶ projectObj f Y) :
   Quotient.lift (projectMapAux f)
     (by
       intro f g h
-      induction' h with
-        X Y f X Y f g hfg hfg' X Y f g h _ _ hfg hgh X Y Z f f' g g' _ _ hf hg W X Y Z f g f' g' _ _ hfg hfg'
+      induction' h with X Y f X Y f g hfg hfg' X Y f g h _ _ hfg hgh X Y Z f f' g g' _ _ hf hg W X Y
+        Z f g f' g' _ _ hfg hfg'
       · rfl
       · exact hfg'.symm
       · exact hfg.trans hgh
Diff
@@ -193,12 +193,6 @@ theorem mk_comp {X Y Z : F C} (f : X ⟶ᵐ Y) (g : Y ⟶ᵐ Z) :
 #align category_theory.free_monoidal_category.mk_comp CategoryTheory.FreeMonoidalCategory.mk_comp
 -/
 
-/- warning: category_theory.free_monoidal_category.mk_tensor -> CategoryTheory.FreeMonoidalCategory.mk_tensor is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {X₁ : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y₁ : CategoryTheory.FreeMonoidalCategory.{u1} C} {X₂ : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y₂ : CategoryTheory.FreeMonoidalCategory.{u1} C} (f : CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₁ Y₁) (g : CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₂ Y₂), Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X₁ X₂) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y₁ Y₂)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X₁ X₂) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y₁ Y₂))) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X₁ X₂) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y₁ Y₂)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X₁ X₂) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y₁ Y₂)) (CategoryTheory.FreeMonoidalCategory.Hom.tensor.{u1} C X₁ X₂ Y₁ Y₂ f g)) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X₁ Y₁ X₂ Y₂ (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₁ Y₁) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X₁ Y₁) f) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₂ Y₂) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X₂ Y₂) g))
-but is expected to have type
-  forall {C : Type.{u1}} {X₁ : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y₁ : CategoryTheory.FreeMonoidalCategory.{u1} C} {X₂ : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y₂ : CategoryTheory.FreeMonoidalCategory.{u1} C} (f : CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₁ Y₁) (g : CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₂ Y₂), Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X₁ X₂) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y₁ Y₂)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X₁ X₂) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y₁ Y₂))) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X₁ X₂) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y₁ Y₂)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X₁ X₂) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y₁ Y₂)) (CategoryTheory.FreeMonoidalCategory.Hom.tensor.{u1} C X₁ X₂ Y₁ Y₂ f g)) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X₁ Y₁ X₂ Y₂ (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₁ Y₁) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X₁ Y₁) f) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₂ Y₂) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X₂ Y₂) g))
-Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.mk_tensor CategoryTheory.FreeMonoidalCategory.mk_tensorₓ'. -/
 @[simp]
 theorem mk_tensor {X₁ Y₁ X₂ Y₂ : F C} (f : X₁ ⟶ᵐ Y₁) (g : X₂ ⟶ᵐ Y₂) :
     ⟦f.tensor g⟧ = @MonoidalCategory.tensorHom (F C) _ _ _ _ _ _ ⟦f⟧ ⟦g⟧ :=
@@ -212,90 +206,42 @@ theorem mk_id {X : F C} : ⟦Hom.id X⟧ = 𝟙 X :=
 #align category_theory.free_monoidal_category.mk_id CategoryTheory.FreeMonoidalCategory.mk_id
 -/
 
-/- warning: category_theory.free_monoidal_category.mk_α_hom -> CategoryTheory.FreeMonoidalCategory.mk_α_hom is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y : CategoryTheory.FreeMonoidalCategory.{u1} C} {Z : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y Z)))) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y Z))) (CategoryTheory.FreeMonoidalCategory.Hom.α_hom.{u1} C X Y Z)) (CategoryTheory.Iso.hom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.associator.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y Z))
-but is expected to have type
-  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y : CategoryTheory.FreeMonoidalCategory.{u1} C} {Z : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y Z)))) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y Z))) (CategoryTheory.FreeMonoidalCategory.Hom.α_hom.{u1} C X Y Z)) (CategoryTheory.Iso.hom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.associator.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y Z))
-Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.mk_α_hom CategoryTheory.FreeMonoidalCategory.mk_α_homₓ'. -/
 @[simp]
 theorem mk_α_hom {X Y Z : F C} : ⟦Hom.α_hom X Y Z⟧ = (α_ X Y Z).Hom :=
   rfl
 #align category_theory.free_monoidal_category.mk_α_hom CategoryTheory.FreeMonoidalCategory.mk_α_hom
 
-/- warning: category_theory.free_monoidal_category.mk_α_inv -> CategoryTheory.FreeMonoidalCategory.mk_α_inv is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y : CategoryTheory.FreeMonoidalCategory.{u1} C} {Z : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z)) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y) Z))) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z)) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y) Z)) (CategoryTheory.FreeMonoidalCategory.Hom.α_inv.{u1} C X Y Z)) (CategoryTheory.Iso.inv.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.associator.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y Z))
-but is expected to have type
-  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y : CategoryTheory.FreeMonoidalCategory.{u1} C} {Z : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z)) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y) Z))) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z)) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y) Z)) (CategoryTheory.FreeMonoidalCategory.Hom.α_inv.{u1} C X Y Z)) (CategoryTheory.Iso.inv.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.associator.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y Z))
-Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.mk_α_inv CategoryTheory.FreeMonoidalCategory.mk_α_invₓ'. -/
 @[simp]
 theorem mk_α_inv {X Y Z : F C} : ⟦Hom.α_inv X Y Z⟧ = (α_ X Y Z).inv :=
   rfl
 #align category_theory.free_monoidal_category.mk_α_inv CategoryTheory.FreeMonoidalCategory.mk_α_inv
 
-/- warning: category_theory.free_monoidal_category.mk_ρ_hom -> CategoryTheory.FreeMonoidalCategory.mk_ρ_hom is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C)) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C))) X)) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C)) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C))) X) (CategoryTheory.FreeMonoidalCategory.Hom.ρ_hom.{u1} C X)) (CategoryTheory.Iso.hom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C))) X (CategoryTheory.MonoidalCategory.rightUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X))
-but is expected to have type
-  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C)) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C))) X)) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C)) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C))) X) (CategoryTheory.FreeMonoidalCategory.Hom.ρ_hom.{u1} C X)) (CategoryTheory.Iso.hom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C))) X (CategoryTheory.MonoidalCategory.rightUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.mk_ρ_hom CategoryTheory.FreeMonoidalCategory.mk_ρ_homₓ'. -/
 @[simp]
 theorem mk_ρ_hom {X : F C} : ⟦Hom.ρ_hom X⟧ = (ρ_ X).Hom :=
   rfl
 #align category_theory.free_monoidal_category.mk_ρ_hom CategoryTheory.FreeMonoidalCategory.mk_ρ_hom
 
-/- warning: category_theory.free_monoidal_category.mk_ρ_inv -> CategoryTheory.FreeMonoidalCategory.mk_ρ_inv is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C))))) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C)))) (CategoryTheory.FreeMonoidalCategory.Hom.ρ_inv.{u1} C X)) (CategoryTheory.Iso.inv.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C))) X (CategoryTheory.MonoidalCategory.rightUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X))
-but is expected to have type
-  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C))))) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C)))) (CategoryTheory.FreeMonoidalCategory.Hom.ρ_inv.{u1} C X)) (CategoryTheory.Iso.inv.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C))) X (CategoryTheory.MonoidalCategory.rightUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.mk_ρ_inv CategoryTheory.FreeMonoidalCategory.mk_ρ_invₓ'. -/
 @[simp]
 theorem mk_ρ_inv {X : F C} : ⟦Hom.ρ_inv X⟧ = (ρ_ X).inv :=
   rfl
 #align category_theory.free_monoidal_category.mk_ρ_inv CategoryTheory.FreeMonoidalCategory.mk_ρ_inv
 
-/- warning: category_theory.free_monoidal_category.mk_l_hom -> CategoryTheory.FreeMonoidalCategory.mk_l_hom is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C)) X) X)) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C)) X) X) (CategoryTheory.FreeMonoidalCategory.Hom.l_hom.{u1} C X)) (CategoryTheory.Iso.hom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C)) X) X (CategoryTheory.MonoidalCategory.leftUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X))
-but is expected to have type
-  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C)) X) X)) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C)) X) X) (CategoryTheory.FreeMonoidalCategory.Hom.l_hom.{u1} C X)) (CategoryTheory.Iso.hom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C)) X) X (CategoryTheory.MonoidalCategory.leftUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.mk_l_hom CategoryTheory.FreeMonoidalCategory.mk_l_homₓ'. -/
 @[simp]
 theorem mk_l_hom {X : F C} : ⟦Hom.l_hom X⟧ = (λ_ X).Hom :=
   rfl
 #align category_theory.free_monoidal_category.mk_l_hom CategoryTheory.FreeMonoidalCategory.mk_l_hom
 
-/- warning: category_theory.free_monoidal_category.mk_l_inv -> CategoryTheory.FreeMonoidalCategory.mk_l_inv is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C)) X))) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C)) X)) (CategoryTheory.FreeMonoidalCategory.Hom.l_inv.{u1} C X)) (CategoryTheory.Iso.inv.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C)) X) X (CategoryTheory.MonoidalCategory.leftUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X))
-but is expected to have type
-  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C)) X))) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C)) X)) (CategoryTheory.FreeMonoidalCategory.Hom.l_inv.{u1} C X)) (CategoryTheory.Iso.inv.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C)) X) X (CategoryTheory.MonoidalCategory.leftUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.mk_l_inv CategoryTheory.FreeMonoidalCategory.mk_l_invₓ'. -/
 @[simp]
 theorem mk_l_inv {X : F C} : ⟦Hom.l_inv X⟧ = (λ_ X).inv :=
   rfl
 #align category_theory.free_monoidal_category.mk_l_inv CategoryTheory.FreeMonoidalCategory.mk_l_inv
 
-/- warning: category_theory.free_monoidal_category.tensor_eq_tensor -> CategoryTheory.FreeMonoidalCategory.tensor_eq_tensor is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y)
-but is expected to have type
-  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y)
-Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.tensor_eq_tensor CategoryTheory.FreeMonoidalCategory.tensor_eq_tensorₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 @[simp]
 theorem tensor_eq_tensor {X Y : F C} : X.tensor Y = X ⊗ Y :=
   rfl
 #align category_theory.free_monoidal_category.tensor_eq_tensor CategoryTheory.FreeMonoidalCategory.tensor_eq_tensor
 
-/- warning: category_theory.free_monoidal_category.unit_eq_unit -> CategoryTheory.FreeMonoidalCategory.unit_eq_unit is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u1}}, Eq.{succ u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C))
-but is expected to have type
-  forall {C : Type.{u1}}, Eq.{succ u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C))
-Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.unit_eq_unit CategoryTheory.FreeMonoidalCategory.unit_eq_unitₓ'. -/
 @[simp]
 theorem unit_eq_unit : FreeMonoidalCategory.Unit = 𝟙_ (F C) :=
   rfl
@@ -372,12 +318,6 @@ def projectMap (X Y : F C) : (X ⟶ Y) → (projectObj f X ⟶ projectObj f Y) :
 
 end
 
-/- warning: category_theory.free_monoidal_category.project -> CategoryTheory.FreeMonoidalCategory.project is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} D] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u3} D _inst_1], (C -> D) -> (CategoryTheory.MonoidalFunctor.{u2, u1, u2, u3} (CategoryTheory.FreeMonoidalCategory.{u2} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u2} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u2} C) D _inst_1 _inst_2)
-but is expected to have type
-  forall {C : Type.{u2}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} D] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u3} D _inst_1], (C -> D) -> (CategoryTheory.MonoidalFunctor.{u2, u1, u2, u3} (CategoryTheory.FreeMonoidalCategory.{u2} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u2} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u2} C) D _inst_1 _inst_2)
-Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.project CategoryTheory.FreeMonoidalCategory.projectₓ'. -/
 /-- If `D` is a monoidal category and we have a function `C → D`, then we have a functor from the
     free monoidal category over `C` to the category `D`. -/
 def project : MonoidalFunctor (F C) D
Diff
@@ -157,21 +157,10 @@ instance categoryFreeMonoidalCategory : Category.{u} (F C)
     where
   Hom X Y := Quotient (FreeMonoidalCategory.setoidHom X Y)
   id X := ⟦FreeMonoidalCategory.Hom.id _⟧
-  comp X Y Z f g :=
-    Quotient.map₂ Hom.comp
-      (by
-        intro f f' hf g g' hg
-        exact comp hf hg)
-      f g
-  id_comp' := by
-    rintro X Y ⟨f⟩
-    exact Quotient.sound (id_comp f)
-  comp_id' := by
-    rintro X Y ⟨f⟩
-    exact Quotient.sound (comp_id f)
-  assoc' := by
-    rintro W X Y Z ⟨f⟩ ⟨g⟩ ⟨h⟩
-    exact Quotient.sound (assoc f g h)
+  comp X Y Z f g := Quotient.map₂ Hom.comp (by intro f f' hf g g' hg; exact comp hf hg) f g
+  id_comp' := by rintro X Y ⟨f⟩; exact Quotient.sound (id_comp f)
+  comp_id' := by rintro X Y ⟨f⟩; exact Quotient.sound (comp_id f)
+  assoc' := by rintro W X Y Z ⟨f⟩ ⟨g⟩ ⟨h⟩; exact Quotient.sound (assoc f g h)
 #align category_theory.free_monoidal_category.category_free_monoidal_category CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory
 -/
 
@@ -179,29 +168,20 @@ instance : MonoidalCategory (F C)
     where
   tensorObj X Y := FreeMonoidalCategory.tensor X Y
   tensorHom X₁ Y₁ X₂ Y₂ :=
-    Quotient.map₂ Hom.tensor <| by
-      intro _ _ h _ _ h'
-      exact hom_equiv.tensor h h'
+    Quotient.map₂ Hom.tensor <| by intro _ _ h _ _ h'; exact hom_equiv.tensor h h'
   tensor_id' X Y := Quotient.sound tensor_id
-  tensor_comp' X₁ Y₁ Z₁ X₂ Y₂ Z₂ := by
-    rintro ⟨f₁⟩ ⟨f₂⟩ ⟨g₁⟩ ⟨g₂⟩
+  tensor_comp' X₁ Y₁ Z₁ X₂ Y₂ Z₂ := by rintro ⟨f₁⟩ ⟨f₂⟩ ⟨g₁⟩ ⟨g₂⟩;
     exact Quotient.sound (tensor_comp _ _ _ _)
   tensorUnit := FreeMonoidalCategory.Unit
   associator X Y Z :=
     ⟨⟦Hom.α_hom X Y Z⟧, ⟦Hom.α_inv X Y Z⟧, Quotient.sound α_hom_inv, Quotient.sound α_inv_hom⟩
-  associator_naturality' X₁ X₂ X₃ Y₁ Y₂ Y₃ :=
-    by
-    rintro ⟨f₁⟩ ⟨f₂⟩ ⟨f₃⟩
+  associator_naturality' X₁ X₂ X₃ Y₁ Y₂ Y₃ := by rintro ⟨f₁⟩ ⟨f₂⟩ ⟨f₃⟩;
     exact Quotient.sound (associator_naturality _ _ _)
   leftUnitor X := ⟨⟦Hom.l_hom X⟧, ⟦Hom.l_inv X⟧, Quotient.sound l_hom_inv, Quotient.sound l_inv_hom⟩
-  leftUnitor_naturality' X Y := by
-    rintro ⟨f⟩
-    exact Quotient.sound (l_naturality _)
+  leftUnitor_naturality' X Y := by rintro ⟨f⟩; exact Quotient.sound (l_naturality _)
   rightUnitor X :=
     ⟨⟦Hom.ρ_hom X⟧, ⟦Hom.ρ_inv X⟧, Quotient.sound ρ_hom_inv, Quotient.sound ρ_inv_hom⟩
-  rightUnitor_naturality' X Y := by
-    rintro ⟨f⟩
-    exact Quotient.sound (ρ_naturality _)
+  rightUnitor_naturality' X Y := by rintro ⟨f⟩; exact Quotient.sound (ρ_naturality _)
   pentagon' W X Y Z := Quotient.sound pentagon
   triangle' X Y := Quotient.sound triangle
 
@@ -372,26 +352,21 @@ def projectMap (X Y : F C) : (X ⟶ Y) → (projectObj f X ⟶ projectObj f Y) :
       · simp only [project_map_aux, category.comp_id]
       · simp only [project_map_aux, category.id_comp]
       · simp only [project_map_aux, category.assoc]
-      · simp only [project_map_aux, monoidal_category.tensor_id]
-        rfl
+      · simp only [project_map_aux, monoidal_category.tensor_id]; rfl
       · simp only [project_map_aux, monoidal_category.tensor_comp]
       · simp only [project_map_aux, iso.hom_inv_id]
       · simp only [project_map_aux, iso.inv_hom_id]
       · simp only [project_map_aux, monoidal_category.associator_naturality]
       · simp only [project_map_aux, iso.hom_inv_id]
       · simp only [project_map_aux, iso.inv_hom_id]
-      · simp only [project_map_aux]
-        dsimp [project_obj]
+      · simp only [project_map_aux]; dsimp [project_obj]
         exact monoidal_category.right_unitor_naturality _
       · simp only [project_map_aux, iso.hom_inv_id]
       · simp only [project_map_aux, iso.inv_hom_id]
-      · simp only [project_map_aux]
-        dsimp [project_obj]
+      · simp only [project_map_aux]; dsimp [project_obj]
         exact monoidal_category.left_unitor_naturality _
-      · simp only [project_map_aux]
-        exact monoidal_category.pentagon _ _ _ _
-      · simp only [project_map_aux]
-        exact monoidal_category.triangle _ _)
+      · simp only [project_map_aux]; exact monoidal_category.pentagon _ _ _ _
+      · simp only [project_map_aux]; exact monoidal_category.triangle _ _)
 #align category_theory.free_monoidal_category.project_map CategoryTheory.FreeMonoidalCategory.projectMap
 -/
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Markus Himmel
 
 ! This file was ported from Lean 3 source module category_theory.monoidal.free.basic
-! leanprover-community/mathlib commit 14b69e9f3c16630440a2cbd46f1ddad0d561dee7
+! leanprover-community/mathlib commit fe8d0ff42c3c24d789f491dc2622b6cac3d61564
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.CategoryTheory.Monoidal.Functor
 /-!
 # The free monoidal category over a type
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 Given a type `C`, the free monoidal category over `C` has as objects formal expressions built from
 (formal) tensor products of terms of `C` and a formal unit. Its morphisms are compositions and
 tensor products of identities, unitors and associators.
Diff
@@ -40,6 +40,7 @@ section
 
 variable (C)
 
+#print CategoryTheory.FreeMonoidalCategory /-
 /--
 Given a type `C`, the free monoidal category over `C` has as objects formal expressions built from
 (formal) tensor products of terms of `C` and a formal unit. Its morphisms are compositions and
@@ -51,6 +52,7 @@ inductive FreeMonoidalCategory : Type u
   | tensor : free_monoidal_category → free_monoidal_category → free_monoidal_category
   deriving Inhabited
 #align category_theory.free_monoidal_category CategoryTheory.FreeMonoidalCategory
+-/
 
 end
 
@@ -59,6 +61,7 @@ local notation "F" => FreeMonoidalCategory
 
 namespace FreeMonoidalCategory
 
+#print CategoryTheory.FreeMonoidalCategory.Hom /-
 /-- Formal compositions and tensor products of identities, unitors and associators. The morphisms
     of the free monoidal category are obtained as a quotient of these formal morphisms by the
     relations defining a monoidal category. -/
@@ -67,20 +70,21 @@ inductive Hom : F C → F C → Type u
   | id (X) : hom X X
   | α_hom (X Y Z : F C) : hom ((X.tensor Y).tensor Z) (X.tensor (Y.tensor Z))
   | α_inv (X Y Z : F C) : hom (X.tensor (Y.tensor Z)) ((X.tensor Y).tensor Z)
-  | l_hom (X) : hom (unit.tensor X) X
-  | l_inv (X) : hom X (unit.tensor X)
-  | ρ_hom (X : F C) : hom (X.tensor unit) X
-  | ρ_inv (X : F C) : hom X (X.tensor unit)
+  | l_hom (X) : hom (Unit.tensor X) X
+  | l_inv (X) : hom X (Unit.tensor X)
+  | ρ_hom (X : F C) : hom (X.tensor Unit) X
+  | ρ_inv (X : F C) : hom X (X.tensor Unit)
   | comp {X Y Z} (f : hom X Y) (g : hom Y Z) : hom X Z
   | tensor {W X Y Z} (f : hom W Y) (g : hom X Z) : hom (W.tensor X) (Y.tensor Z)
 #align category_theory.free_monoidal_category.hom CategoryTheory.FreeMonoidalCategory.Hom
+-/
 
 -- mathport name: «expr ⟶ᵐ »
 local infixr:10 " ⟶ᵐ " => Hom
 
 /-- The morphisms of the free monoidal category satisfy 21 relations ensuring that the resulting
     category is in fact a category and that it is monoidal. -/
-inductive HomEquiv : ∀ {X Y : F C}, (X ⟶ᵐ Y) → (X ⟶ᵐ Y) → Prop
+inductive HomEquivCat : ∀ {X Y : F C}, (X ⟶ᵐ Y) → (X ⟶ᵐ Y) → Prop
   | refl {X Y} (f : X ⟶ᵐ Y) : hom_equiv f f
   | symm {X Y} (f g : X ⟶ᵐ Y) : hom_equiv f g → hom_equiv g f
   | trans {X Y} {f g h : X ⟶ᵐ Y} : hom_equiv f g → hom_equiv g h → hom_equiv f h
@@ -110,12 +114,12 @@ inductive HomEquiv : ∀ {X Y : F C}, (X ⟶ᵐ Y) → (X ⟶ᵐ Y) → Prop
   | ρ_inv_hom {X} : hom_equiv ((Hom.ρ_inv X).comp (Hom.ρ_hom X)) (Hom.id _)
   |
   ρ_naturality {X Y} (f : X ⟶ᵐ Y) :
-    hom_equiv ((f.tensor (Hom.id unit)).comp (Hom.ρ_hom Y)) ((Hom.ρ_hom X).comp f)
+    hom_equiv ((f.tensor (Hom.id Unit)).comp (Hom.ρ_hom Y)) ((Hom.ρ_hom X).comp f)
   | l_hom_inv {X} : hom_equiv ((Hom.l_hom X).comp (Hom.l_inv X)) (Hom.id _)
   | l_inv_hom {X} : hom_equiv ((Hom.l_inv X).comp (Hom.l_hom X)) (Hom.id _)
   |
   l_naturality {X Y} (f : X ⟶ᵐ Y) :
-    hom_equiv (((Hom.id unit).tensor f).comp (Hom.l_hom Y)) ((Hom.l_hom X).comp f)
+    hom_equiv (((Hom.id Unit).tensor f).comp (Hom.l_hom Y)) ((Hom.l_hom X).comp f)
   |
   pentagon {W X Y Z} :
     hom_equiv
@@ -124,18 +128,20 @@ inductive HomEquiv : ∀ {X Y : F C}, (X ⟶ᵐ Y) → (X ⟶ᵐ Y) → Prop
       ((Hom.α_hom (W.tensor X) Y Z).comp (Hom.α_hom W X (Y.tensor Z)))
   |
   triangle {X Y} :
-    hom_equiv ((Hom.α_hom X unit Y).comp ((Hom.id X).tensor (Hom.l_hom Y)))
+    hom_equiv ((Hom.α_hom X Unit Y).comp ((Hom.id X).tensor (Hom.l_hom Y)))
       ((Hom.ρ_hom X).tensor (Hom.id Y))
-#align category_theory.free_monoidal_category.hom_equiv CategoryTheory.FreeMonoidalCategory.HomEquiv
+#align category_theory.free_monoidal_category.hom_equiv CategoryTheory.FreeMonoidalCategory.HomEquivCat
 
+#print CategoryTheory.FreeMonoidalCategory.setoidHom /-
 /-- We say that two formal morphisms in the free monoidal category are equivalent if they become
     equal if we apply the relations that are true in a monoidal category. Note that we will prove
     that there is only one equivalence class -- this is the monoidal coherence theorem. -/
 def setoidHom (X Y : F C) : Setoid (X ⟶ᵐ Y) :=
-  ⟨HomEquiv,
-    ⟨fun f => HomEquiv.refl f, fun f g => HomEquiv.symm f g, fun f g h hfg hgh =>
-      HomEquiv.trans hfg hgh⟩⟩
+  ⟨HomEquivCat,
+    ⟨fun f => HomEquivCat.refl f, fun f g => HomEquivCat.symm f g, fun f g h hfg hgh =>
+      HomEquivCat.trans hfg hgh⟩⟩
 #align category_theory.free_monoidal_category.setoid_hom CategoryTheory.FreeMonoidalCategory.setoidHom
+-/
 
 attribute [instance] setoid_hom
 
@@ -143,6 +149,7 @@ section
 
 open FreeMonoidalCategory.HomEquiv
 
+#print CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory /-
 instance categoryFreeMonoidalCategory : Category.{u} (F C)
     where
   Hom X Y := Quotient (FreeMonoidalCategory.setoidHom X Y)
@@ -163,6 +170,7 @@ instance categoryFreeMonoidalCategory : Category.{u} (F C)
     rintro W X Y Z ⟨f⟩ ⟨g⟩ ⟨h⟩
     exact Quotient.sound (assoc f g h)
 #align category_theory.free_monoidal_category.category_free_monoidal_category CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory
+-/
 
 instance : MonoidalCategory (F C)
     where
@@ -175,7 +183,7 @@ instance : MonoidalCategory (F C)
   tensor_comp' X₁ Y₁ Z₁ X₂ Y₂ Z₂ := by
     rintro ⟨f₁⟩ ⟨f₂⟩ ⟨g₁⟩ ⟨g₂⟩
     exact Quotient.sound (tensor_comp _ _ _ _)
-  tensorUnit := FreeMonoidalCategory.unit
+  tensorUnit := FreeMonoidalCategory.Unit
   associator X Y Z :=
     ⟨⟦Hom.α_hom X Y Z⟧, ⟦Hom.α_inv X Y Z⟧, Quotient.sound α_hom_inv, Quotient.sound α_inv_hom⟩
   associator_naturality' X₁ X₂ X₃ Y₁ Y₂ Y₃ :=
@@ -194,61 +202,119 @@ instance : MonoidalCategory (F C)
   pentagon' W X Y Z := Quotient.sound pentagon
   triangle' X Y := Quotient.sound triangle
 
+#print CategoryTheory.FreeMonoidalCategory.mk_comp /-
 @[simp]
-theorem mk'_comp {X Y Z : F C} (f : X ⟶ᵐ Y) (g : Y ⟶ᵐ Z) :
+theorem mk_comp {X Y Z : F C} (f : X ⟶ᵐ Y) (g : Y ⟶ᵐ Z) :
     ⟦f.comp g⟧ = @CategoryStruct.comp (F C) _ _ _ _ ⟦f⟧ ⟦g⟧ :=
   rfl
-#align category_theory.free_monoidal_category.mk_comp CategoryTheory.FreeMonoidalCategory.mk'_comp
+#align category_theory.free_monoidal_category.mk_comp CategoryTheory.FreeMonoidalCategory.mk_comp
+-/
 
+/- warning: category_theory.free_monoidal_category.mk_tensor -> CategoryTheory.FreeMonoidalCategory.mk_tensor is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {X₁ : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y₁ : CategoryTheory.FreeMonoidalCategory.{u1} C} {X₂ : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y₂ : CategoryTheory.FreeMonoidalCategory.{u1} C} (f : CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₁ Y₁) (g : CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₂ Y₂), Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X₁ X₂) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y₁ Y₂)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X₁ X₂) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y₁ Y₂))) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X₁ X₂) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y₁ Y₂)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X₁ X₂) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y₁ Y₂)) (CategoryTheory.FreeMonoidalCategory.Hom.tensor.{u1} C X₁ X₂ Y₁ Y₂ f g)) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X₁ Y₁ X₂ Y₂ (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₁ Y₁) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X₁ Y₁) f) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₂ Y₂) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X₂ Y₂) g))
+but is expected to have type
+  forall {C : Type.{u1}} {X₁ : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y₁ : CategoryTheory.FreeMonoidalCategory.{u1} C} {X₂ : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y₂ : CategoryTheory.FreeMonoidalCategory.{u1} C} (f : CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₁ Y₁) (g : CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₂ Y₂), Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X₁ X₂) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y₁ Y₂)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X₁ X₂) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y₁ Y₂))) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X₁ X₂) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y₁ Y₂)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X₁ X₂) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y₁ Y₂)) (CategoryTheory.FreeMonoidalCategory.Hom.tensor.{u1} C X₁ X₂ Y₁ Y₂ f g)) (CategoryTheory.MonoidalCategory.tensorHom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X₁ Y₁ X₂ Y₂ (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₁ Y₁) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X₁ Y₁) f) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X₂ Y₂) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X₂ Y₂) g))
+Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.mk_tensor CategoryTheory.FreeMonoidalCategory.mk_tensorₓ'. -/
 @[simp]
-theorem mk'_tensor {X₁ Y₁ X₂ Y₂ : F C} (f : X₁ ⟶ᵐ Y₁) (g : X₂ ⟶ᵐ Y₂) :
+theorem mk_tensor {X₁ Y₁ X₂ Y₂ : F C} (f : X₁ ⟶ᵐ Y₁) (g : X₂ ⟶ᵐ Y₂) :
     ⟦f.tensor g⟧ = @MonoidalCategory.tensorHom (F C) _ _ _ _ _ _ ⟦f⟧ ⟦g⟧ :=
   rfl
-#align category_theory.free_monoidal_category.mk_tensor CategoryTheory.FreeMonoidalCategory.mk'_tensor
+#align category_theory.free_monoidal_category.mk_tensor CategoryTheory.FreeMonoidalCategory.mk_tensor
 
+#print CategoryTheory.FreeMonoidalCategory.mk_id /-
 @[simp]
-theorem mk'_id {X : F C} : ⟦Hom.id X⟧ = 𝟙 X :=
+theorem mk_id {X : F C} : ⟦Hom.id X⟧ = 𝟙 X :=
   rfl
-#align category_theory.free_monoidal_category.mk_id CategoryTheory.FreeMonoidalCategory.mk'_id
+#align category_theory.free_monoidal_category.mk_id CategoryTheory.FreeMonoidalCategory.mk_id
+-/
 
+/- warning: category_theory.free_monoidal_category.mk_α_hom -> CategoryTheory.FreeMonoidalCategory.mk_α_hom is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y : CategoryTheory.FreeMonoidalCategory.{u1} C} {Z : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y Z)))) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y Z))) (CategoryTheory.FreeMonoidalCategory.Hom.α_hom.{u1} C X Y Z)) (CategoryTheory.Iso.hom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.associator.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y Z))
+but is expected to have type
+  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y : CategoryTheory.FreeMonoidalCategory.{u1} C} {Z : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y Z)))) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y Z))) (CategoryTheory.FreeMonoidalCategory.Hom.α_hom.{u1} C X Y Z)) (CategoryTheory.Iso.hom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.associator.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y Z))
+Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.mk_α_hom CategoryTheory.FreeMonoidalCategory.mk_α_homₓ'. -/
 @[simp]
-theorem mk'_α_hom {X Y Z : F C} : ⟦Hom.α_hom X Y Z⟧ = (α_ X Y Z).Hom :=
+theorem mk_α_hom {X Y Z : F C} : ⟦Hom.α_hom X Y Z⟧ = (α_ X Y Z).Hom :=
   rfl
-#align category_theory.free_monoidal_category.mk_α_hom CategoryTheory.FreeMonoidalCategory.mk'_α_hom
+#align category_theory.free_monoidal_category.mk_α_hom CategoryTheory.FreeMonoidalCategory.mk_α_hom
 
+/- warning: category_theory.free_monoidal_category.mk_α_inv -> CategoryTheory.FreeMonoidalCategory.mk_α_inv is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y : CategoryTheory.FreeMonoidalCategory.{u1} C} {Z : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z)) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y) Z))) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z)) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y) Z)) (CategoryTheory.FreeMonoidalCategory.Hom.α_inv.{u1} C X Y Z)) (CategoryTheory.Iso.inv.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.associator.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y Z))
+but is expected to have type
+  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y : CategoryTheory.FreeMonoidalCategory.{u1} C} {Z : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z)) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y) Z))) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C Y Z)) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) Z)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y) Z)) (CategoryTheory.FreeMonoidalCategory.Hom.α_inv.{u1} C X Y Z)) (CategoryTheory.Iso.inv.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y) Z) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) Y Z)) (CategoryTheory.MonoidalCategory.associator.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y Z))
+Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.mk_α_inv CategoryTheory.FreeMonoidalCategory.mk_α_invₓ'. -/
 @[simp]
-theorem mk'_α_inv {X Y Z : F C} : ⟦Hom.α_inv X Y Z⟧ = (α_ X Y Z).inv :=
+theorem mk_α_inv {X Y Z : F C} : ⟦Hom.α_inv X Y Z⟧ = (α_ X Y Z).inv :=
   rfl
-#align category_theory.free_monoidal_category.mk_α_inv CategoryTheory.FreeMonoidalCategory.mk'_α_inv
+#align category_theory.free_monoidal_category.mk_α_inv CategoryTheory.FreeMonoidalCategory.mk_α_inv
 
+/- warning: category_theory.free_monoidal_category.mk_ρ_hom -> CategoryTheory.FreeMonoidalCategory.mk_ρ_hom is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C)) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C))) X)) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C)) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C))) X) (CategoryTheory.FreeMonoidalCategory.Hom.ρ_hom.{u1} C X)) (CategoryTheory.Iso.hom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C))) X (CategoryTheory.MonoidalCategory.rightUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X))
+but is expected to have type
+  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C)) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C))) X)) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C)) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C))) X) (CategoryTheory.FreeMonoidalCategory.Hom.ρ_hom.{u1} C X)) (CategoryTheory.Iso.hom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C))) X (CategoryTheory.MonoidalCategory.rightUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.mk_ρ_hom CategoryTheory.FreeMonoidalCategory.mk_ρ_homₓ'. -/
 @[simp]
-theorem mk'_ρ_hom {X : F C} : ⟦Hom.ρ_hom X⟧ = (ρ_ X).Hom :=
+theorem mk_ρ_hom {X : F C} : ⟦Hom.ρ_hom X⟧ = (ρ_ X).Hom :=
   rfl
-#align category_theory.free_monoidal_category.mk_ρ_hom CategoryTheory.FreeMonoidalCategory.mk'_ρ_hom
+#align category_theory.free_monoidal_category.mk_ρ_hom CategoryTheory.FreeMonoidalCategory.mk_ρ_hom
 
+/- warning: category_theory.free_monoidal_category.mk_ρ_inv -> CategoryTheory.FreeMonoidalCategory.mk_ρ_inv is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C))))) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C)))) (CategoryTheory.FreeMonoidalCategory.Hom.ρ_inv.{u1} C X)) (CategoryTheory.Iso.inv.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C))) X (CategoryTheory.MonoidalCategory.rightUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X))
+but is expected to have type
+  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C))))) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C))) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C)))) (CategoryTheory.FreeMonoidalCategory.Hom.ρ_inv.{u1} C X)) (CategoryTheory.Iso.inv.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C))) X (CategoryTheory.MonoidalCategory.rightUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.mk_ρ_inv CategoryTheory.FreeMonoidalCategory.mk_ρ_invₓ'. -/
 @[simp]
-theorem mk'_ρ_inv {X : F C} : ⟦Hom.ρ_inv X⟧ = (ρ_ X).inv :=
+theorem mk_ρ_inv {X : F C} : ⟦Hom.ρ_inv X⟧ = (ρ_ X).inv :=
   rfl
-#align category_theory.free_monoidal_category.mk_ρ_inv CategoryTheory.FreeMonoidalCategory.mk'_ρ_inv
+#align category_theory.free_monoidal_category.mk_ρ_inv CategoryTheory.FreeMonoidalCategory.mk_ρ_inv
 
+/- warning: category_theory.free_monoidal_category.mk_l_hom -> CategoryTheory.FreeMonoidalCategory.mk_l_hom is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C)) X) X)) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C)) X) X) (CategoryTheory.FreeMonoidalCategory.Hom.l_hom.{u1} C X)) (CategoryTheory.Iso.hom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C)) X) X (CategoryTheory.MonoidalCategory.leftUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X))
+but is expected to have type
+  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C)) X) X)) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X) X) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C)) X) X) (CategoryTheory.FreeMonoidalCategory.Hom.l_hom.{u1} C X)) (CategoryTheory.Iso.hom.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C)) X) X (CategoryTheory.MonoidalCategory.leftUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.mk_l_hom CategoryTheory.FreeMonoidalCategory.mk_l_homₓ'. -/
 @[simp]
-theorem mk'_l_hom {X : F C} : ⟦Hom.l_hom X⟧ = (λ_ X).Hom :=
+theorem mk_l_hom {X : F C} : ⟦Hom.l_hom X⟧ = (λ_ X).Hom :=
   rfl
-#align category_theory.free_monoidal_category.mk_l_hom CategoryTheory.FreeMonoidalCategory.mk'_l_hom
+#align category_theory.free_monoidal_category.mk_l_hom CategoryTheory.FreeMonoidalCategory.mk_l_hom
 
+/- warning: category_theory.free_monoidal_category.mk_l_inv -> CategoryTheory.FreeMonoidalCategory.mk_l_inv is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C)) X))) (Quotient.mk'.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C)) X)) (CategoryTheory.FreeMonoidalCategory.Hom.l_inv.{u1} C X)) (CategoryTheory.Iso.inv.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C)) X) X (CategoryTheory.MonoidalCategory.leftUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X))
+but is expected to have type
+  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (Quotient.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C)) X))) (Quotient.mk.{succ u1} (CategoryTheory.FreeMonoidalCategory.Hom.{u1} C X (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) X)) (CategoryTheory.FreeMonoidalCategory.setoidHom.{u1} C X (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C)) X)) (CategoryTheory.FreeMonoidalCategory.Hom.l_inv.{u1} C X)) (CategoryTheory.Iso.inv.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit'.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C)) X) X (CategoryTheory.MonoidalCategory.leftUnitor.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.mk_l_inv CategoryTheory.FreeMonoidalCategory.mk_l_invₓ'. -/
 @[simp]
-theorem mk'_l_inv {X : F C} : ⟦Hom.l_inv X⟧ = (λ_ X).inv :=
+theorem mk_l_inv {X : F C} : ⟦Hom.l_inv X⟧ = (λ_ X).inv :=
   rfl
-#align category_theory.free_monoidal_category.mk_l_inv CategoryTheory.FreeMonoidalCategory.mk'_l_inv
+#align category_theory.free_monoidal_category.mk_l_inv CategoryTheory.FreeMonoidalCategory.mk_l_inv
 
+/- warning: category_theory.free_monoidal_category.tensor_eq_tensor -> CategoryTheory.FreeMonoidalCategory.tensor_eq_tensor is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C) X Y)
+but is expected to have type
+  forall {C : Type.{u1}} {X : CategoryTheory.FreeMonoidalCategory.{u1} C} {Y : CategoryTheory.FreeMonoidalCategory.{u1} C}, Eq.{succ u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.tensor.{u1} C X Y) (CategoryTheory.MonoidalCategory.tensorObj.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C) X Y)
+Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.tensor_eq_tensor CategoryTheory.FreeMonoidalCategory.tensor_eq_tensorₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
 @[simp]
 theorem tensor_eq_tensor {X Y : F C} : X.tensor Y = X ⊗ Y :=
   rfl
 #align category_theory.free_monoidal_category.tensor_eq_tensor CategoryTheory.FreeMonoidalCategory.tensor_eq_tensor
 
+/- warning: category_theory.free_monoidal_category.unit_eq_unit -> CategoryTheory.FreeMonoidalCategory.unit_eq_unit is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u1}}, Eq.{succ u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u1} C))
+but is expected to have type
+  forall {C : Type.{u1}}, Eq.{succ u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.Unit.{u1} C) (CategoryTheory.MonoidalCategory.tensorUnit.{u1, u1} (CategoryTheory.FreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u1} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u1} C))
+Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.unit_eq_unit CategoryTheory.FreeMonoidalCategory.unit_eq_unitₓ'. -/
 @[simp]
-theorem unit_eq_unit : FreeMonoidalCategory.unit = 𝟙_ (F C) :=
+theorem unit_eq_unit : FreeMonoidalCategory.Unit = 𝟙_ (F C) :=
   rfl
 #align category_theory.free_monoidal_category.unit_eq_unit CategoryTheory.FreeMonoidalCategory.unit_eq_unit
 
@@ -256,31 +322,22 @@ section Functor
 
 variable {D : Type u'} [Category.{v'} D] [MonoidalCategory D] (f : C → D)
 
-/- warning: category_theory.free_monoidal_category.project_obj -> CategoryTheory.FreeMonoidalCategory.projectObj is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} D] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u3} D _inst_1], (C -> D) -> (CategoryTheory.FreeMonoidalCategory.{u2} C) -> D
-but is expected to have type
-  forall {C : Type.{u1}} {D : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u3, u2} D] [_inst_2 : CategoryTheory.MonoidalCategory.{u3, u2} D _inst_1], (C -> D) -> (CategoryTheory.FreeMonoidalCategory.{u1} C) -> D
-Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.project_obj CategoryTheory.FreeMonoidalCategory.projectObjₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print CategoryTheory.FreeMonoidalCategory.projectObj /-
 /-- Auxiliary definition for `free_monoidal_category.project`. -/
 def projectObj : F C → D
   | free_monoidal_category.of X => f X
   | free_monoidal_category.unit => 𝟙_ D
   | free_monoidal_category.tensor X Y => project_obj X ⊗ project_obj Y
 #align category_theory.free_monoidal_category.project_obj CategoryTheory.FreeMonoidalCategory.projectObj
+-/
 
 section
 
 open Hom
 
-/- warning: category_theory.free_monoidal_category.project_map_aux -> CategoryTheory.FreeMonoidalCategory.projectMapAux is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} D] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u3} D _inst_1] (f : C -> D) {X : CategoryTheory.FreeMonoidalCategory.{u2} C} {Y : CategoryTheory.FreeMonoidalCategory.{u2} C}, (CategoryTheory.FreeMonoidalCategory.Hom.{u2} C X Y) -> (Quiver.Hom.{succ u1, u3} D (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} D (CategoryTheory.Category.toCategoryStruct.{u1, u3} D _inst_1)) (CategoryTheory.FreeMonoidalCategory.projectObj.{u1, u2, u3} C D _inst_1 _inst_2 f X) (CategoryTheory.FreeMonoidalCategory.projectObj.{u1, u2, u3} C D _inst_1 _inst_2 f Y))
-but is expected to have type
-  PUnit.{max (max (succ (succ u1)) (succ (succ u2))) (succ (succ u3))}
-Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.project_map_aux CategoryTheory.FreeMonoidalCategory.projectMapAuxₓ'. -/
 /- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print CategoryTheory.FreeMonoidalCategory.projectMapAux /-
 /-- Auxiliary definition for `free_monoidal_category.project`. -/
 @[simp]
 def projectMapAux : ∀ {X Y : F C}, (X ⟶ᵐ Y) → (projectObj f X ⟶ projectObj f Y)
@@ -294,7 +351,9 @@ def projectMapAux : ∀ {X Y : F C}, (X ⟶ᵐ Y) → (projectObj f X ⟶ projec
   | _, _, comp f g => project_map_aux f ≫ project_map_aux g
   | _, _, hom.tensor f g => project_map_aux f ⊗ project_map_aux g
 #align category_theory.free_monoidal_category.project_map_aux CategoryTheory.FreeMonoidalCategory.projectMapAux
+-/
 
+#print CategoryTheory.FreeMonoidalCategory.projectMap /-
 /-- Auxiliary definition for `free_monoidal_category.project`. -/
 def projectMap (X Y : F C) : (X ⟶ Y) → (projectObj f X ⟶ projectObj f Y) :=
   Quotient.lift (projectMapAux f)
@@ -331,9 +390,16 @@ def projectMap (X Y : F C) : (X ⟶ Y) → (projectObj f X ⟶ projectObj f Y) :
       · simp only [project_map_aux]
         exact monoidal_category.triangle _ _)
 #align category_theory.free_monoidal_category.project_map CategoryTheory.FreeMonoidalCategory.projectMap
+-/
 
 end
 
+/- warning: category_theory.free_monoidal_category.project -> CategoryTheory.FreeMonoidalCategory.project is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} D] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u3} D _inst_1], (C -> D) -> (CategoryTheory.MonoidalFunctor.{u2, u1, u2, u3} (CategoryTheory.FreeMonoidalCategory.{u2} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u2} C) (CategoryTheory.FreeMonoidalCategory.CategoryTheory.monoidalCategory.{u2} C) D _inst_1 _inst_2)
+but is expected to have type
+  forall {C : Type.{u2}} {D : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} D] [_inst_2 : CategoryTheory.MonoidalCategory.{u1, u3} D _inst_1], (C -> D) -> (CategoryTheory.MonoidalFunctor.{u2, u1, u2, u3} (CategoryTheory.FreeMonoidalCategory.{u2} C) (CategoryTheory.FreeMonoidalCategory.categoryFreeMonoidalCategory.{u2} C) (CategoryTheory.FreeMonoidalCategory.instMonoidalCategoryFreeMonoidalCategoryCategoryFreeMonoidalCategory.{u2} C) D _inst_1 _inst_2)
+Case conversion may be inaccurate. Consider using '#align category_theory.free_monoidal_category.project CategoryTheory.FreeMonoidalCategory.projectₓ'. -/
 /-- If `D` is a monoidal category and we have a function `C → D`, then we have a functor from the
     free monoidal category over `C` to the category `D`. -/
 def project : MonoidalFunctor (F C) D

Changes in mathlib4

mathlib3
mathlib4
chore: classify porting notes referring to missing linters (#12098)

Reference the newly created issues #12094 and #12096, as well as the pre-existing #5171. Change all references to #10927 to #5171. Some of these changes were not labelled as "porting note"; change this for good measure.

Diff
@@ -60,7 +60,7 @@ attribute [nolint simpNF] unit.sizeOf_spec tensor.injEq tensor.sizeOf_spec
 /-- Formal compositions and tensor products of identities, unitors and associators. The morphisms
     of the free monoidal category are obtained as a quotient of these formal morphisms by the
     relations defining a monoidal category. -/
--- Porting note: unsupported linter
+-- Porting note(#5171): linter not ported yet
 -- @[nolint has_nonempty_instance]
 inductive Hom : F C → F C → Type u
   | id (X) : Hom X X
feat(CategoryTheory/Monoidal): add whiskerings to free monoidal categories (#11172)

Since the coherence tactic assume that a certain defeq property holds for structural morphisms in a monoidal category and their corresponding morphisms in the free monoidal category, we want free monoidal categories to have the whiskering operators as primitives.

This PR also simplified the proof of the coherence theorem, and removed some porting notes.

Diff
@@ -71,6 +71,8 @@ inductive Hom : F C → F C → Type u
   | ρ_hom (X : F C) : Hom (X.tensor unit) X
   | ρ_inv (X : F C) : Hom X (X.tensor unit)
   | comp {X Y Z} (f : Hom X Y) (g : Hom Y Z) : Hom X Z
+  | whiskerLeft (X : F C) {Y₁ Y₂} (f : Hom Y₁ Y₂) : Hom (X.tensor Y₁) (X.tensor Y₂)
+  | whiskerRight {X₁ X₂} (f : Hom X₁ X₂) (Y : F C) : Hom (X₁.tensor Y) (X₂.tensor Y)
   | tensor {W X Y Z} (f : Hom W Y) (g : Hom X Z) : Hom (W.tensor X) (Y.tensor Z)
 #align category_theory.free_monoidal_category.hom CategoryTheory.FreeMonoidalCategory.Hom
 
@@ -84,8 +86,14 @@ inductive HomEquiv : ∀ {X Y : F C}, (X ⟶ᵐ Y) → (X ⟶ᵐ Y) → Prop
   | trans {X Y} {f g h : X ⟶ᵐ Y} : HomEquiv f g → HomEquiv g h → HomEquiv f h
   | comp {X Y Z} {f f' : X ⟶ᵐ Y} {g g' : Y ⟶ᵐ Z} :
       HomEquiv f f' → HomEquiv g g' → HomEquiv (f.comp g) (f'.comp g')
+  | whiskerLeft (X) {Y Z} (f f' : Y ⟶ᵐ Z) :
+      HomEquiv f f' → HomEquiv (f.whiskerLeft X) (f'.whiskerLeft X)
+  | whiskerRight {Y Z} (f f' : Y ⟶ᵐ Z) (X) :
+      HomEquiv f f' → HomEquiv (f.whiskerRight X) (f'.whiskerRight X)
   | tensor {W X Y Z} {f f' : W ⟶ᵐ X} {g g' : Y ⟶ᵐ Z} :
       HomEquiv f f' → HomEquiv g g' → HomEquiv (f.tensor g) (f'.tensor g')
+  | tensorHom_def {X₁ Y₁ X₂ Y₂} (f : X₁ ⟶ᵐ Y₁) (g : X₂ ⟶ᵐ Y₂) :
+      HomEquiv (f.tensor g) ((f.whiskerRight X₂).comp (g.whiskerLeft Y₁))
   | comp_id {X Y} (f : X ⟶ᵐ Y) : HomEquiv (f.comp (Hom.id _)) f
   | id_comp {X Y} (f : X ⟶ᵐ Y) : HomEquiv ((Hom.id _).comp f) f
   | assoc {X Y U V : F C} (f : X ⟶ᵐ U) (g : U ⟶ᵐ V) (h : V ⟶ᵐ Y) :
@@ -94,6 +102,8 @@ inductive HomEquiv : ∀ {X Y : F C}, (X ⟶ᵐ Y) → (X ⟶ᵐ Y) → Prop
   | tensor_comp {X₁ Y₁ Z₁ X₂ Y₂ Z₂ : F C} (f₁ : X₁ ⟶ᵐ Y₁) (f₂ : X₂ ⟶ᵐ Y₂) (g₁ : Y₁ ⟶ᵐ Z₁)
       (g₂ : Y₂ ⟶ᵐ Z₂) :
     HomEquiv ((f₁.comp g₁).tensor (f₂.comp g₂)) ((f₁.tensor f₂).comp (g₁.tensor g₂))
+  | whiskerLeft_id (X Y) : HomEquiv ((Hom.id Y).whiskerLeft X) (Hom.id (X.tensor Y))
+  | id_whiskerRight (X Y) : HomEquiv ((Hom.id X).whiskerRight Y) (Hom.id (X.tensor Y))
   | α_hom_inv {X Y Z} : HomEquiv ((Hom.α_hom X Y Z).comp (Hom.α_inv X Y Z)) (Hom.id _)
   | α_inv_hom {X Y Z} : HomEquiv ((Hom.α_inv X Y Z).comp (Hom.α_hom X Y Z)) (Hom.id _)
   | associator_naturality {X₁ X₂ X₃ Y₁ Y₂ Y₃} (f₁ : X₁ ⟶ᵐ Y₁) (f₂ : X₂ ⟶ᵐ Y₂) (f₃ : X₃ ⟶ᵐ Y₃) :
@@ -102,19 +112,19 @@ inductive HomEquiv : ∀ {X Y : F C}, (X ⟶ᵐ Y) → (X ⟶ᵐ Y) → Prop
   | ρ_hom_inv {X} : HomEquiv ((Hom.ρ_hom X).comp (Hom.ρ_inv X)) (Hom.id _)
   | ρ_inv_hom {X} : HomEquiv ((Hom.ρ_inv X).comp (Hom.ρ_hom X)) (Hom.id _)
   | ρ_naturality {X Y} (f : X ⟶ᵐ Y) :
-      HomEquiv ((f.tensor (Hom.id unit)).comp (Hom.ρ_hom Y)) ((Hom.ρ_hom X).comp f)
+      HomEquiv ((f.whiskerRight unit).comp (Hom.ρ_hom Y)) ((Hom.ρ_hom X).comp f)
   | l_hom_inv {X} : HomEquiv ((Hom.l_hom X).comp (Hom.l_inv X)) (Hom.id _)
   | l_inv_hom {X} : HomEquiv ((Hom.l_inv X).comp (Hom.l_hom X)) (Hom.id _)
   | l_naturality {X Y} (f : X ⟶ᵐ Y) :
-      HomEquiv (((Hom.id unit).tensor f).comp (Hom.l_hom Y)) ((Hom.l_hom X).comp f)
+      HomEquiv ((f.whiskerLeft unit).comp (Hom.l_hom Y)) ((Hom.l_hom X).comp f)
   | pentagon {W X Y Z} :
       HomEquiv
-        (((Hom.α_hom W X Y).tensor (Hom.id Z)).comp
-          ((Hom.α_hom W (X.tensor Y) Z).comp ((Hom.id W).tensor (Hom.α_hom X Y Z))))
+        (((Hom.α_hom W X Y).whiskerRight Z).comp
+          ((Hom.α_hom W (X.tensor Y) Z).comp ((Hom.α_hom X Y Z).whiskerLeft W)))
         ((Hom.α_hom (W.tensor X) Y Z).comp (Hom.α_hom W X (Y.tensor Z)))
   | triangle {X Y} :
-      HomEquiv ((Hom.α_hom X unit Y).comp ((Hom.id X).tensor (Hom.l_hom Y)))
-        ((Hom.ρ_hom X).tensor (Hom.id Y))
+      HomEquiv ((Hom.α_hom X unit Y).comp ((Hom.l_hom Y).whiskerLeft X))
+        ((Hom.ρ_hom X).whiskerRight Y)
 set_option linter.uppercaseLean3 false
 #align category_theory.free_monoidal_category.HomEquiv CategoryTheory.FreeMonoidalCategory.HomEquiv
 
@@ -135,13 +145,8 @@ open FreeMonoidalCategory.HomEquiv
 
 instance categoryFreeMonoidalCategory : Category.{u} (F C) where
   Hom X Y := Quotient (FreeMonoidalCategory.setoidHom X Y)
-  id X := ⟦FreeMonoidalCategory.Hom.id _⟧
-  comp := @fun X Y Z f g =>
-    Quotient.map₂ Hom.comp
-      (by
-        intro f f' hf g g' hg
-        exact comp hf hg)
-      f g
+  id X := ⟦Hom.id X⟧
+  comp := Quotient.map₂ Hom.comp (fun _ _ hf _ _ hg ↦ HomEquiv.comp hf hg)
   id_comp := by
     rintro X Y ⟨f⟩
     exact Quotient.sound (id_comp f)
@@ -155,36 +160,18 @@ instance categoryFreeMonoidalCategory : Category.{u} (F C) where
 
 instance : MonoidalCategory (F C) where
   tensorObj X Y := FreeMonoidalCategory.tensor X Y
-  tensorHom := @fun X₁ Y₁ X₂ Y₂ =>
-    Quotient.map₂ Hom.tensor <| by
-      intro _ _ h _ _ h'
-      exact HomEquiv.tensor h h'
-  whiskerLeft := fun X _ _ f =>
-    Quotient.map (fun f' => Hom.tensor (Hom.id X) f')
-      (fun _ _ h => HomEquiv.tensor (HomEquiv.refl (Hom.id X)) h) f
-  whiskerRight := fun f Y =>
-    Quotient.map (fun f' => Hom.tensor f' (Hom.id Y))
-      (fun _ _ h => HomEquiv.tensor h (HomEquiv.refl (Hom.id Y))) f
+  tensorHom := Quotient.map₂ Hom.tensor (fun _ _ hf _ _ hg ↦ HomEquiv.tensor hf hg)
+  whiskerLeft X _ _ f := Quot.map (fun f ↦ Hom.whiskerLeft X f) (fun f f' ↦ .whiskerLeft X f f') f
+  whiskerRight f Y := Quot.map (fun f ↦ Hom.whiskerRight f Y) (fun f f' ↦ .whiskerRight f f' Y) f
   tensorHom_def := by
     rintro W X Y Z ⟨f⟩ ⟨g⟩
-    apply Quotient.sound
-    calc Hom.tensor f g
-      _ ≈ Hom.tensor (Hom.comp f (Hom.id X)) (Hom.comp (Hom.id Y) g) := by
-        apply HomEquiv.tensor (HomEquiv.comp_id f).symm (HomEquiv.id_comp g).symm
-      _ ≈ Hom.comp (Hom.tensor f (Hom.id Y)) (Hom.tensor (Hom.id X) g) := by
-        apply HomEquiv.tensor_comp
-  whiskerLeft_id := by
-    rintro X Y
-    apply Quotient.sound
-    apply HomEquiv.tensor_id
-  id_whiskerRight := by
-    intro X Y
-    apply Quotient.sound
-    apply HomEquiv.tensor_id
-  tensor_id X Y := Quotient.sound tensor_id
+    exact Quotient.sound (tensorHom_def _ _)
+  tensor_id X Y := Quot.sound tensor_id
   tensor_comp := @fun X₁ Y₁ Z₁ X₂ Y₂ Z₂ => by
     rintro ⟨f₁⟩ ⟨f₂⟩ ⟨g₁⟩ ⟨g₂⟩
     exact Quotient.sound (tensor_comp _ _ _ _)
+  whiskerLeft_id X Y := Quot.sound (HomEquiv.whiskerLeft_id X Y)
+  id_whiskerRight X Y := Quot.sound (HomEquiv.id_whiskerRight X Y)
   tensorUnit := FreeMonoidalCategory.unit
   associator X Y Z :=
     ⟨⟦Hom.α_hom X Y Z⟧, ⟦Hom.α_inv X Y Z⟧, Quotient.sound α_hom_inv, Quotient.sound α_inv_hom⟩
@@ -215,6 +202,16 @@ theorem mk_tensor {X₁ Y₁ X₂ Y₂ : F C} (f : X₁ ⟶ᵐ Y₁) (g : X₂ 
   rfl
 #align category_theory.free_monoidal_category.mk_tensor CategoryTheory.FreeMonoidalCategory.mk_tensor
 
+@[simp]
+theorem mk_whiskerLeft (X : F C) {Y₁ Y₂ : F C} (f : Y₁ ⟶ᵐ Y₂) :
+    ⟦f.whiskerLeft X⟧ = MonoidalCategory.whiskerLeft (C := F C) (X := X) (f := ⟦f⟧) :=
+  rfl
+
+@[simp]
+theorem mk_whiskerRight {X₁ X₂ : F C} (f : X₁ ⟶ᵐ X₂) (Y : F C) :
+    ⟦f.whiskerRight Y⟧ = MonoidalCategory.whiskerRight (C := F C) (f := ⟦f⟧) (Y := Y) :=
+  rfl
+
 @[simp]
 theorem mk_id {X : F C} : ⟦Hom.id X⟧ = 𝟙 X :=
   rfl
@@ -260,6 +257,44 @@ theorem unit_eq_unit : FreeMonoidalCategory.unit = 𝟙_ (F C) :=
   rfl
 #align category_theory.free_monoidal_category.unit_eq_unit CategoryTheory.FreeMonoidalCategory.unit_eq_unit
 
+/-- The abbreviation for `⟦f⟧`. -/
+/- This is useful since the notation `⟦f⟧` often behaves like an element of the quotient set,
+but not like a morphism. This is why we need weird `@CategoryStruct.comp (F C) ...` in the
+statement in `mk_comp` above. -/
+abbrev homMk {X Y : F C} (f : X ⟶ᵐ Y) : X ⟶ Y := ⟦f⟧
+
+theorem Hom.inductionOn {motive : {X Y : F C} → (X ⟶ Y) → Prop} {X Y : F C} (t : X ⟶ Y)
+    (id : (X : F C) → motive (𝟙 X))
+    (α_hom : (X Y Z : F C) → motive (α_ X Y Z).hom)
+    (α_inv : (X Y Z : F C) → motive (α_ X Y Z).inv)
+    (l_hom : (X : F C) → motive (λ_ X).hom)
+    (l_inv : (X : F C) → motive (λ_ X).inv)
+    (ρ_hom : (X : F C) → motive (ρ_ X).hom)
+    (ρ_inv : (X : F C) → motive (ρ_ X).inv)
+    (comp : {X Y Z : F C} → (f : X ⟶ Y) → (g : Y ⟶ Z) → motive f → motive g → motive (f ≫ g))
+    (whiskerLeft : (X : F C) → {Y Z : F C} → (f : Y ⟶ Z) → motive f → motive (X ◁ f))
+    (whiskerRight : {X Y : F C} → (f : X ⟶ Y) → (Z : F C) → motive f → motive (f ▷ Z)) :
+    motive t := by
+  apply Quotient.inductionOn
+  intro f
+  induction f with
+  | id X => exact id X
+  | α_hom X Y Z => exact α_hom X Y Z
+  | α_inv X Y Z => exact α_inv X Y Z
+  | l_hom X => exact l_hom X
+  | l_inv X => exact l_inv X
+  | ρ_hom X => exact ρ_hom X
+  | ρ_inv X => exact ρ_inv X
+  | comp f g hf hg => exact comp _ _ (hf ⟦f⟧) (hg ⟦g⟧)
+  | whiskerLeft X f hf => exact whiskerLeft X _ (hf ⟦f⟧)
+  | whiskerRight f X hf => exact whiskerRight _ X (hf ⟦f⟧)
+  | @tensor W X Y Z f g hf hg =>
+      have : homMk f ⊗ homMk g = homMk f ▷ X ≫ Y ◁ homMk g :=
+        Quotient.sound (HomEquiv.tensorHom_def f g)
+      change motive (homMk f ⊗ homMk g)
+      rw [this]
+      exact comp _ _ (whiskerRight _ _ (hf ⟦f⟧)) (whiskerLeft _ _ (hg ⟦g⟧))
+
 section Functor
 
 variable {D : Type u'} [Category.{v'} D] [MonoidalCategory D] (f : C → D)
@@ -288,6 +323,8 @@ def projectMapAux : ∀ {X Y : F C}, (X ⟶ᵐ Y) → (projectObj f X ⟶ projec
   | _, _, ρ_hom _ => (ρ_ _).hom
   | _, _, ρ_inv _ => (ρ_ _).inv
   | _, _, Hom.comp f g => projectMapAux f ≫ projectMapAux g
+  | _, _, Hom.whiskerLeft X p => projectObj f X ◁ projectMapAux p
+  | _, _, Hom.whiskerRight p X => projectMapAux p ▷ projectObj f X
   | _, _, Hom.tensor f g => projectMapAux f ⊗ projectMapAux g
 #align category_theory.free_monoidal_category.project_map_aux CategoryTheory.FreeMonoidalCategory.projectMapAux
 
@@ -301,12 +338,22 @@ def projectMap (X Y : F C) : (X ⟶ Y) → (projectObj f X ⟶ projectObj f Y) :
     | symm _ _ _ hfg' => exact hfg'.symm
     | trans _ _ hfg hgh => exact hfg.trans hgh
     | comp _ _ hf hg => dsimp only [projectMapAux]; rw [hf, hg]
+    | whiskerLeft _ _ _ _ hf => dsimp only [projectMapAux, projectObj]; rw [hf]
+    | whiskerRight _ _ _ _ hf => dsimp only [projectMapAux, projectObj]; rw [hf]
     | tensor _ _ hfg hfg' => dsimp only [projectMapAux]; rw [hfg, hfg']
+    | tensorHom_def _ _ =>
+        dsimp only [projectMapAux, projectObj]; rw [MonoidalCategory.tensorHom_def]
     | comp_id => dsimp only [projectMapAux]; rw [Category.comp_id]
     | id_comp => dsimp only [projectMapAux]; rw [Category.id_comp]
     | assoc => dsimp only [projectMapAux]; rw [Category.assoc]
     | tensor_id => dsimp only [projectMapAux]; rw [MonoidalCategory.tensor_id]; rfl
     | tensor_comp => dsimp only [projectMapAux]; rw [MonoidalCategory.tensor_comp]
+    | whiskerLeft_id =>
+        dsimp only [projectMapAux, projectObj]
+        rw [MonoidalCategory.whiskerLeft_id]
+    | id_whiskerRight =>
+        dsimp only [projectMapAux, projectObj]
+        rw [MonoidalCategory.id_whiskerRight]
     | α_hom_inv => dsimp only [projectMapAux]; rw [Iso.hom_inv_id]
     | α_inv_hom => dsimp only [projectMapAux]; rw [Iso.inv_hom_id]
     | associator_naturality =>
@@ -315,21 +362,18 @@ def projectMap (X Y : F C) : (X ⟶ Y) → (projectObj f X ⟶ projectObj f Y) :
     | ρ_inv_hom => dsimp only [projectMapAux]; rw [Iso.inv_hom_id]
     | ρ_naturality =>
         dsimp only [projectMapAux, projectObj]
-        rw [tensorHom_id, MonoidalCategory.rightUnitor_naturality]
+        rw [MonoidalCategory.rightUnitor_naturality]
     | l_hom_inv => dsimp only [projectMapAux]; rw [Iso.hom_inv_id]
     | l_inv_hom => dsimp only [projectMapAux]; rw [Iso.inv_hom_id]
     | l_naturality =>
         dsimp only [projectMapAux, projectObj]
-        rw [id_tensorHom]
-        exact MonoidalCategory.leftUnitor_naturality _
+        rw [MonoidalCategory.leftUnitor_naturality]
     | pentagon =>
-        dsimp only [projectMapAux]
-        simp only [tensorHom_id, id_tensorHom]
-        exact MonoidalCategory.pentagon _ _ _ _
+        dsimp only [projectMapAux, projectObj]
+        rw [MonoidalCategory.pentagon]
     | triangle =>
-        dsimp only [projectMapAux]
-        simp only [tensorHom_id, id_tensorHom]
-        exact MonoidalCategory.triangle _ _
+        dsimp only [projectMapAux, projectObj]
+        rw [MonoidalCategory.triangle]
 #align category_theory.free_monoidal_category.project_map CategoryTheory.FreeMonoidalCategory.projectMap
 
 end
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -60,7 +60,7 @@ attribute [nolint simpNF] unit.sizeOf_spec tensor.injEq tensor.sizeOf_spec
 /-- Formal compositions and tensor products of identities, unitors and associators. The morphisms
     of the free monoidal category are obtained as a quotient of these formal morphisms by the
     relations defining a monoidal category. -/
--- porting note: unsupported linter
+-- Porting note: unsupported linter
 -- @[nolint has_nonempty_instance]
 inductive Hom : F C → F C → Type u
   | id (X) : Hom X X
style: add nonterminal simp checker (#7496)

Adds a linter that detects calls to simp where the next line is at the same indentation level.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -348,14 +348,14 @@ def project : MonoidalFunctor (F C) D where
   μ_natural_left := fun f _ => by
     induction' f using Quotient.recOn
     · dsimp
-      simp
+      simp only [Category.comp_id, Category.id_comp]
       rw [← tensorHom_id, ← tensorHom_id]
       rfl
     · rfl
   μ_natural_right := fun _ f => by
     induction' f using Quotient.recOn
     · dsimp
-      simp
+      simp only [Category.comp_id, Category.id_comp]
       rw [← id_tensorHom, ← id_tensorHom]
       rfl
     · rfl
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
@@ -314,17 +314,21 @@ def projectMap (X Y : F C) : (X ⟶ Y) → (projectObj f X ⟶ projectObj f Y) :
     | ρ_hom_inv => dsimp only [projectMapAux]; rw [Iso.hom_inv_id]
     | ρ_inv_hom => dsimp only [projectMapAux]; rw [Iso.inv_hom_id]
     | ρ_naturality =>
-        dsimp only [projectMapAux, projectObj]; rw [MonoidalCategory.rightUnitor_naturality]
+        dsimp only [projectMapAux, projectObj]
+        rw [tensorHom_id, MonoidalCategory.rightUnitor_naturality]
     | l_hom_inv => dsimp only [projectMapAux]; rw [Iso.hom_inv_id]
     | l_inv_hom => dsimp only [projectMapAux]; rw [Iso.inv_hom_id]
     | l_naturality =>
         dsimp only [projectMapAux, projectObj]
+        rw [id_tensorHom]
         exact MonoidalCategory.leftUnitor_naturality _
     | pentagon =>
         dsimp only [projectMapAux]
+        simp only [tensorHom_id, id_tensorHom]
         exact MonoidalCategory.pentagon _ _ _ _
     | triangle =>
         dsimp only [projectMapAux]
+        simp only [tensorHom_id, id_tensorHom]
         exact MonoidalCategory.triangle _ _
 #align category_theory.free_monoidal_category.project_map CategoryTheory.FreeMonoidalCategory.projectMap
 
@@ -345,12 +349,14 @@ def project : MonoidalFunctor (F C) D where
     induction' f using Quotient.recOn
     · dsimp
       simp
+      rw [← tensorHom_id, ← tensorHom_id]
       rfl
     · rfl
   μ_natural_right := fun _ f => by
     induction' f using Quotient.recOn
     · dsimp
       simp
+      rw [← id_tensorHom, ← id_tensorHom]
       rfl
     · rfl
 #align category_theory.free_monoidal_category.project CategoryTheory.FreeMonoidalCategory.project
refactor(CategoryTheory/Monoidal): split the naturality condition of monoidal functors (#9988)

Extracted from #6307. We replace μ_natural with μ_natural_left and μ_natural_right since we prefer to use the whiskerings to the tensor of morphisms in the refactor #6307.

Diff
@@ -341,13 +341,17 @@ def project : MonoidalFunctor (F C) D where
   map_comp := by rintro _ _ _ ⟨_⟩ ⟨_⟩; rfl
   ε := 𝟙 _
   μ X Y := 𝟙 _
-  μ_natural := @fun _ _ _ _ f g => by
+  μ_natural_left := fun f _ => by
     induction' f using Quotient.recOn
-    · induction' g using Quotient.recOn
-      · dsimp
-        simp
-        rfl
-      · rfl
+    · dsimp
+      simp
+      rfl
+    · rfl
+  μ_natural_right := fun _ f => by
+    induction' f using Quotient.recOn
+    · dsimp
+      simp
+      rfl
     · rfl
 #align category_theory.free_monoidal_category.project CategoryTheory.FreeMonoidalCategory.project
 
fix: lean4-ify names of inductive constructors (#8652)

These inductive types carry data, so these should be functionCase not theorem_case.

It seems that mathport didn't do this.

Diff
@@ -44,7 +44,7 @@ tensor products of identities, unitors and associators.
 -/
 inductive FreeMonoidalCategory : Type u
   | of : C → FreeMonoidalCategory
-  | Unit : FreeMonoidalCategory
+  | unit : FreeMonoidalCategory
   | tensor : FreeMonoidalCategory → FreeMonoidalCategory → FreeMonoidalCategory
   deriving Inhabited
 #align category_theory.free_monoidal_category CategoryTheory.FreeMonoidalCategory
@@ -55,7 +55,7 @@ local notation "F" => FreeMonoidalCategory
 
 namespace FreeMonoidalCategory
 
-attribute [nolint simpNF] Unit.sizeOf_spec tensor.injEq tensor.sizeOf_spec
+attribute [nolint simpNF] unit.sizeOf_spec tensor.injEq tensor.sizeOf_spec
 
 /-- Formal compositions and tensor products of identities, unitors and associators. The morphisms
     of the free monoidal category are obtained as a quotient of these formal morphisms by the
@@ -66,10 +66,10 @@ inductive Hom : F C → F C → Type u
   | id (X) : Hom X X
   | α_hom (X Y Z : F C) : Hom ((X.tensor Y).tensor Z) (X.tensor (Y.tensor Z))
   | α_inv (X Y Z : F C) : Hom (X.tensor (Y.tensor Z)) ((X.tensor Y).tensor Z)
-  | l_hom (X) : Hom (Unit.tensor X) X
-  | l_inv (X) : Hom X (Unit.tensor X)
-  | ρ_hom (X : F C) : Hom (X.tensor Unit) X
-  | ρ_inv (X : F C) : Hom X (X.tensor Unit)
+  | l_hom (X) : Hom (unit.tensor X) X
+  | l_inv (X) : Hom X (unit.tensor X)
+  | ρ_hom (X : F C) : Hom (X.tensor unit) X
+  | ρ_inv (X : F C) : Hom X (X.tensor unit)
   | comp {X Y Z} (f : Hom X Y) (g : Hom Y Z) : Hom X Z
   | tensor {W X Y Z} (f : Hom W Y) (g : Hom X Z) : Hom (W.tensor X) (Y.tensor Z)
 #align category_theory.free_monoidal_category.hom CategoryTheory.FreeMonoidalCategory.Hom
@@ -102,18 +102,18 @@ inductive HomEquiv : ∀ {X Y : F C}, (X ⟶ᵐ Y) → (X ⟶ᵐ Y) → Prop
   | ρ_hom_inv {X} : HomEquiv ((Hom.ρ_hom X).comp (Hom.ρ_inv X)) (Hom.id _)
   | ρ_inv_hom {X} : HomEquiv ((Hom.ρ_inv X).comp (Hom.ρ_hom X)) (Hom.id _)
   | ρ_naturality {X Y} (f : X ⟶ᵐ Y) :
-      HomEquiv ((f.tensor (Hom.id Unit)).comp (Hom.ρ_hom Y)) ((Hom.ρ_hom X).comp f)
+      HomEquiv ((f.tensor (Hom.id unit)).comp (Hom.ρ_hom Y)) ((Hom.ρ_hom X).comp f)
   | l_hom_inv {X} : HomEquiv ((Hom.l_hom X).comp (Hom.l_inv X)) (Hom.id _)
   | l_inv_hom {X} : HomEquiv ((Hom.l_inv X).comp (Hom.l_hom X)) (Hom.id _)
   | l_naturality {X Y} (f : X ⟶ᵐ Y) :
-      HomEquiv (((Hom.id Unit).tensor f).comp (Hom.l_hom Y)) ((Hom.l_hom X).comp f)
+      HomEquiv (((Hom.id unit).tensor f).comp (Hom.l_hom Y)) ((Hom.l_hom X).comp f)
   | pentagon {W X Y Z} :
       HomEquiv
         (((Hom.α_hom W X Y).tensor (Hom.id Z)).comp
           ((Hom.α_hom W (X.tensor Y) Z).comp ((Hom.id W).tensor (Hom.α_hom X Y Z))))
         ((Hom.α_hom (W.tensor X) Y Z).comp (Hom.α_hom W X (Y.tensor Z)))
   | triangle {X Y} :
-      HomEquiv ((Hom.α_hom X Unit Y).comp ((Hom.id X).tensor (Hom.l_hom Y)))
+      HomEquiv ((Hom.α_hom X unit Y).comp ((Hom.id X).tensor (Hom.l_hom Y)))
         ((Hom.ρ_hom X).tensor (Hom.id Y))
 set_option linter.uppercaseLean3 false
 #align category_theory.free_monoidal_category.HomEquiv CategoryTheory.FreeMonoidalCategory.HomEquiv
@@ -185,7 +185,7 @@ instance : MonoidalCategory (F C) where
   tensor_comp := @fun X₁ Y₁ Z₁ X₂ Y₂ Z₂ => by
     rintro ⟨f₁⟩ ⟨f₂⟩ ⟨g₁⟩ ⟨g₂⟩
     exact Quotient.sound (tensor_comp _ _ _ _)
-  tensorUnit := FreeMonoidalCategory.Unit
+  tensorUnit := FreeMonoidalCategory.unit
   associator X Y Z :=
     ⟨⟦Hom.α_hom X Y Z⟧, ⟦Hom.α_inv X Y Z⟧, Quotient.sound α_hom_inv, Quotient.sound α_inv_hom⟩
   associator_naturality := @fun X₁ X₂ X₃ Y₁ Y₂ Y₃ => by
@@ -256,7 +256,7 @@ theorem tensor_eq_tensor {X Y : F C} : X.tensor Y = X ⊗ Y :=
 #align category_theory.free_monoidal_category.tensor_eq_tensor CategoryTheory.FreeMonoidalCategory.tensor_eq_tensor
 
 @[simp]
-theorem unit_eq_unit : FreeMonoidalCategory.Unit = 𝟙_ (F C) :=
+theorem unit_eq_unit : FreeMonoidalCategory.unit = 𝟙_ (F C) :=
   rfl
 #align category_theory.free_monoidal_category.unit_eq_unit CategoryTheory.FreeMonoidalCategory.unit_eq_unit
 
@@ -267,7 +267,7 @@ variable {D : Type u'} [Category.{v'} D] [MonoidalCategory D] (f : C → D)
 /-- Auxiliary definition for `free_monoidal_category.project`. -/
 def projectObj : F C → D
   | FreeMonoidalCategory.of X => f X
-  | FreeMonoidalCategory.Unit => 𝟙_ D
+  | FreeMonoidalCategory.unit => 𝟙_ D
   | FreeMonoidalCategory.tensor X Y => projectObj X ⊗ projectObj Y
 #align category_theory.free_monoidal_category.project_obj CategoryTheory.FreeMonoidalCategory.projectObj
 
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
@@ -185,7 +185,7 @@ instance : MonoidalCategory (F C) where
   tensor_comp := @fun X₁ Y₁ Z₁ X₂ Y₂ Z₂ => by
     rintro ⟨f₁⟩ ⟨f₂⟩ ⟨g₁⟩ ⟨g₂⟩
     exact Quotient.sound (tensor_comp _ _ _ _)
-  tensorUnit' := FreeMonoidalCategory.Unit
+  tensorUnit := FreeMonoidalCategory.Unit
   associator X Y Z :=
     ⟨⟦Hom.α_hom X Y Z⟧, ⟦Hom.α_inv X Y Z⟧, Quotient.sound α_hom_inv, Quotient.sound α_inv_hom⟩
   associator_naturality := @fun X₁ X₂ X₃ Y₁ Y₂ Y₃ => by
feat(CategoryTheory/Monoidal): define whiskering operators (#6420)

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

Diff
@@ -159,6 +159,28 @@ instance : MonoidalCategory (F C) where
     Quotient.map₂ Hom.tensor <| by
       intro _ _ h _ _ h'
       exact HomEquiv.tensor h h'
+  whiskerLeft := fun X _ _ f =>
+    Quotient.map (fun f' => Hom.tensor (Hom.id X) f')
+      (fun _ _ h => HomEquiv.tensor (HomEquiv.refl (Hom.id X)) h) f
+  whiskerRight := fun f Y =>
+    Quotient.map (fun f' => Hom.tensor f' (Hom.id Y))
+      (fun _ _ h => HomEquiv.tensor h (HomEquiv.refl (Hom.id Y))) f
+  tensorHom_def := by
+    rintro W X Y Z ⟨f⟩ ⟨g⟩
+    apply Quotient.sound
+    calc Hom.tensor f g
+      _ ≈ Hom.tensor (Hom.comp f (Hom.id X)) (Hom.comp (Hom.id Y) g) := by
+        apply HomEquiv.tensor (HomEquiv.comp_id f).symm (HomEquiv.id_comp g).symm
+      _ ≈ Hom.comp (Hom.tensor f (Hom.id Y)) (Hom.tensor (Hom.id X) g) := by
+        apply HomEquiv.tensor_comp
+  whiskerLeft_id := by
+    rintro X Y
+    apply Quotient.sound
+    apply HomEquiv.tensor_id
+  id_whiskerRight := by
+    intro X Y
+    apply Quotient.sound
+    apply HomEquiv.tensor_id
   tensor_id X Y := Quotient.sound tensor_id
   tensor_comp := @fun X₁ Y₁ Z₁ X₂ Y₂ Z₂ => by
     rintro ⟨f₁⟩ ⟨f₂⟩ ⟨g₁⟩ ⟨g₂⟩
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,14 +2,11 @@
 Copyright (c) 2021 Markus Himmel. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Markus Himmel
-
-! This file was ported from Lean 3 source module category_theory.monoidal.free.basic
-! leanprover-community/mathlib commit 14b69e9f3c16630440a2cbd46f1ddad0d561dee7
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Monoidal.Functor
 
+#align_import category_theory.monoidal.free.basic from "leanprover-community/mathlib"@"14b69e9f3c16630440a2cbd46f1ddad0d561dee7"
+
 /-!
 # The free monoidal category over a type
 
chore: cleanup whitespace (#5988)

Grepping for [^ .:{-] [^ :] and reviewing the results. Once I started I couldn't stop. :-)

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

Diff
@@ -280,8 +280,8 @@ def projectMap (X Y : F C) : (X ⟶ Y) → (projectObj f X ⟶ projectObj f Y) :
     induction h with
     | refl => rfl
     | symm _ _ _ hfg' => exact hfg'.symm
-    | trans _ _  hfg hgh => exact hfg.trans hgh
-    | comp _ _  hf hg => dsimp only [projectMapAux]; rw [hf, hg]
+    | trans _ _ hfg hgh => exact hfg.trans hgh
+    | comp _ _ hf hg => dsimp only [projectMapAux]; rw [hf, hg]
     | tensor _ _ hfg hfg' => dsimp only [projectMapAux]; rw [hfg, hfg']
     | comp_id => dsimp only [projectMapAux]; rw [Category.comp_id]
     | id_comp => dsimp only [projectMapAux]; rw [Category.id_comp]
chore: remove occurrences of semicolon after space (#5713)

This is the second half of the changes originally in #5699, removing all occurrences of ; after a space and implementing a linter rule to enforce it.

In most cases this 2-character substring has a space after it, so the following command was run first:

find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \;

The remaining cases were few enough in number that they were done manually.

Diff
@@ -281,23 +281,23 @@ def projectMap (X Y : F C) : (X ⟶ Y) → (projectObj f X ⟶ projectObj f Y) :
     | refl => rfl
     | symm _ _ _ hfg' => exact hfg'.symm
     | trans _ _  hfg hgh => exact hfg.trans hgh
-    | comp _ _  hf hg => dsimp only [projectMapAux] ; rw [hf, hg]
-    | tensor _ _ hfg hfg' => dsimp only [projectMapAux] ; rw [hfg, hfg']
-    | comp_id => dsimp only [projectMapAux] ; rw [Category.comp_id]
-    | id_comp => dsimp only [projectMapAux] ; rw [Category.id_comp]
-    | assoc => dsimp only [projectMapAux] ; rw [Category.assoc]
-    | tensor_id => dsimp only [projectMapAux] ; rw [MonoidalCategory.tensor_id] ; rfl
-    | tensor_comp => dsimp only [projectMapAux] ; rw [MonoidalCategory.tensor_comp]
-    | α_hom_inv => dsimp only [projectMapAux] ; rw [Iso.hom_inv_id]
-    | α_inv_hom => dsimp only [projectMapAux] ; rw [Iso.inv_hom_id]
+    | comp _ _  hf hg => dsimp only [projectMapAux]; rw [hf, hg]
+    | tensor _ _ hfg hfg' => dsimp only [projectMapAux]; rw [hfg, hfg']
+    | comp_id => dsimp only [projectMapAux]; rw [Category.comp_id]
+    | id_comp => dsimp only [projectMapAux]; rw [Category.id_comp]
+    | assoc => dsimp only [projectMapAux]; rw [Category.assoc]
+    | tensor_id => dsimp only [projectMapAux]; rw [MonoidalCategory.tensor_id]; rfl
+    | tensor_comp => dsimp only [projectMapAux]; rw [MonoidalCategory.tensor_comp]
+    | α_hom_inv => dsimp only [projectMapAux]; rw [Iso.hom_inv_id]
+    | α_inv_hom => dsimp only [projectMapAux]; rw [Iso.inv_hom_id]
     | associator_naturality =>
-        dsimp only [projectMapAux] ; rw [MonoidalCategory.associator_naturality]
-    | ρ_hom_inv => dsimp only [projectMapAux] ; rw [Iso.hom_inv_id]
-    | ρ_inv_hom => dsimp only [projectMapAux] ; rw [Iso.inv_hom_id]
+        dsimp only [projectMapAux]; rw [MonoidalCategory.associator_naturality]
+    | ρ_hom_inv => dsimp only [projectMapAux]; rw [Iso.hom_inv_id]
+    | ρ_inv_hom => dsimp only [projectMapAux]; rw [Iso.inv_hom_id]
     | ρ_naturality =>
-        dsimp only [projectMapAux, projectObj] ; rw [MonoidalCategory.rightUnitor_naturality]
-    | l_hom_inv => dsimp only [projectMapAux] ; rw [Iso.hom_inv_id]
-    | l_inv_hom => dsimp only [projectMapAux] ; rw [Iso.inv_hom_id]
+        dsimp only [projectMapAux, projectObj]; rw [MonoidalCategory.rightUnitor_naturality]
+    | l_hom_inv => dsimp only [projectMapAux]; rw [Iso.hom_inv_id]
+    | l_inv_hom => dsimp only [projectMapAux]; rw [Iso.inv_hom_id]
     | l_naturality =>
         dsimp only [projectMapAux, projectObj]
         exact MonoidalCategory.leftUnitor_naturality _
@@ -319,7 +319,7 @@ def project : MonoidalFunctor (F C) D where
   -- Porting note: `map_comp` and `μ_natural` were proved in mathlib3 by tidy, using induction.
   -- We probably don't expect `aesop_cat` to handle this yet, see https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Aesop.20and.20cases
   -- In any case I don't understand why we need to specify `using Quotient.recOn`.
-  map_comp := by rintro _ _ _ ⟨_⟩ ⟨_⟩ ; rfl
+  map_comp := by rintro _ _ _ ⟨_⟩ ⟨_⟩; rfl
   ε := 𝟙 _
   μ X Y := 𝟙 _
   μ_natural := @fun _ _ _ _ f g => by
chore: fix focusing dots (#5708)

This PR is the result of running

find . -type f -name "*.lean" -exec sed -i -E 's/^( +)\. /\1· /' {} \;
find . -type f -name "*.lean" -exec sed -i -E 'N;s/^( +·)\n +(.*)$/\1 \2/;P;D' {} \;

which firstly replaces . focusing dots with · and secondly removes isolated instances of such dots, unifying them with the following line. A new rule is placed in the style linter to verify this.

Diff
@@ -324,12 +324,12 @@ def project : MonoidalFunctor (F C) D where
   μ X Y := 𝟙 _
   μ_natural := @fun _ _ _ _ f g => by
     induction' f using Quotient.recOn
-    . induction' g using Quotient.recOn
-      . dsimp
+    · induction' g using Quotient.recOn
+      · dsimp
         simp
         rfl
-      . rfl
-    . rfl
+      · rfl
+    · rfl
 #align category_theory.free_monoidal_category.project CategoryTheory.FreeMonoidalCategory.project
 
 end Functor
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -169,8 +169,7 @@ instance : MonoidalCategory (F C) where
   tensorUnit' := FreeMonoidalCategory.Unit
   associator X Y Z :=
     ⟨⟦Hom.α_hom X Y Z⟧, ⟦Hom.α_inv X Y Z⟧, Quotient.sound α_hom_inv, Quotient.sound α_inv_hom⟩
-  associator_naturality := @fun X₁ X₂ X₃ Y₁ Y₂ Y₃ =>
-    by
+  associator_naturality := @fun X₁ X₂ X₃ Y₁ Y₂ Y₃ => by
     rintro ⟨f₁⟩ ⟨f₂⟩ ⟨f₃⟩
     exact Quotient.sound (associator_naturality _ _ _)
   leftUnitor X := ⟨⟦Hom.l_hom X⟧, ⟦Hom.l_inv X⟧, Quotient.sound l_hom_inv, Quotient.sound l_inv_hom⟩
feat: port CategoryTheory.Monoidal.Free.Basic (#2808)

Co-authored-by: Moritz Firsching <firsching@google.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr> Co-authored-by: Johan Commelin <johan@commelin.net>

Dependencies 18

19 files ported (100.0%)
5725 lines ported (100.0%)

All dependencies are ported!