category_theory.monoidal.subcategory
⟷
Mathlib.CategoryTheory.Monoidal.Subcategory
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)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -154,10 +154,10 @@ def fullMonoidalSubcategory.map (h : ∀ ⦃X⦄, P X → P' X) :
#align category_theory.monoidal_category.full_monoidal_subcategory.map CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map
-/
-#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.mapFull /-
-instance fullMonoidalSubcategory.mapFull (h : ∀ ⦃X⦄, P X → P' X) :
+#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map_full /-
+instance fullMonoidalSubcategory.map_full (h : ∀ ⦃X⦄, P X → P' X) :
CategoryTheory.Functor.Full (fullMonoidalSubcategory.map h).toFunctor where preimage X Y f := f
-#align category_theory.monoidal_category.full_monoidal_subcategory.map_full CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.mapFull
+#align category_theory.monoidal_category.full_monoidal_subcategory.map_full CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map_full
-/
#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map_faithful /-
@@ -224,7 +224,7 @@ def fullBraidedSubcategory.map (h : ∀ ⦃X⦄, P X → P' X) :
#print CategoryTheory.MonoidalCategory.fullBraidedSubcategory.mapFull /-
instance fullBraidedSubcategory.mapFull (h : ∀ ⦃X⦄, P X → P' X) :
CategoryTheory.Functor.Full (fullBraidedSubcategory.map h).toFunctor :=
- fullMonoidalSubcategory.mapFull h
+ fullMonoidalSubcategory.map_full h
#align category_theory.monoidal_category.full_braided_subcategory.map_full CategoryTheory.MonoidalCategory.fullBraidedSubcategory.mapFull
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -98,14 +98,15 @@ def fullMonoidalSubcategoryInclusion : MonoidalFunctor (FullSubcategory P) C
-/
#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.full /-
-instance fullMonoidalSubcategory.full : Full (fullMonoidalSubcategoryInclusion P).toFunctor :=
+instance fullMonoidalSubcategory.full :
+ CategoryTheory.Functor.Full (fullMonoidalSubcategoryInclusion P).toFunctor :=
FullSubcategory.full P
#align category_theory.monoidal_category.full_monoidal_subcategory.full CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.full
-/
#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.faithful /-
instance fullMonoidalSubcategory.faithful :
- Faithful (fullMonoidalSubcategoryInclusion P).toFunctor :=
+ CategoryTheory.Functor.Faithful (fullMonoidalSubcategoryInclusion P).toFunctor :=
FullSubcategory.faithful P
#align category_theory.monoidal_category.full_monoidal_subcategory.faithful CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.faithful
-/
@@ -155,13 +156,13 @@ def fullMonoidalSubcategory.map (h : ∀ ⦃X⦄, P X → P' X) :
#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.mapFull /-
instance fullMonoidalSubcategory.mapFull (h : ∀ ⦃X⦄, P X → P' X) :
- Full (fullMonoidalSubcategory.map h).toFunctor where preimage X Y f := f
+ CategoryTheory.Functor.Full (fullMonoidalSubcategory.map h).toFunctor where preimage X Y f := f
#align category_theory.monoidal_category.full_monoidal_subcategory.map_full CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.mapFull
-/
#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map_faithful /-
instance fullMonoidalSubcategory.map_faithful (h : ∀ ⦃X⦄, P X → P' X) :
- Faithful (fullMonoidalSubcategory.map h).toFunctor where
+ CategoryTheory.Functor.Faithful (fullMonoidalSubcategory.map h).toFunctor where
#align category_theory.monoidal_category.full_monoidal_subcategory.map_faithful CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map_faithful
-/
@@ -193,13 +194,15 @@ def fullBraidedSubcategoryInclusion : BraidedFunctor (FullSubcategory P) C
-/
#print CategoryTheory.MonoidalCategory.fullBraidedSubcategory.full /-
-instance fullBraidedSubcategory.full : Full (fullBraidedSubcategoryInclusion P).toFunctor :=
+instance fullBraidedSubcategory.full :
+ CategoryTheory.Functor.Full (fullBraidedSubcategoryInclusion P).toFunctor :=
fullMonoidalSubcategory.full P
#align category_theory.monoidal_category.full_braided_subcategory.full CategoryTheory.MonoidalCategory.fullBraidedSubcategory.full
-/
#print CategoryTheory.MonoidalCategory.fullBraidedSubcategory.faithful /-
-instance fullBraidedSubcategory.faithful : Faithful (fullBraidedSubcategoryInclusion P).toFunctor :=
+instance fullBraidedSubcategory.faithful :
+ CategoryTheory.Functor.Faithful (fullBraidedSubcategoryInclusion P).toFunctor :=
fullMonoidalSubcategory.faithful P
#align category_theory.monoidal_category.full_braided_subcategory.faithful CategoryTheory.MonoidalCategory.fullBraidedSubcategory.faithful
-/
@@ -220,14 +223,14 @@ def fullBraidedSubcategory.map (h : ∀ ⦃X⦄, P X → P' X) :
#print CategoryTheory.MonoidalCategory.fullBraidedSubcategory.mapFull /-
instance fullBraidedSubcategory.mapFull (h : ∀ ⦃X⦄, P X → P' X) :
- Full (fullBraidedSubcategory.map h).toFunctor :=
+ CategoryTheory.Functor.Full (fullBraidedSubcategory.map h).toFunctor :=
fullMonoidalSubcategory.mapFull h
#align category_theory.monoidal_category.full_braided_subcategory.map_full CategoryTheory.MonoidalCategory.fullBraidedSubcategory.mapFull
-/
#print CategoryTheory.MonoidalCategory.fullBraidedSubcategory.map_faithful /-
instance fullBraidedSubcategory.map_faithful (h : ∀ ⦃X⦄, P X → P' X) :
- Faithful (fullBraidedSubcategory.map h).toFunctor :=
+ CategoryTheory.Functor.Faithful (fullBraidedSubcategory.map h).toFunctor :=
fullMonoidalSubcategory.map_faithful h
#align category_theory.monoidal_category.full_braided_subcategory.map_faithful CategoryTheory.MonoidalCategory.fullBraidedSubcategory.map_faithful
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,7 +3,7 @@ Copyright (c) 2022 Antoine Labelle. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Antoine Labelle
-/
-import CategoryTheory.Monoidal.Braided
+import CategoryTheory.Monoidal.Braided.Basic
import CategoryTheory.Monoidal.Linear
import CategoryTheory.Preadditive.AdditiveFunctor
import CategoryTheory.Linear.LinearFunctor
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -67,7 +67,7 @@ instance fullMonoidalSubcategory : MonoidalCategory (FullSubcategory P)
tensorObj X Y := ⟨X.1 ⊗ Y.1, prop_tensor X.2 Y.2⟩
tensorHom X₁ Y₁ X₂ Y₂ f g := by
change X₁.1 ⊗ X₂.1 ⟶ Y₁.1 ⊗ Y₂.1
- change X₁.1 ⟶ Y₁.1 at f ; change X₂.1 ⟶ Y₂.1 at g ; exact f ⊗ g
+ change X₁.1 ⟶ Y₁.1 at f; change X₂.1 ⟶ Y₂.1 at g; exact f ⊗ g
tensorUnit := ⟨𝟙_ C, prop_id⟩
associator X Y Z :=
⟨(α_ X.1 Y.1 Z.1).Hom, (α_ X.1 Y.1 Z.1).inv, hom_inv_id (α_ X.1 Y.1 Z.1),
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,11 +3,11 @@ Copyright (c) 2022 Antoine Labelle. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Antoine Labelle
-/
-import Mathbin.CategoryTheory.Monoidal.Braided
-import Mathbin.CategoryTheory.Monoidal.Linear
-import Mathbin.CategoryTheory.Preadditive.AdditiveFunctor
-import Mathbin.CategoryTheory.Linear.LinearFunctor
-import Mathbin.CategoryTheory.Closed.Monoidal
+import CategoryTheory.Monoidal.Braided
+import CategoryTheory.Monoidal.Linear
+import CategoryTheory.Preadditive.AdditiveFunctor
+import CategoryTheory.Linear.LinearFunctor
+import CategoryTheory.Closed.Monoidal
#align_import category_theory.monoidal.subcategory from "leanprover-community/mathlib"@"7e5137f579de09a059a5ce98f364a04e221aabf0"
mathlib commit https://github.com/leanprover-community/mathlib/commit/442a83d738cb208d3600056c489be16900ba701d
@@ -49,10 +49,6 @@ class MonoidalPredicate : Prop where
#align category_theory.monoidal_category.monoidal_predicate CategoryTheory.MonoidalCategory.MonoidalPredicate
-/
-restate_axiom monoidal_predicate.prop_id'
-
-restate_axiom monoidal_predicate.prop_tensor'
-
open MonoidalPredicate
variable [MonoidalPredicate P]
@@ -262,8 +258,6 @@ class ClosedPredicate : Prop where
#align category_theory.monoidal_category.closed_predicate CategoryTheory.MonoidalCategory.ClosedPredicate
-/
-restate_axiom closed_predicate.prop_ihom'
-
open ClosedPredicate
variable [ClosedPredicate P]
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,11 +2,6 @@
Copyright (c) 2022 Antoine Labelle. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Antoine Labelle
-
-! This file was ported from Lean 3 source module category_theory.monoidal.subcategory
-! leanprover-community/mathlib commit 7e5137f579de09a059a5ce98f364a04e221aabf0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.Monoidal.Braided
import Mathbin.CategoryTheory.Monoidal.Linear
@@ -14,6 +9,8 @@ import Mathbin.CategoryTheory.Preadditive.AdditiveFunctor
import Mathbin.CategoryTheory.Linear.LinearFunctor
import Mathbin.CategoryTheory.Closed.Monoidal
+#align_import category_theory.monoidal.subcategory from "leanprover-community/mathlib"@"7e5137f579de09a059a5ce98f364a04e221aabf0"
+
/-!
# Full monoidal subcategories
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -64,6 +64,7 @@ variable [MonoidalPredicate P]
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
+#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategory /-
/--
When `P` is a monoidal predicate, the full subcategory for `P` inherits the monoidal structure of
`C`.
@@ -88,7 +89,9 @@ instance fullMonoidalSubcategory : MonoidalCategory (FullSubcategory P)
pentagon' W X Y Z := pentagon W.1 X.1 Y.1 Z.1
triangle' X Y := triangle X.1 Y.1
#align category_theory.monoidal_category.full_monoidal_subcategory CategoryTheory.MonoidalCategory.fullMonoidalSubcategory
+-/
+#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategoryInclusion /-
/-- The forgetful monoidal functor from a full monoidal subcategory into the original category
("forgetting" the condition).
-/
@@ -99,34 +102,43 @@ def fullMonoidalSubcategoryInclusion : MonoidalFunctor (FullSubcategory P) C
ε := 𝟙 _
μ X Y := 𝟙 _
#align category_theory.monoidal_category.full_monoidal_subcategory_inclusion CategoryTheory.MonoidalCategory.fullMonoidalSubcategoryInclusion
+-/
+#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.full /-
instance fullMonoidalSubcategory.full : Full (fullMonoidalSubcategoryInclusion P).toFunctor :=
FullSubcategory.full P
#align category_theory.monoidal_category.full_monoidal_subcategory.full CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.full
+-/
+#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.faithful /-
instance fullMonoidalSubcategory.faithful :
Faithful (fullMonoidalSubcategoryInclusion P).toFunctor :=
FullSubcategory.faithful P
#align category_theory.monoidal_category.full_monoidal_subcategory.faithful CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.faithful
+-/
section
variable [Preadditive C]
+#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategoryInclusion_additive /-
instance fullMonoidalSubcategoryInclusion_additive :
(fullMonoidalSubcategoryInclusion P).toFunctor.Additive :=
Functor.fullSubcategoryInclusion_additive _
#align category_theory.monoidal_category.full_monoidal_subcategory_inclusion_additive CategoryTheory.MonoidalCategory.fullMonoidalSubcategoryInclusion_additive
+-/
instance [MonoidalPreadditive C] : MonoidalPreadditive (FullSubcategory P) :=
monoidalPreadditive_of_faithful (fullMonoidalSubcategoryInclusion P)
variable (R : Type _) [Ring R] [Linear R C]
+#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategoryInclusion_linear /-
instance fullMonoidalSubcategoryInclusion_linear :
(fullMonoidalSubcategoryInclusion P).toFunctor.Linear R :=
Functor.fullSubcategoryInclusionLinear R _
#align category_theory.monoidal_category.full_monoidal_subcategory_inclusion_linear CategoryTheory.MonoidalCategory.fullMonoidalSubcategoryInclusion_linear
+-/
instance [MonoidalPreadditive C] [MonoidalLinear R C] : MonoidalLinear R (FullSubcategory P) :=
monoidalLinearOfFaithful R (fullMonoidalSubcategoryInclusion P)
@@ -135,6 +147,7 @@ end
variable {P} {P' : C → Prop} [MonoidalPredicate P']
+#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map /-
/-- An implication of predicates `P → P'` induces a monoidal functor between full monoidal
subcategories. -/
@[simps]
@@ -145,19 +158,25 @@ def fullMonoidalSubcategory.map (h : ∀ ⦃X⦄, P X → P' X) :
ε := 𝟙 _
μ X Y := 𝟙 _
#align category_theory.monoidal_category.full_monoidal_subcategory.map CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map
+-/
+#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.mapFull /-
instance fullMonoidalSubcategory.mapFull (h : ∀ ⦃X⦄, P X → P' X) :
Full (fullMonoidalSubcategory.map h).toFunctor where preimage X Y f := f
#align category_theory.monoidal_category.full_monoidal_subcategory.map_full CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.mapFull
+-/
+#print CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map_faithful /-
instance fullMonoidalSubcategory.map_faithful (h : ∀ ⦃X⦄, P X → P' X) :
Faithful (fullMonoidalSubcategory.map h).toFunctor where
#align category_theory.monoidal_category.full_monoidal_subcategory.map_faithful CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map_faithful
+-/
section Braided
variable (P) [BraidedCategory C]
+#print CategoryTheory.MonoidalCategory.fullBraidedSubcategory /-
/-- The braided structure on a full subcategory inherited by the braided structure on `C`.
-/
instance fullBraidedSubcategory : BraidedCategory (FullSubcategory P) :=
@@ -166,7 +185,9 @@ instance fullBraidedSubcategory : BraidedCategory (FullSubcategory P) :=
⟨(β_ X.1 Y.1).Hom, (β_ X.1 Y.1).inv, (β_ X.1 Y.1).hom_inv_id, (β_ X.1 Y.1).inv_hom_id⟩)
fun X Y => by tidy
#align category_theory.monoidal_category.full_braided_subcategory CategoryTheory.MonoidalCategory.fullBraidedSubcategory
+-/
+#print CategoryTheory.MonoidalCategory.fullBraidedSubcategoryInclusion /-
/-- The forgetful braided functor from a full braided subcategory into the original category
("forgetting" the condition).
-/
@@ -176,17 +197,23 @@ def fullBraidedSubcategoryInclusion : BraidedFunctor (FullSubcategory P) C
toMonoidalFunctor := fullMonoidalSubcategoryInclusion P
braided' X Y := by rw [is_iso.eq_inv_comp]; tidy
#align category_theory.monoidal_category.full_braided_subcategory_inclusion CategoryTheory.MonoidalCategory.fullBraidedSubcategoryInclusion
+-/
+#print CategoryTheory.MonoidalCategory.fullBraidedSubcategory.full /-
instance fullBraidedSubcategory.full : Full (fullBraidedSubcategoryInclusion P).toFunctor :=
fullMonoidalSubcategory.full P
#align category_theory.monoidal_category.full_braided_subcategory.full CategoryTheory.MonoidalCategory.fullBraidedSubcategory.full
+-/
+#print CategoryTheory.MonoidalCategory.fullBraidedSubcategory.faithful /-
instance fullBraidedSubcategory.faithful : Faithful (fullBraidedSubcategoryInclusion P).toFunctor :=
fullMonoidalSubcategory.faithful P
#align category_theory.monoidal_category.full_braided_subcategory.faithful CategoryTheory.MonoidalCategory.fullBraidedSubcategory.faithful
+-/
variable {P}
+#print CategoryTheory.MonoidalCategory.fullBraidedSubcategory.map /-
/-- An implication of predicates `P → P'` induces a braided functor between full braided
subcategories. -/
@[simps]
@@ -196,16 +223,21 @@ def fullBraidedSubcategory.map (h : ∀ ⦃X⦄, P X → P' X) :
toMonoidalFunctor := fullMonoidalSubcategory.map h
braided' X Y := by rw [is_iso.eq_inv_comp]; tidy
#align category_theory.monoidal_category.full_braided_subcategory.map CategoryTheory.MonoidalCategory.fullBraidedSubcategory.map
+-/
+#print CategoryTheory.MonoidalCategory.fullBraidedSubcategory.mapFull /-
instance fullBraidedSubcategory.mapFull (h : ∀ ⦃X⦄, P X → P' X) :
Full (fullBraidedSubcategory.map h).toFunctor :=
fullMonoidalSubcategory.mapFull h
#align category_theory.monoidal_category.full_braided_subcategory.map_full CategoryTheory.MonoidalCategory.fullBraidedSubcategory.mapFull
+-/
+#print CategoryTheory.MonoidalCategory.fullBraidedSubcategory.map_faithful /-
instance fullBraidedSubcategory.map_faithful (h : ∀ ⦃X⦄, P X → P' X) :
Faithful (fullBraidedSubcategory.map h).toFunctor :=
fullMonoidalSubcategory.map_faithful h
#align category_theory.monoidal_category.full_braided_subcategory.map_faithful CategoryTheory.MonoidalCategory.fullBraidedSubcategory.map_faithful
+-/
end Braided
@@ -213,9 +245,11 @@ section Symmetric
variable (P) [SymmetricCategory C]
+#print CategoryTheory.MonoidalCategory.fullSymmetricSubcategory /-
instance fullSymmetricSubcategory : SymmetricCategory (FullSubcategory P) :=
symmetricCategoryOfFaithful (fullBraidedSubcategoryInclusion P)
#align category_theory.monoidal_category.full_symmetric_subcategory CategoryTheory.MonoidalCategory.fullSymmetricSubcategory
+-/
end Symmetric
@@ -223,11 +257,13 @@ section Closed
variable (P) [MonoidalClosed C]
+#print CategoryTheory.MonoidalCategory.ClosedPredicate /-
/-- A property `C → Prop` is a closed predicate if it is closed under taking internal homs
-/
class ClosedPredicate : Prop where
prop_ihom' : ∀ {X Y}, P X → P Y → P ((ihom X).obj Y) := by obviously
#align category_theory.monoidal_category.closed_predicate CategoryTheory.MonoidalCategory.ClosedPredicate
+-/
restate_axiom closed_predicate.prop_ihom'
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Antoine Labelle
! This file was ported from Lean 3 source module category_theory.monoidal.subcategory
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit 7e5137f579de09a059a5ce98f364a04e221aabf0
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -17,6 +17,9 @@ import Mathbin.CategoryTheory.Closed.Monoidal
/-!
# Full monoidal subcategories
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
Given a monidal category `C` and a monoidal predicate on `C`, that is a function `P : C → Prop`
closed under `𝟙_` and `⊗`, we can put a monoidal structure on `{X : C // P X}` (the category
structure is defined in `category_theory.full_subcategory`).
mathlib commit https://github.com/leanprover-community/mathlib/commit/58a272265b5e05f258161260dd2c5d247213cbd3
@@ -39,6 +39,7 @@ open Iso
variable {C : Type u} [Category.{v} C] [MonoidalCategory C] (P : C → Prop)
+#print CategoryTheory.MonoidalCategory.MonoidalPredicate /-
/- ./././Mathport/Syntax/Translate/Expr.lean:177:8: unsupported: ambiguous notation -/
/-- A property `C → Prop` is a monoidal predicate if it is closed under `𝟙_` and `⊗`.
-/
@@ -46,6 +47,7 @@ class MonoidalPredicate : Prop where
prop_id' : P (𝟙_ C) := by obviously
prop_tensor' : ∀ {X Y}, P X → P Y → P (X ⊗ Y) := by obviously
#align category_theory.monoidal_category.monoidal_predicate CategoryTheory.MonoidalCategory.MonoidalPredicate
+-/
restate_axiom monoidal_predicate.prop_id'
@@ -230,13 +232,13 @@ open ClosedPredicate
variable [ClosedPredicate P]
+#print CategoryTheory.MonoidalCategory.fullMonoidalClosedSubcategory /-
instance fullMonoidalClosedSubcategory : MonoidalClosed (FullSubcategory P)
where closed' X :=
{
isAdj :=
{ right :=
- FullSubcategory.lift P (fullSubcategoryInclusion P ⋙ ihom X.1) fun Y =>
- prop_ihom X.2 Y.2
+ FullSubcategory.lift P (fullSubcategoryInclusion P ⋙ ihom X.1) fun Y => propIhom X.2 Y.2
adj :=
Adjunction.mkOfUnitCounit
{ Unit :=
@@ -248,18 +250,23 @@ instance fullMonoidalClosedSubcategory : MonoidalClosed (FullSubcategory P)
left_triangle := by ext Y; simp; exact ihom.ev_coev X.1 Y.1
right_triangle := by ext Y; simp; exact ihom.coev_ev X.1 Y.1 } } }
#align category_theory.monoidal_category.full_monoidal_closed_subcategory CategoryTheory.MonoidalCategory.fullMonoidalClosedSubcategory
+-/
+#print CategoryTheory.MonoidalCategory.fullMonoidalClosedSubcategory_ihom_obj /-
@[simp]
theorem fullMonoidalClosedSubcategory_ihom_obj (X Y : FullSubcategory P) :
((ihom X).obj Y).obj = (ihom X.obj).obj Y.obj :=
rfl
#align category_theory.monoidal_category.full_monoidal_closed_subcategory_ihom_obj CategoryTheory.MonoidalCategory.fullMonoidalClosedSubcategory_ihom_obj
+-/
+#print CategoryTheory.MonoidalCategory.fullMonoidalClosedSubcategory_ihom_map /-
@[simp]
theorem fullMonoidalClosedSubcategory_ihom_map (X : FullSubcategory P) {Y Z : FullSubcategory P}
(f : Y ⟶ Z) : (ihom X).map f = (ihom X.obj).map f :=
rfl
#align category_theory.monoidal_category.full_monoidal_closed_subcategory_ihom_map CategoryTheory.MonoidalCategory.fullMonoidalClosedSubcategory_ihom_map
+-/
end Closed
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -68,7 +68,7 @@ instance fullMonoidalSubcategory : MonoidalCategory (FullSubcategory P)
tensorObj X Y := ⟨X.1 ⊗ Y.1, prop_tensor X.2 Y.2⟩
tensorHom X₁ Y₁ X₂ Y₂ f g := by
change X₁.1 ⊗ X₂.1 ⟶ Y₁.1 ⊗ Y₂.1
- change X₁.1 ⟶ Y₁.1 at f; change X₂.1 ⟶ Y₂.1 at g; exact f ⊗ g
+ change X₁.1 ⟶ Y₁.1 at f ; change X₂.1 ⟶ Y₂.1 at g ; exact f ⊗ g
tensorUnit := ⟨𝟙_ C, prop_id⟩
associator X Y Z :=
⟨(α_ X.1 Y.1 Z.1).Hom, (α_ X.1 Y.1 Z.1).inv, hom_inv_id (α_ X.1 Y.1 Z.1),
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -68,9 +68,7 @@ instance fullMonoidalSubcategory : MonoidalCategory (FullSubcategory P)
tensorObj X Y := ⟨X.1 ⊗ Y.1, prop_tensor X.2 Y.2⟩
tensorHom X₁ Y₁ X₂ Y₂ f g := by
change X₁.1 ⊗ X₂.1 ⟶ Y₁.1 ⊗ Y₂.1
- change X₁.1 ⟶ Y₁.1 at f
- change X₂.1 ⟶ Y₂.1 at g
- exact f ⊗ g
+ change X₁.1 ⟶ Y₁.1 at f; change X₂.1 ⟶ Y₂.1 at g; exact f ⊗ g
tensorUnit := ⟨𝟙_ C, prop_id⟩
associator X Y Z :=
⟨(α_ X.1 Y.1 Z.1).Hom, (α_ X.1 Y.1 Z.1).inv, hom_inv_id (α_ X.1 Y.1 Z.1),
@@ -171,9 +169,7 @@ instance fullBraidedSubcategory : BraidedCategory (FullSubcategory P) :=
def fullBraidedSubcategoryInclusion : BraidedFunctor (FullSubcategory P) C
where
toMonoidalFunctor := fullMonoidalSubcategoryInclusion P
- braided' X Y := by
- rw [is_iso.eq_inv_comp]
- tidy
+ braided' X Y := by rw [is_iso.eq_inv_comp]; tidy
#align category_theory.monoidal_category.full_braided_subcategory_inclusion CategoryTheory.MonoidalCategory.fullBraidedSubcategoryInclusion
instance fullBraidedSubcategory.full : Full (fullBraidedSubcategoryInclusion P).toFunctor :=
@@ -193,9 +189,7 @@ def fullBraidedSubcategory.map (h : ∀ ⦃X⦄, P X → P' X) :
BraidedFunctor (FullSubcategory P) (FullSubcategory P')
where
toMonoidalFunctor := fullMonoidalSubcategory.map h
- braided' X Y := by
- rw [is_iso.eq_inv_comp]
- tidy
+ braided' X Y := by rw [is_iso.eq_inv_comp]; tidy
#align category_theory.monoidal_category.full_braided_subcategory.map CategoryTheory.MonoidalCategory.fullBraidedSubcategory.map
instance fullBraidedSubcategory.mapFull (h : ∀ ⦃X⦄, P X → P' X) :
@@ -251,14 +245,8 @@ instance fullMonoidalClosedSubcategory : MonoidalClosed (FullSubcategory P)
counit :=
{ app := fun Y => (ihom.ev X.1).app Y.1
naturality' := fun Y Z f => ihom.ev_naturality X.1 f }
- left_triangle := by
- ext Y
- simp
- exact ihom.ev_coev X.1 Y.1
- right_triangle := by
- ext Y
- simp
- exact ihom.coev_ev X.1 Y.1 } } }
+ left_triangle := by ext Y; simp; exact ihom.ev_coev X.1 Y.1
+ right_triangle := by ext Y; simp; exact ihom.coev_ev X.1 Y.1 } } }
#align category_theory.monoidal_category.full_monoidal_closed_subcategory CategoryTheory.MonoidalCategory.fullMonoidalClosedSubcategory
@[simp]
mathlib commit https://github.com/leanprover-community/mathlib/commit/2af0836443b4cfb5feda0df0051acdb398304931
@@ -120,10 +120,10 @@ instance [MonoidalPreadditive C] : MonoidalPreadditive (FullSubcategory P) :=
variable (R : Type _) [Ring R] [Linear R C]
-instance fullMonoidalSubcategoryInclusionLinear :
+instance fullMonoidalSubcategoryInclusion_linear :
(fullMonoidalSubcategoryInclusion P).toFunctor.Linear R :=
Functor.fullSubcategoryInclusionLinear R _
-#align category_theory.monoidal_category.full_monoidal_subcategory_inclusion_linear CategoryTheory.MonoidalCategory.fullMonoidalSubcategoryInclusionLinear
+#align category_theory.monoidal_category.full_monoidal_subcategory_inclusion_linear CategoryTheory.MonoidalCategory.fullMonoidalSubcategoryInclusion_linear
instance [MonoidalPreadditive C] [MonoidalLinear R C] : MonoidalLinear R (FullSubcategory P) :=
monoidalLinearOfFaithful R (fullMonoidalSubcategoryInclusion P)
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Functor.Full
a Prop (#12449)
Before this PR, Functor.Full
contained the data of the preimage of maps by a full functor F
. This PR makes Functor.Full
a proposition. This is to prevent any diamond to appear.
The lemma Functor.image_preimage
is also renamed Functor.map_preimage
.
Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
@@ -129,10 +129,10 @@ def fullMonoidalSubcategory.map (h : ∀ ⦃X⦄, P X → P' X) :
#align category_theory.monoidal_category.full_monoidal_subcategory.map CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map
-instance fullMonoidalSubcategory.mapFull (h : ∀ ⦃X⦄, P X → P' X) :
+instance fullMonoidalSubcategory.map_full (h : ∀ ⦃X⦄, P X → P' X) :
(fullMonoidalSubcategory.map h).Full where
- preimage f := f
-#align category_theory.monoidal_category.full_monoidal_subcategory.map_full CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.mapFull
+ map_surjective f := ⟨f, rfl⟩
+#align category_theory.monoidal_category.full_monoidal_subcategory.map_full CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map_full
instance fullMonoidalSubcategory.map_faithful (h : ∀ ⦃X⦄, P X → P' X) :
(fullMonoidalSubcategory.map h).Faithful where
@@ -181,7 +181,7 @@ def fullBraidedSubcategory.map (h : ∀ ⦃X⦄, P X → P' X) :
instance fullBraidedSubcategory.mapFull (h : ∀ ⦃X⦄, P X → P' X) :
(fullBraidedSubcategory.map h).Full :=
- fullMonoidalSubcategory.mapFull h
+ fullMonoidalSubcategory.map_full h
#align category_theory.monoidal_category.full_braided_subcategory.map_full CategoryTheory.MonoidalCategory.fullBraidedSubcategory.mapFull
instance fullBraidedSubcategory.map_faithful (h : ∀ ⦃X⦄, P X → P' X) :
These notions on functors are now Functor.Full
, Functor.Faithful
, Functor.EssSurj
, Functor.IsEquivalence
, Functor.ReflectsIsomorphisms
. Deprecated aliases are introduced for the previous names.
@@ -81,12 +81,12 @@ def fullMonoidalSubcategoryInclusion : MonoidalFunctor (FullSubcategory P) C whe
μ X Y := 𝟙 _
#align category_theory.monoidal_category.full_monoidal_subcategory_inclusion CategoryTheory.MonoidalCategory.fullMonoidalSubcategoryInclusion
-instance fullMonoidalSubcategory.full : Full (fullMonoidalSubcategoryInclusion P).toFunctor :=
+instance fullMonoidalSubcategory.full : (fullMonoidalSubcategoryInclusion P).Full :=
FullSubcategory.full P
#align category_theory.monoidal_category.full_monoidal_subcategory.full CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.full
instance fullMonoidalSubcategory.faithful :
- Faithful (fullMonoidalSubcategoryInclusion P).toFunctor :=
+ (fullMonoidalSubcategoryInclusion P).Faithful :=
FullSubcategory.faithful P
#align category_theory.monoidal_category.full_monoidal_subcategory.faithful CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.faithful
@@ -130,12 +130,12 @@ def fullMonoidalSubcategory.map (h : ∀ ⦃X⦄, P X → P' X) :
#align category_theory.monoidal_category.full_monoidal_subcategory.map CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map
instance fullMonoidalSubcategory.mapFull (h : ∀ ⦃X⦄, P X → P' X) :
- Full (fullMonoidalSubcategory.map h).toFunctor where
+ (fullMonoidalSubcategory.map h).Full where
preimage f := f
#align category_theory.monoidal_category.full_monoidal_subcategory.map_full CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.mapFull
instance fullMonoidalSubcategory.map_faithful (h : ∀ ⦃X⦄, P X → P' X) :
- Faithful (fullMonoidalSubcategory.map h).toFunctor where
+ (fullMonoidalSubcategory.map h).Faithful where
#align category_theory.monoidal_category.full_monoidal_subcategory.map_faithful CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map_faithful
section Braided
@@ -160,11 +160,11 @@ def fullBraidedSubcategoryInclusion : BraidedFunctor (FullSubcategory P) C where
braided X Y := by rw [IsIso.eq_inv_comp]; aesop_cat
#align category_theory.monoidal_category.full_braided_subcategory_inclusion CategoryTheory.MonoidalCategory.fullBraidedSubcategoryInclusion
-instance fullBraidedSubcategory.full : Full (fullBraidedSubcategoryInclusion P).toFunctor :=
+instance fullBraidedSubcategory.full : (fullBraidedSubcategoryInclusion P).Full :=
fullMonoidalSubcategory.full P
#align category_theory.monoidal_category.full_braided_subcategory.full CategoryTheory.MonoidalCategory.fullBraidedSubcategory.full
-instance fullBraidedSubcategory.faithful : Faithful (fullBraidedSubcategoryInclusion P).toFunctor :=
+instance fullBraidedSubcategory.faithful : (fullBraidedSubcategoryInclusion P).Faithful :=
fullMonoidalSubcategory.faithful P
#align category_theory.monoidal_category.full_braided_subcategory.faithful CategoryTheory.MonoidalCategory.fullBraidedSubcategory.faithful
@@ -180,12 +180,12 @@ def fullBraidedSubcategory.map (h : ∀ ⦃X⦄, P X → P' X) :
#align category_theory.monoidal_category.full_braided_subcategory.map CategoryTheory.MonoidalCategory.fullBraidedSubcategory.map
instance fullBraidedSubcategory.mapFull (h : ∀ ⦃X⦄, P X → P' X) :
- Full (fullBraidedSubcategory.map h).toFunctor :=
+ (fullBraidedSubcategory.map h).Full :=
fullMonoidalSubcategory.mapFull h
#align category_theory.monoidal_category.full_braided_subcategory.map_full CategoryTheory.MonoidalCategory.fullBraidedSubcategory.mapFull
instance fullBraidedSubcategory.map_faithful (h : ∀ ⦃X⦄, P X → P' X) :
- Faithful (fullBraidedSubcategory.map h).toFunctor :=
+ (fullBraidedSubcategory.map h).Faithful :=
fullMonoidalSubcategory.map_faithful h
#align category_theory.monoidal_category.full_braided_subcategory.map_faithful CategoryTheory.MonoidalCategory.fullBraidedSubcategory.map_faithful
@@ -3,7 +3,7 @@ Copyright (c) 2022 Antoine Labelle. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Antoine Labelle
-/
-import Mathlib.CategoryTheory.Monoidal.Braided
+import Mathlib.CategoryTheory.Monoidal.Braided.Basic
import Mathlib.CategoryTheory.Monoidal.Linear
import Mathlib.CategoryTheory.Monoidal.Transport
import Mathlib.CategoryTheory.Preadditive.AdditiveFunctor
attribute [simp] ... in
-> attribute [local simp] ... in
(#7678)
Mathlib.Logic.Unique contains the line attribute [simp] eq_iff_true_of_subsingleton in ...
:
Despite what the in
part may imply, this adds the lemma to the simp set "globally", including for downstream files; it is likely that attribute [local simp] eq_iff_true_of_subsingleton in ...
was meant instead (or maybe scoped simp
, but I think "scoped" refers to the current namespace). Indeed, the relevant lemma is not marked with @[simp]
for possible slowness: https://github.com/leanprover/std4/blob/846e9e1d6bb534774d1acd2dc430e70987da3c18/Std/Logic.lean#L749. Adding it to the simp set causes the example at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Regression.20in.20simp to slow down.
This PR changes this and fixes the relevant downstream simp
s. There was also one ocurrence of attribute [simp] FullSubcategory.comp_def FullSubcategory.id_def in
in Mathlib.CategoryTheory.Monoidal.Subcategory but that was much easier to fix.
@@ -117,7 +117,7 @@ end
variable {P} {P' : C → Prop} [MonoidalPredicate P']
-- needed for `aesop_cat`
-attribute [simp] FullSubcategory.comp_def FullSubcategory.id_def in
+attribute [local simp] FullSubcategory.comp_def FullSubcategory.id_def in
/-- An implication of predicates `P → P'` induces a monoidal functor between full monoidal
subcategories. -/
@[simps]
@@ -228,8 +228,8 @@ instance fullMonoidalClosedSubcategory : MonoidalClosed (FullSubcategory P) wher
counit :=
{ app := fun Y => (ihom.ev X.1).app Y.1
naturality := fun Y Z f => ihom.ev_naturality X.1 f }
- left_triangle := by ext Y; simp
- right_triangle := by ext Y; simp } } }
+ left_triangle := by ext Y; simp [FullSubcategory.comp_def, FullSubcategory.id_def]
+ right_triangle := by ext Y; simp [FullSubcategory.comp_def, FullSubcategory.id_def] } } }
#align category_theory.monoidal_category.full_monoidal_closed_subcategory CategoryTheory.MonoidalCategory.fullMonoidalClosedSubcategory
@[simp]
μIso
and εIso
(#7922)
Reversing these makes the API closer to that of CategoryTheory.LaxMonoidalFunctor
, and doesn't seem to have much impact on proof difficulty.
This also golfs a proof rather than attempting to fix the old one.
Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>
@@ -67,8 +67,8 @@ When `P` is a monoidal predicate, the full subcategory for `P` inherits the mono
-/
instance fullMonoidalSubcategory : MonoidalCategory (FullSubcategory P) :=
Monoidal.induced (fullSubcategoryInclusion P)
- { μIsoSymm := fun X Y => eqToIso rfl
- εIsoSymm := eqToIso rfl }
+ { μIso := fun X Y => eqToIso rfl
+ εIso := eqToIso rfl }
#align category_theory.monoidal_category.full_monoidal_subcategory CategoryTheory.MonoidalCategory.fullMonoidalSubcategory
/-- The forgetful monoidal functor from a full monoidal subcategory into the original category
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.
@@ -48,26 +48,27 @@ open MonoidalPredicate
variable [MonoidalPredicate P]
+@[simps]
+instance : MonoidalCategoryStruct (FullSubcategory P) where
+ tensorObj X Y := ⟨X.1 ⊗ Y.1, prop_tensor X.2 Y.2⟩
+ whiskerLeft X _ _ f := X.1 ◁ f
+ whiskerRight {X₁ X₂} (f : X₁.1 ⟶ X₂.1) Y := (f ▷ Y.1 :)
+ tensorHom f g := f ⊗ g
+ tensorUnit := ⟨𝟙_ C, prop_id⟩
+ associator X Y Z :=
+ ⟨(α_ X.1 Y.1 Z.1).hom, (α_ X.1 Y.1 Z.1).inv, hom_inv_id (α_ X.1 Y.1 Z.1),
+ inv_hom_id (α_ X.1 Y.1 Z.1)⟩
+ leftUnitor X := ⟨(λ_ X.1).hom, (λ_ X.1).inv, hom_inv_id (λ_ X.1), inv_hom_id (λ_ X.1)⟩
+ rightUnitor X := ⟨(ρ_ X.1).hom, (ρ_ X.1).inv, hom_inv_id (ρ_ X.1), inv_hom_id (ρ_ X.1)⟩
+
/--
When `P` is a monoidal predicate, the full subcategory for `P` inherits the monoidal structure of
`C`.
-/
instance fullMonoidalSubcategory : MonoidalCategory (FullSubcategory P) :=
Monoidal.induced (fullSubcategoryInclusion P)
- { tensorObj := fun X Y => ⟨X.1 ⊗ Y.1, prop_tensor X.2 Y.2⟩
- μIsoSymm := fun X Y => eqToIso rfl
- whiskerLeft := fun X _ _ f ↦ X.1 ◁ f
- whiskerRight := @fun X₁ X₂ (f : X₁.1 ⟶ X₂.1) Y ↦ (f ▷ Y.1 :)
- tensorHom := fun f g => f ⊗ g
- tensorUnit' := ⟨𝟙_ C, prop_id⟩
- εIsoSymm := eqToIso rfl
- associator := fun X Y Z =>
- ⟨(α_ X.1 Y.1 Z.1).hom, (α_ X.1 Y.1 Z.1).inv, hom_inv_id (α_ X.1 Y.1 Z.1),
- inv_hom_id (α_ X.1 Y.1 Z.1)⟩
- leftUnitor := fun X =>
- ⟨(λ_ X.1).hom, (λ_ X.1).inv, hom_inv_id (λ_ X.1), inv_hom_id (λ_ X.1)⟩
- rightUnitor := fun X =>
- ⟨(ρ_ X.1).hom, (ρ_ X.1).inv, hom_inv_id (ρ_ X.1), inv_hom_id (ρ_ X.1)⟩ }
+ { μIsoSymm := fun X Y => eqToIso rfl
+ εIsoSymm := eqToIso rfl }
#align category_theory.monoidal_category.full_monoidal_subcategory CategoryTheory.MonoidalCategory.fullMonoidalSubcategory
/-- The forgetful monoidal functor from a full monoidal subcategory into the original category
I needed this to transfer the monoidal structure from ModuleCat
to QuadraticModuleCat
, but would also work for transferring the same structure from ModuleCat
to AlgebraCat
.
The changes are:
CategoryTheory.Monoidal.induced
definition, proven from scratch with slightly uglier proofs than what transport
used. The new proofs use simp
rather more than targeted slice commands, mainly due to lack of patience on my part.CategoryTheory.Monoidal.transport
now has a trivial implementation in terms of induced
, as does CategoryTheory.MonoidalCategory.fullMonoidalSubcategory
(though this was already fairly trivial)CategoryTheory.Monoidal.laxToTransported
has been removed, as it's just a less useful version of CategoryTheory.Monoidal.toTransported
CategoryTheory.Monoidal.toTransported
has been golfed to oblivion, as it now falls out trivially by showing fromTransported
first.@@ -5,6 +5,7 @@ Authors: Antoine Labelle
-/
import Mathlib.CategoryTheory.Monoidal.Braided
import Mathlib.CategoryTheory.Monoidal.Linear
+import Mathlib.CategoryTheory.Monoidal.Transport
import Mathlib.CategoryTheory.Preadditive.AdditiveFunctor
import Mathlib.CategoryTheory.Linear.LinearFunctor
import Mathlib.CategoryTheory.Closed.Monoidal
@@ -51,27 +52,22 @@ variable [MonoidalPredicate P]
When `P` is a monoidal predicate, the full subcategory for `P` inherits the monoidal structure of
`C`.
-/
-instance fullMonoidalSubcategory : MonoidalCategory (FullSubcategory P) where
- tensorObj X Y := ⟨X.1 ⊗ Y.1, prop_tensor X.2 Y.2⟩
- tensorHom f g := f ⊗ g
- tensorHom_def f g := tensorHom_def (C := C) f g
- whiskerLeft := fun X _ _ f ↦ X.1 ◁ f
- whiskerRight := fun f Y ↦ (fun f ↦ f ▷ Y.1) f
- tensorUnit' := ⟨𝟙_ C, prop_id⟩
- associator X Y Z :=
- ⟨(α_ X.1 Y.1 Z.1).hom, (α_ X.1 Y.1 Z.1).inv, hom_inv_id (α_ X.1 Y.1 Z.1),
- inv_hom_id (α_ X.1 Y.1 Z.1)⟩
- whiskerLeft_id X Y := whiskerLeft_id X.1 Y.1
- id_whiskerRight X Y := id_whiskerRight X.1 Y.1
- leftUnitor X := ⟨(λ_ X.1).hom, (λ_ X.1).inv, hom_inv_id (λ_ X.1), inv_hom_id (λ_ X.1)⟩
- rightUnitor X := ⟨(ρ_ X.1).hom, (ρ_ X.1).inv, hom_inv_id (ρ_ X.1), inv_hom_id (ρ_ X.1)⟩
- tensor_id X Y := tensor_id X.1 Y.1
- tensor_comp f₁ f₂ g₁ g₂ := @tensor_comp C _ _ _ _ _ _ _ _ f₁ f₂ g₁ g₂
- associator_naturality f₁ f₂ f₃ := @associator_naturality C _ _ _ _ _ _ _ _ f₁ f₂ f₃
- leftUnitor_naturality f := @leftUnitor_naturality C _ _ _ _ f
- rightUnitor_naturality f := @rightUnitor_naturality C _ _ _ _ f
- pentagon W X Y Z := pentagon W.1 X.1 Y.1 Z.1
- triangle X Y := triangle X.1 Y.1
+instance fullMonoidalSubcategory : MonoidalCategory (FullSubcategory P) :=
+ Monoidal.induced (fullSubcategoryInclusion P)
+ { tensorObj := fun X Y => ⟨X.1 ⊗ Y.1, prop_tensor X.2 Y.2⟩
+ μIsoSymm := fun X Y => eqToIso rfl
+ whiskerLeft := fun X _ _ f ↦ X.1 ◁ f
+ whiskerRight := @fun X₁ X₂ (f : X₁.1 ⟶ X₂.1) Y ↦ (f ▷ Y.1 :)
+ tensorHom := fun f g => f ⊗ g
+ tensorUnit' := ⟨𝟙_ C, prop_id⟩
+ εIsoSymm := eqToIso rfl
+ associator := fun X Y Z =>
+ ⟨(α_ X.1 Y.1 Z.1).hom, (α_ X.1 Y.1 Z.1).inv, hom_inv_id (α_ X.1 Y.1 Z.1),
+ inv_hom_id (α_ X.1 Y.1 Z.1)⟩
+ leftUnitor := fun X =>
+ ⟨(λ_ X.1).hom, (λ_ X.1).inv, hom_inv_id (λ_ X.1), inv_hom_id (λ_ X.1)⟩
+ rightUnitor := fun X =>
+ ⟨(ρ_ X.1).hom, (ρ_ X.1).inv, hom_inv_id (ρ_ X.1), inv_hom_id (ρ_ X.1)⟩ }
#align category_theory.monoidal_category.full_monoidal_subcategory CategoryTheory.MonoidalCategory.fullMonoidalSubcategory
/-- The forgetful monoidal functor from a full monoidal subcategory into the original category
@@ -119,6 +115,8 @@ end
variable {P} {P' : C → Prop} [MonoidalPredicate P']
+-- needed for `aesop_cat`
+attribute [simp] FullSubcategory.comp_def FullSubcategory.id_def in
/-- An implication of predicates `P → P'` induces a monoidal functor between full monoidal
subcategories. -/
@[simps]
@@ -127,6 +125,7 @@ def fullMonoidalSubcategory.map (h : ∀ ⦃X⦄, P X → P' X) :
toFunctor := FullSubcategory.map h
ε := 𝟙 _
μ X Y := 𝟙 _
+
#align category_theory.monoidal_category.full_monoidal_subcategory.map CategoryTheory.MonoidalCategory.fullMonoidalSubcategory.map
instance fullMonoidalSubcategory.mapFull (h : ∀ ⦃X⦄, P X → P' X) :
@@ -228,8 +227,8 @@ instance fullMonoidalClosedSubcategory : MonoidalClosed (FullSubcategory P) wher
counit :=
{ app := fun Y => (ihom.ev X.1).app Y.1
naturality := fun Y Z f => ihom.ev_naturality X.1 f }
- left_triangle := by ext Y; simp; exact ihom.ev_coev X.1 Y.1
- right_triangle := by ext Y; simp; exact ihom.coev_ev X.1 Y.1 } } }
+ left_triangle := by ext Y; simp
+ right_triangle := by ext Y; simp } } }
#align category_theory.monoidal_category.full_monoidal_closed_subcategory CategoryTheory.MonoidalCategory.fullMonoidalClosedSubcategory
@[simp]
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -105,7 +105,7 @@ instance fullMonoidalSubcategoryInclusion_additive :
instance [MonoidalPreadditive C] : MonoidalPreadditive (FullSubcategory P) :=
monoidalPreadditive_of_faithful (fullMonoidalSubcategoryInclusion P)
-variable (R : Type _) [Ring R] [Linear R C]
+variable (R : Type*) [Ring R] [Linear R C]
instance fullMonoidalSubcategoryInclusion_linear :
(fullMonoidalSubcategoryInclusion P).toFunctor.Linear R :=
@@ -53,13 +53,16 @@ When `P` is a monoidal predicate, the full subcategory for `P` inherits the mono
-/
instance fullMonoidalSubcategory : MonoidalCategory (FullSubcategory P) where
tensorObj X Y := ⟨X.1 ⊗ Y.1, prop_tensor X.2 Y.2⟩
- tensorHom := @fun X₁ Y₁ X₂ Y₂ f g => by
- change X₁.1 ⊗ X₂.1 ⟶ Y₁.1 ⊗ Y₂.1
- change X₁.1 ⟶ Y₁.1 at f; change X₂.1 ⟶ Y₂.1 at g; exact f ⊗ g
+ tensorHom f g := f ⊗ g
+ tensorHom_def f g := tensorHom_def (C := C) f g
+ whiskerLeft := fun X _ _ f ↦ X.1 ◁ f
+ whiskerRight := fun f Y ↦ (fun f ↦ f ▷ Y.1) f
tensorUnit' := ⟨𝟙_ C, prop_id⟩
associator X Y Z :=
⟨(α_ X.1 Y.1 Z.1).hom, (α_ X.1 Y.1 Z.1).inv, hom_inv_id (α_ X.1 Y.1 Z.1),
inv_hom_id (α_ X.1 Y.1 Z.1)⟩
+ whiskerLeft_id X Y := whiskerLeft_id X.1 Y.1
+ id_whiskerRight X Y := id_whiskerRight X.1 Y.1
leftUnitor X := ⟨(λ_ X.1).hom, (λ_ X.1).inv, hom_inv_id (λ_ X.1), inv_hom_id (λ_ X.1)⟩
rightUnitor X := ⟨(ρ_ X.1).hom, (ρ_ X.1).inv, hom_inv_id (ρ_ X.1), inv_hom_id (ρ_ X.1)⟩
tensor_id X Y := tensor_id X.1 Y.1
@@ -2,11 +2,6 @@
Copyright (c) 2022 Antoine Labelle. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Antoine Labelle
-
-! This file was ported from Lean 3 source module category_theory.monoidal.subcategory
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.Monoidal.Braided
import Mathlib.CategoryTheory.Monoidal.Linear
@@ -14,6 +9,8 @@ import Mathlib.CategoryTheory.Preadditive.AdditiveFunctor
import Mathlib.CategoryTheory.Linear.LinearFunctor
import Mathlib.CategoryTheory.Closed.Monoidal
+#align_import category_theory.monoidal.subcategory from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
+
/-!
# Full monoidal subcategories
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.
@@ -58,7 +58,7 @@ instance fullMonoidalSubcategory : MonoidalCategory (FullSubcategory P) where
tensorObj X Y := ⟨X.1 ⊗ Y.1, prop_tensor X.2 Y.2⟩
tensorHom := @fun X₁ Y₁ X₂ Y₂ f g => by
change X₁.1 ⊗ X₂.1 ⟶ Y₁.1 ⊗ Y₂.1
- change X₁.1 ⟶ Y₁.1 at f ; change X₂.1 ⟶ Y₂.1 at g ; exact f ⊗ g
+ change X₁.1 ⟶ Y₁.1 at f; change X₂.1 ⟶ Y₂.1 at g; exact f ⊗ g
tensorUnit' := ⟨𝟙_ C, prop_id⟩
associator X Y Z :=
⟨(α_ X.1 Y.1 Z.1).hom, (α_ X.1 Y.1 Z.1).inv, hom_inv_id (α_ X.1 Y.1 Z.1),
@@ -17,7 +17,7 @@ import Mathlib.CategoryTheory.Closed.Monoidal
/-!
# Full monoidal subcategories
-Given a monidal category `C` and a monoidal predicate on `C`, that is a function `P : C → Prop`
+Given a monoidal category `C` and a monoidal predicate on `C`, that is a function `P : C → Prop`
closed under `𝟙_` and `⊗`, we can put a monoidal structure on `{X : C // P X}` (the category
structure is defined in `Mathlib.CategoryTheory.FullSubcategory`).
The unported dependencies are