category_theory.monoidal.free.basic
⟷
Mathlib.CategoryTheory.Monoidal.Free.Basic
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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 _ _ _ _)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/738054fa93d43512da144ec45ce799d18fd44248
@@ -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.
mathlib commit https://github.com/leanprover-community/mathlib/commit/36b8aa61ea7c05727161f96a0532897bd72aedab
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -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
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.
@@ -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
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -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
@@ -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
@@ -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
@@ -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
These inductive types carry data, so these should be functionCase
not theorem_case
.
It seems that mathport didn't do this.
@@ -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
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.
@@ -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
@@ -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₂⟩
@@ -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
@@ -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]
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.
@@ -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
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.
@@ -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
by
s! (#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 by
s".
@@ -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⟩
All dependencies are ported!