category_theory.limits.types
⟷
Mathlib.CategoryTheory.Limits.Types
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)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison, Reid Barton
-/
import CategoryTheory.Limits.Shapes.Images
-import CategoryTheory.Filtered
+import CategoryTheory.Filtered.Basic
import Tactic.EquivRw
#align_import category_theory.limits.types from "leanprover-community/mathlib"@"69c6a5a12d8a2b159f20933e60115a4f2de62b58"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -97,7 +97,7 @@ theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : Is
theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c)
(x : F.sections) (j : J) : c.π.app j ((isLimitEquivSections t).symm x) = (x : ∀ j, F.obj j) j :=
by
- equiv_rw (is_limit_equiv_sections t).symm at x
+ equiv_rw (is_limit_equiv_sections t).symm at x
simp
#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply
-/
@@ -419,8 +419,8 @@ theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimi
by
have := congr_fun this x
have H := congr_arg ULift.down this
- dsimp at H
- rwa [eq_true_iff] at H
+ dsimp at H
+ rwa [eq_true_iff] at H
refine' h.hom_ext _
intro j; ext y
erw [iff_true_iff]
@@ -489,8 +489,8 @@ noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x
intro a b h
rcases jointly_surjective F (colimit.is_colimit F) a with ⟨i, xi, rfl⟩
rcases jointly_surjective F (colimit.is_colimit F) b with ⟨j, xj, rfl⟩
- change (colimit.ι F i ≫ colimit.desc F t) xi = (colimit.ι F j ≫ colimit.desc F t) xj at h
- rw [colimit.ι_desc, colimit.ι_desc] at h
+ change (colimit.ι F i ≫ colimit.desc F t) xi = (colimit.ι F j ≫ colimit.desc F t) xj at h
+ rw [colimit.ι_desc, colimit.ι_desc] at h
rcases hinj i j xi xj h with ⟨k, f, g, h'⟩
change colimit.ι F i xi = colimit.ι F j xj
rw [← colimit.w F f, ← colimit.w F g]
@@ -645,7 +645,7 @@ instance : HasImageMaps (Type u)
⟨st.left (Classical.choose x.2), by
have p := st.w
replace p := congr_fun p (Classical.choose x.2)
- simp only [functor.id_map, types_comp_apply, Subtype.val_eq_coe] at p
+ simp only [functor.id_map, types_comp_apply, Subtype.val_eq_coe] at p
erw [p, Classical.choose_spec x.2]⟩⟩)
rfl
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2018 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison, Reid Barton
-/
-import Mathbin.CategoryTheory.Limits.Shapes.Images
-import Mathbin.CategoryTheory.Filtered
-import Mathbin.Tactic.EquivRw
+import CategoryTheory.Limits.Shapes.Images
+import CategoryTheory.Filtered
+import Tactic.EquivRw
#align_import category_theory.limits.types from "leanprover-community/mathlib"@"69c6a5a12d8a2b159f20933e60115a4f2de62b58"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2018 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison, Reid Barton
-
-! This file was ported from Lean 3 source module category_theory.limits.types
-! leanprover-community/mathlib commit 69c6a5a12d8a2b159f20933e60115a4f2de62b58
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.Limits.Shapes.Images
import Mathbin.CategoryTheory.Filtered
import Mathbin.Tactic.EquivRw
+#align_import category_theory.limits.types from "leanprover-community/mathlib"@"69c6a5a12d8a2b159f20933e60115a4f2de62b58"
+
/-!
# Limits in the category of types.
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -56,7 +56,7 @@ attribute [local elab_without_expected_type] congr_fun
def limitConeIsLimit (F : J ⥤ Type max v u) : IsLimit (limitCone F)
where
lift s v := ⟨fun j => s.π.app j v, fun j j' f => congr_fun (Cone.w s f) _⟩
- uniq := by intros; ext (x j); exact congr_fun (w j) x
+ uniq := by intros; ext x j; exact congr_fun (w j) x
#align category_theory.limits.types.limit_cone_is_limit CategoryTheory.Limits.Types.limitConeIsLimit
-/
@@ -531,7 +531,7 @@ protected theorem rel_equiv : Equivalence (FilteredColimit.Rel F) :=
#print CategoryTheory.Limits.Types.FilteredColimit.rel_eq_eqvGen_quot_rel /-
protected theorem rel_eq_eqvGen_quot_rel : FilteredColimit.Rel F = EqvGen (Quot.Rel F) :=
by
- ext (⟨j, x⟩⟨j', y⟩)
+ ext ⟨j, x⟩ ⟨j', y⟩
constructor
· apply eqv_gen_quot_rel_of_rel
· rw [← (filtered_colimit.rel_equiv F).eqvGen_iff]
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -78,19 +78,24 @@ instance hasLimitsOfSize : HasLimitsOfSize.{v} (Type max v u)
instance : HasLimits (Type u) :=
Types.hasLimitsOfSize.{u, u}
+#print CategoryTheory.Limits.Types.isLimitEquivSections /-
/-- The equivalence between a limiting cone of `F` in `Type u` and the "concrete" definition as the
sections of `F`.
-/
def isLimitEquivSections {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) : c.pt ≃ F.sections :=
(IsLimit.conePointUniqueUpToIso t (limitConeIsLimit F)).toEquiv
#align category_theory.limits.types.is_limit_equiv_sections CategoryTheory.Limits.Types.isLimitEquivSections
+-/
+#print CategoryTheory.Limits.Types.isLimitEquivSections_apply /-
@[simp]
theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) (j : J)
(x : c.pt) : ((isLimitEquivSections t) x : ∀ j, F.obj j) j = c.π.app j x :=
rfl
#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_apply
+-/
+#print CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply /-
@[simp]
theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c)
(x : F.sections) (j : J) : c.π.app j ((isLimitEquivSections t).symm x) = (x : ∀ j, F.obj j) j :=
@@ -98,7 +103,9 @@ theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t
equiv_rw (is_limit_equiv_sections t).symm at x
simp
#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply
+-/
+#print CategoryTheory.Limits.Types.limitEquivSections /-
/-- The equivalence between the abstract limit of `F` in `Type u`
and the "concrete" definition as the sections of `F`.
-/
@@ -106,18 +113,23 @@ noncomputable def limitEquivSections (F : J ⥤ Type max v u) :
(limit F : Type max v u) ≃ F.sections :=
isLimitEquivSections (limit.isLimit _)
#align category_theory.limits.types.limit_equiv_sections CategoryTheory.Limits.Types.limitEquivSections
+-/
+#print CategoryTheory.Limits.Types.limitEquivSections_apply /-
@[simp]
theorem limitEquivSections_apply (F : J ⥤ Type max v u) (x : limit F) (j : J) :
((limitEquivSections F) x : ∀ j, F.obj j) j = limit.π F j x :=
rfl
#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_apply
+-/
+#print CategoryTheory.Limits.Types.limitEquivSections_symm_apply /-
@[simp]
theorem limitEquivSections_symm_apply (F : J ⥤ Type max v u) (x : F.sections) (j : J) :
limit.π F j ((limitEquivSections F).symm x) = (x : ∀ j, F.obj j) j :=
isLimitEquivSections_symm_apply _ _ _
#align category_theory.limits.types.limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.limitEquivSections_symm_apply
+-/
@[simp]
theorem limitEquivSections_symm_apply' (F : J ⥤ Type v) (x : F.sections) (j : J) :
@@ -125,6 +137,7 @@ theorem limitEquivSections_symm_apply' (F : J ⥤ Type v) (x : F.sections) (j :
isLimitEquivSections_symm_apply _ _ _
#align category_theory.limits.types.limit_equiv_sections_symm_apply' CategoryTheory.Limits.Types.limitEquivSections_symm_apply'
+#print CategoryTheory.Limits.Types.Limit.mk /-
/-- Construct a term of `limit F : Type u` from a family of terms `x : Π j, F.obj j`
which are "coherent": `∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j'`.
-/
@@ -133,12 +146,15 @@ noncomputable def Limit.mk (F : J ⥤ Type max v u) (x : ∀ j, F.obj j)
(h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') : (limit F : Type max v u) :=
(limitEquivSections F).symm ⟨x, h⟩
#align category_theory.limits.types.limit.mk CategoryTheory.Limits.Types.Limit.mk
+-/
+#print CategoryTheory.Limits.Types.Limit.π_mk /-
@[simp]
theorem Limit.π_mk (F : J ⥤ Type max v u) (x : ∀ j, F.obj j)
(h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') (j) : limit.π F j (Limit.mk F x h) = x j := by
dsimp [limit.mk]; simp
#align category_theory.limits.types.limit.π_mk CategoryTheory.Limits.Types.Limit.π_mk
+-/
@[simp]
theorem Limit.π_mk' (F : J ⥤ Type v) (x : ∀ j, F.obj j)
@@ -146,6 +162,7 @@ theorem Limit.π_mk' (F : J ⥤ Type v) (x : ∀ j, F.obj j)
limit.π F j (Limit.mk.{v, v} F x h) = x j := by dsimp [limit.mk]; simp
#align category_theory.limits.types.limit.π_mk' CategoryTheory.Limits.Types.Limit.π_mk'
+#print CategoryTheory.Limits.Types.limit_ext /-
-- PROJECT: prove this for concrete categories where the forgetful functor preserves limits
@[ext]
theorem limit_ext (F : J ⥤ Type max v u) (x y : limit F) (w : ∀ j, limit.π F j x = limit.π F j y) :
@@ -154,7 +171,9 @@ theorem limit_ext (F : J ⥤ Type max v u) (x y : limit F) (w : ∀ j, limit.π
ext j
simp [w j]
#align category_theory.limits.types.limit_ext CategoryTheory.Limits.Types.limit_ext
+-/
+#print CategoryTheory.Limits.Types.limit_ext' /-
@[ext]
theorem limit_ext' (F : J ⥤ Type v) (x y : limit F) (w : ∀ j, limit.π F j x = limit.π F j y) :
x = y := by
@@ -162,17 +181,23 @@ theorem limit_ext' (F : J ⥤ Type v) (x y : limit F) (w : ∀ j, limit.π F j x
ext j
simp [w j]
#align category_theory.limits.types.limit_ext' CategoryTheory.Limits.Types.limit_ext'
+-/
+#print CategoryTheory.Limits.Types.limit_ext_iff /-
theorem limit_ext_iff (F : J ⥤ Type max v u) (x y : limit F) :
x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
⟨fun t _ => t ▸ rfl, limit_ext _ _ _⟩
#align category_theory.limits.types.limit_ext_iff CategoryTheory.Limits.Types.limit_ext_iff
+-/
+#print CategoryTheory.Limits.Types.limit_ext_iff' /-
theorem limit_ext_iff' (F : J ⥤ Type v) (x y : limit F) :
x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
⟨fun t _ => t ▸ rfl, limit_ext _ _ _⟩
#align category_theory.limits.types.limit_ext_iff' CategoryTheory.Limits.Types.limit_ext_iff'
+-/
+#print CategoryTheory.Limits.Types.Limit.w_apply /-
-- TODO: are there other limits lemmas that should have `_apply` versions?
-- Can we generate these like with `@[reassoc]`?
-- PROJECT: prove these for any concrete category where the forgetful functor preserves limits?
@@ -181,37 +206,49 @@ theorem Limit.w_apply {F : J ⥤ Type max v u} {j j' : J} {x : limit F} (f : j
F.map f (limit.π F j x) = limit.π F j' x :=
congr_fun (limit.w F f) x
#align category_theory.limits.types.limit.w_apply CategoryTheory.Limits.Types.Limit.w_apply
+-/
+#print CategoryTheory.Limits.Types.Limit.lift_π_apply /-
@[simp]
theorem Limit.lift_π_apply (F : J ⥤ Type max v u) (s : Cone F) (j : J) (x : s.pt) :
limit.π F j (limit.lift F s x) = s.π.app j x :=
congr_fun (limit.lift_π s j) x
#align category_theory.limits.types.limit.lift_π_apply CategoryTheory.Limits.Types.Limit.lift_π_apply
+-/
+#print CategoryTheory.Limits.Types.Limit.map_π_apply /-
@[simp]
theorem Limit.map_π_apply {F G : J ⥤ Type max v u} (α : F ⟶ G) (j : J) (x) :
limit.π G j (limMap α x) = α.app j (limit.π F j x) :=
congr_fun (limMap_π α j) x
#align category_theory.limits.types.limit.map_π_apply CategoryTheory.Limits.Types.Limit.map_π_apply
+-/
+#print CategoryTheory.Limits.Types.Limit.w_apply' /-
@[simp]
theorem Limit.w_apply' {F : J ⥤ Type v} {j j' : J} {x : limit F} (f : j ⟶ j') :
F.map f (limit.π F j x) = limit.π F j' x :=
congr_fun (limit.w F f) x
#align category_theory.limits.types.limit.w_apply' CategoryTheory.Limits.Types.Limit.w_apply'
+-/
+#print CategoryTheory.Limits.Types.Limit.lift_π_apply' /-
@[simp]
theorem Limit.lift_π_apply' (F : J ⥤ Type v) (s : Cone F) (j : J) (x : s.pt) :
limit.π F j (limit.lift F s x) = s.π.app j x :=
congr_fun (limit.lift_π s j) x
#align category_theory.limits.types.limit.lift_π_apply' CategoryTheory.Limits.Types.Limit.lift_π_apply'
+-/
+#print CategoryTheory.Limits.Types.Limit.map_π_apply' /-
@[simp]
theorem Limit.map_π_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x) :
limit.π G j (limMap α x) = α.app j (limit.π F j x) :=
congr_fun (limMap_π α j) x
#align category_theory.limits.types.limit.map_π_apply' CategoryTheory.Limits.Types.Limit.map_π_apply'
+-/
+#print CategoryTheory.Limits.Types.Quot.Rel /-
/--
The relation defining the quotient type which implements the colimit of a functor `F : J ⥤ Type u`.
See `category_theory.limits.types.quot`.
@@ -219,6 +256,7 @@ See `category_theory.limits.types.quot`.
def Quot.Rel (F : J ⥤ Type max v u) : (Σ j, F.obj j) → (Σ j, F.obj j) → Prop := fun p p' =>
∃ f : p.1 ⟶ p'.1, p'.2 = F.map f p.2
#align category_theory.limits.types.quot.rel CategoryTheory.Limits.Types.Quot.Rel
+-/
#print CategoryTheory.Limits.Types.Quot /-
/-- A quotient type implementing the colimit of a functor `F : J ⥤ Type u`,
@@ -282,12 +320,15 @@ noncomputable def colimitEquivQuot (F : J ⥤ Type max v u) : (colimit F : Type
#align category_theory.limits.types.colimit_equiv_quot CategoryTheory.Limits.Types.colimitEquivQuot
-/
+#print CategoryTheory.Limits.Types.colimitEquivQuot_symm_apply /-
@[simp]
theorem colimitEquivQuot_symm_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
(colimitEquivQuot F).symm (Quot.mk _ ⟨j, x⟩) = colimit.ι F j x :=
rfl
#align category_theory.limits.types.colimit_equiv_quot_symm_apply CategoryTheory.Limits.Types.colimitEquivQuot_symm_apply
+-/
+#print CategoryTheory.Limits.Types.colimitEquivQuot_apply /-
@[simp]
theorem colimitEquivQuot_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
(colimitEquivQuot F) (colimit.ι F j x) = Quot.mk _ ⟨j, x⟩ :=
@@ -295,50 +336,66 @@ theorem colimitEquivQuot_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
apply (colimit_equiv_quot F).symm.Injective
simp
#align category_theory.limits.types.colimit_equiv_quot_apply CategoryTheory.Limits.Types.colimitEquivQuot_apply
+-/
+#print CategoryTheory.Limits.Types.Colimit.w_apply /-
@[simp]
theorem Colimit.w_apply {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} (f : j ⟶ j') :
colimit.ι F j' (F.map f x) = colimit.ι F j x :=
congr_fun (colimit.w F f) x
#align category_theory.limits.types.colimit.w_apply CategoryTheory.Limits.Types.Colimit.w_apply
+-/
+#print CategoryTheory.Limits.Types.Colimit.ι_desc_apply /-
@[simp]
theorem Colimit.ι_desc_apply (F : J ⥤ Type max v u) (s : Cocone F) (j : J) (x : F.obj j) :
colimit.desc F s (colimit.ι F j x) = s.ι.app j x :=
congr_fun (colimit.ι_desc s j) x
#align category_theory.limits.types.colimit.ι_desc_apply CategoryTheory.Limits.Types.Colimit.ι_desc_apply
+-/
+#print CategoryTheory.Limits.Types.Colimit.ι_map_apply /-
@[simp]
theorem Colimit.ι_map_apply {F G : J ⥤ Type max v u} (α : F ⟶ G) (j : J) (x) :
colim.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
congr_fun (colimit.ι_map α j) x
#align category_theory.limits.types.colimit.ι_map_apply CategoryTheory.Limits.Types.Colimit.ι_map_apply
+-/
+#print CategoryTheory.Limits.Types.Colimit.w_apply' /-
@[simp]
theorem Colimit.w_apply' {F : J ⥤ Type v} {j j' : J} {x : F.obj j} (f : j ⟶ j') :
colimit.ι F j' (F.map f x) = colimit.ι F j x :=
congr_fun (colimit.w F f) x
#align category_theory.limits.types.colimit.w_apply' CategoryTheory.Limits.Types.Colimit.w_apply'
+-/
+#print CategoryTheory.Limits.Types.Colimit.ι_desc_apply' /-
@[simp]
theorem Colimit.ι_desc_apply' (F : J ⥤ Type v) (s : Cocone F) (j : J) (x : F.obj j) :
colimit.desc F s (colimit.ι F j x) = s.ι.app j x :=
congr_fun (colimit.ι_desc s j) x
#align category_theory.limits.types.colimit.ι_desc_apply' CategoryTheory.Limits.Types.Colimit.ι_desc_apply'
+-/
+#print CategoryTheory.Limits.Types.Colimit.ι_map_apply' /-
@[simp]
theorem Colimit.ι_map_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x) :
colim.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
congr_fun (colimit.ι_map α j) x
#align category_theory.limits.types.colimit.ι_map_apply' CategoryTheory.Limits.Types.Colimit.ι_map_apply'
+-/
+#print CategoryTheory.Limits.Types.colimit_sound /-
theorem colimit_sound {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'} (f : j ⟶ j')
(w : F.map f x = x') : colimit.ι F j x = colimit.ι F j' x' :=
by
rw [← w]
simp
#align category_theory.limits.types.colimit_sound CategoryTheory.Limits.Types.colimit_sound
+-/
+#print CategoryTheory.Limits.Types.colimit_sound' /-
theorem colimit_sound' {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'} {j'' : J}
(f : j ⟶ j'') (f' : j' ⟶ j'') (w : F.map f x = F.map f' x') :
colimit.ι F j x = colimit.ι F j' x' :=
@@ -346,14 +403,18 @@ theorem colimit_sound' {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F
rw [← colimit.w _ f, ← colimit.w _ f']
rw [types_comp_apply, types_comp_apply, w]
#align category_theory.limits.types.colimit_sound' CategoryTheory.Limits.Types.colimit_sound'
+-/
+#print CategoryTheory.Limits.Types.colimit_eq /-
theorem colimit_eq {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'}
(w : colimit.ι F j x = colimit.ι F j' x') : EqvGen (Quot.Rel F) ⟨j, x⟩ ⟨j', x'⟩ :=
by
apply Quot.eq.1
simpa using congr_arg (colimit_equiv_quot F) w
#align category_theory.limits.types.colimit_eq CategoryTheory.Limits.Types.colimit_eq
+-/
+#print CategoryTheory.Limits.Types.jointly_surjective /-
theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimit t) (x : t.pt) :
∃ j y, t.ι.app j y = x :=
by
@@ -368,11 +429,14 @@ theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimi
erw [iff_true_iff]
exact ⟨j, y, rfl⟩
#align category_theory.limits.types.jointly_surjective CategoryTheory.Limits.Types.jointly_surjective
+-/
+#print CategoryTheory.Limits.Types.jointly_surjective' /-
/-- A variant of `jointly_surjective` for `x : colimit F`. -/
theorem jointly_surjective' {F : J ⥤ Type max v u} (x : colimit F) : ∃ j y, colimit.ι F j y = x :=
jointly_surjective F (colimit.isColimit _) x
#align category_theory.limits.types.jointly_surjective' CategoryTheory.Limits.Types.jointly_surjective'
+-/
namespace FilteredColimit
@@ -381,6 +445,7 @@ namespace FilteredColimit
the colimit. -/
variable (F : J ⥤ Type max v u)
+#print CategoryTheory.Limits.Types.FilteredColimit.Rel /-
/-- An alternative relation on `Σ j, F.obj j`,
which generates the same equivalence relation as we use to define the colimit in `Type` above,
but that is more convenient when working with filtered colimits.
@@ -391,19 +456,25 @@ where their images are equal.
protected def Rel (x y : Σ j, F.obj j) : Prop :=
∃ (k : _) (f : x.1 ⟶ k) (g : y.1 ⟶ k), F.map f x.2 = F.map g y.2
#align category_theory.limits.types.filtered_colimit.rel CategoryTheory.Limits.Types.FilteredColimit.Rel
+-/
+#print CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel /-
theorem rel_of_quot_rel (x y : Σ j, F.obj j) : Quot.Rel F x y → FilteredColimit.Rel F x y :=
fun ⟨f, h⟩ => ⟨y.1, f, 𝟙 y.1, by rw [← h, functor_to_types.map_id_apply]⟩
#align category_theory.limits.types.filtered_colimit.rel_of_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel
+-/
+#print CategoryTheory.Limits.Types.FilteredColimit.eqvGen_quot_rel_of_rel /-
theorem eqvGen_quot_rel_of_rel (x y : Σ j, F.obj j) :
FilteredColimit.Rel F x y → EqvGen (Quot.Rel F) x y := fun ⟨k, f, g, h⟩ =>
EqvGen.trans _ ⟨k, F.map f x.2⟩ _ (EqvGen.rel _ _ ⟨f, rfl⟩)
(EqvGen.symm _ _ (EqvGen.rel _ _ ⟨g, h⟩))
#align category_theory.limits.types.filtered_colimit.eqv_gen_quot_rel_of_rel CategoryTheory.Limits.Types.FilteredColimit.eqvGen_quot_rel_of_rel
+-/
attribute [local elab_without_expected_type] nat_trans.app
+#print CategoryTheory.Limits.Types.FilteredColimit.isColimitOf /-
/-- Recognizing filtered colimits of types. -/
noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x = t.ι.app i xi)
(hinj :
@@ -435,9 +506,11 @@ noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x
simp
· intro j; apply colimit.ι_desc
#align category_theory.limits.types.filtered_colimit.is_colimit_of CategoryTheory.Limits.Types.FilteredColimit.isColimitOf
+-/
variable [IsFilteredOrEmpty J]
+#print CategoryTheory.Limits.Types.FilteredColimit.rel_equiv /-
protected theorem rel_equiv : Equivalence (FilteredColimit.Rel F) :=
⟨fun x => ⟨x.1, 𝟙 x.1, 𝟙 x.1, rfl⟩, fun x y ⟨k, f, g, h⟩ => ⟨k, g, f, h.symm⟩,
fun x y z ⟨k, f, g, h⟩ ⟨k', f', g', h'⟩ =>
@@ -453,7 +526,9 @@ protected theorem rel_equiv : Equivalence (FilteredColimit.Rel F) :=
_ = F.map (gl ≫ n) (F.map g' z.2) := by rw [h']
_ = F.map (g' ≫ gl ≫ n) z.2 := by simp⟩⟩
#align category_theory.limits.types.filtered_colimit.rel_equiv CategoryTheory.Limits.Types.FilteredColimit.rel_equiv
+-/
+#print CategoryTheory.Limits.Types.FilteredColimit.rel_eq_eqvGen_quot_rel /-
protected theorem rel_eq_eqvGen_quot_rel : FilteredColimit.Rel F = EqvGen (Quot.Rel F) :=
by
ext (⟨j, x⟩⟨j', y⟩)
@@ -462,7 +537,9 @@ protected theorem rel_eq_eqvGen_quot_rel : FilteredColimit.Rel F = EqvGen (Quot.
· rw [← (filtered_colimit.rel_equiv F).eqvGen_iff]
exact EqvGen.mono (rel_of_quot_rel F)
#align category_theory.limits.types.filtered_colimit.rel_eq_eqv_gen_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_eq_eqvGen_quot_rel
+-/
+#print CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_aux /-
theorem colimit_eq_iff_aux {i j : J} {xi : F.obj i} {xj : F.obj j} :
(colimitCocone F).ι.app i xi = (colimitCocone F).ι.app j xj ↔
FilteredColimit.Rel F ⟨i, xi⟩ ⟨j, xj⟩ :=
@@ -470,7 +547,9 @@ theorem colimit_eq_iff_aux {i j : J} {xi : F.obj i} {xj : F.obj j} :
change Quot.mk _ _ = Quot.mk _ _ ↔ _
rw [Quot.eq, filtered_colimit.rel_eq_eqv_gen_quot_rel]
#align category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_aux
+-/
+#print CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iff /-
theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj i} {xj : F.obj j} :
t.ι.app i xi = t.ι.app j xj ↔ ∃ (k : _) (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj :=
by
@@ -480,12 +559,15 @@ theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj
refine' Iff.trans _ (colimit_eq_iff_aux F)
convert e'.to_equiv.apply_eq_iff_eq <;> rw [← e.hom.w] <;> rfl
#align category_theory.limits.types.filtered_colimit.is_colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iff
+-/
+#print CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff /-
theorem colimit_eq_iff {i j : J} {xi : F.obj i} {xj : F.obj j} :
colimit.ι F i xi = colimit.ι F j xj ↔
∃ (k : _) (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj :=
isColimit_eq_iff _ (colimit.isColimit F)
#align category_theory.limits.types.filtered_colimit.colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff
+-/
end FilteredColimit
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -451,8 +451,7 @@ protected theorem rel_equiv : Equivalence (FilteredColimit.Rel F) :=
_ = F.map ((f' ≫ gl) ≫ n) y.2 := by rw [hn]
_ = F.map (gl ≫ n) (F.map f' y.2) := by simp
_ = F.map (gl ≫ n) (F.map g' z.2) := by rw [h']
- _ = F.map (g' ≫ gl ≫ n) z.2 := by simp
- ⟩⟩
+ _ = F.map (g' ≫ gl ≫ n) z.2 := by simp⟩⟩
#align category_theory.limits.types.filtered_colimit.rel_equiv CategoryTheory.Limits.Types.FilteredColimit.rel_equiv
protected theorem rel_eq_eqvGen_quot_rel : FilteredColimit.Rel F = EqvGen (Quot.Rel F) :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -95,7 +95,7 @@ theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : Is
theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c)
(x : F.sections) (j : J) : c.π.app j ((isLimitEquivSections t).symm x) = (x : ∀ j, F.obj j) j :=
by
- equiv_rw(is_limit_equiv_sections t).symm at x
+ equiv_rw (is_limit_equiv_sections t).symm at x
simp
#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -56,7 +56,7 @@ attribute [local elab_without_expected_type] congr_fun
def limitConeIsLimit (F : J ⥤ Type max v u) : IsLimit (limitCone F)
where
lift s v := ⟨fun j => s.π.app j v, fun j j' f => congr_fun (Cone.w s f) _⟩
- uniq := by intros ; ext (x j); exact congr_fun (w j) x
+ uniq := by intros; ext (x j); exact congr_fun (w j) x
#align category_theory.limits.types.limit_cone_is_limit CategoryTheory.Limits.Types.limitConeIsLimit
-/
@@ -95,7 +95,7 @@ theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : Is
theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c)
(x : F.sections) (j : J) : c.π.app j ((isLimitEquivSections t).symm x) = (x : ∀ j, F.obj j) j :=
by
- equiv_rw(is_limit_equiv_sections t).symm at x
+ equiv_rw(is_limit_equiv_sections t).symm at x
simp
#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply
@@ -216,7 +216,7 @@ theorem Limit.map_π_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x) :
The relation defining the quotient type which implements the colimit of a functor `F : J ⥤ Type u`.
See `category_theory.limits.types.quot`.
-/
-def Quot.Rel (F : J ⥤ Type max v u) : (Σj, F.obj j) → (Σj, F.obj j) → Prop := fun p p' =>
+def Quot.Rel (F : J ⥤ Type max v u) : (Σ j, F.obj j) → (Σ j, F.obj j) → Prop := fun p p' =>
∃ f : p.1 ⟶ p'.1, p'.2 = F.map f p.2
#align category_theory.limits.types.quot.rel CategoryTheory.Limits.Types.Quot.Rel
@@ -227,7 +227,7 @@ as pairs `⟨j, x⟩` where `x : F.obj j`, modulo the equivalence relation gener
-/
@[nolint has_nonempty_instance]
def Quot (F : J ⥤ Type max v u) : Type max v u :=
- @Quot (Σj, F.obj j) (Quot.Rel F)
+ @Quot (Σ j, F.obj j) (Quot.Rel F)
#align category_theory.limits.types.quot CategoryTheory.Limits.Types.Quot
-/
@@ -250,7 +250,7 @@ attribute [local elab_with_expected_type] Quot.lift
/-- (internal implementation) the fact that the proposed colimit cocone is the colimit -/
def colimitCoconeIsColimit (F : J ⥤ Type max v u) : IsColimit (colimitCocone F)
where desc s :=
- Quot.lift (fun p : Σj, F.obj j => s.ι.app p.1 p.2) fun ⟨j, x⟩ ⟨j', x'⟩ ⟨f, hf⟩ => by
+ Quot.lift (fun p : Σ j, F.obj j => s.ι.app p.1 p.2) fun ⟨j, x⟩ ⟨j', x'⟩ ⟨f, hf⟩ => by
rw [hf] <;> exact (congr_fun (cocone.w s f) x).symm
#align category_theory.limits.types.colimit_cocone_is_colimit CategoryTheory.Limits.Types.colimitCoconeIsColimit
-/
@@ -361,8 +361,8 @@ theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimi
by
have := congr_fun this x
have H := congr_arg ULift.down this
- dsimp at H
- rwa [eq_true_iff] at H
+ dsimp at H
+ rwa [eq_true_iff] at H
refine' h.hom_ext _
intro j; ext y
erw [iff_true_iff]
@@ -388,15 +388,15 @@ but that is more convenient when working with filtered colimits.
Elements in `F.obj j` and `F.obj j'` are equivalent if there is some `k : J` to the right
where their images are equal.
-/
-protected def Rel (x y : Σj, F.obj j) : Prop :=
- ∃ (k : _)(f : x.1 ⟶ k)(g : y.1 ⟶ k), F.map f x.2 = F.map g y.2
+protected def Rel (x y : Σ j, F.obj j) : Prop :=
+ ∃ (k : _) (f : x.1 ⟶ k) (g : y.1 ⟶ k), F.map f x.2 = F.map g y.2
#align category_theory.limits.types.filtered_colimit.rel CategoryTheory.Limits.Types.FilteredColimit.Rel
-theorem rel_of_quot_rel (x y : Σj, F.obj j) : Quot.Rel F x y → FilteredColimit.Rel F x y :=
+theorem rel_of_quot_rel (x y : Σ j, F.obj j) : Quot.Rel F x y → FilteredColimit.Rel F x y :=
fun ⟨f, h⟩ => ⟨y.1, f, 𝟙 y.1, by rw [← h, functor_to_types.map_id_apply]⟩
#align category_theory.limits.types.filtered_colimit.rel_of_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel
-theorem eqvGen_quot_rel_of_rel (x y : Σj, F.obj j) :
+theorem eqvGen_quot_rel_of_rel (x y : Σ j, F.obj j) :
FilteredColimit.Rel F x y → EqvGen (Quot.Rel F) x y := fun ⟨k, f, g, h⟩ =>
EqvGen.trans _ ⟨k, F.map f x.2⟩ _ (EqvGen.rel _ _ ⟨f, rfl⟩)
(EqvGen.symm _ _ (EqvGen.rel _ _ ⟨g, h⟩))
@@ -408,7 +408,7 @@ attribute [local elab_without_expected_type] nat_trans.app
noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x = t.ι.app i xi)
(hinj :
∀ i j xi xj,
- t.ι.app i xi = t.ι.app j xj → ∃ (k : _)(f : i ⟶ k)(g : j ⟶ k), F.map f xi = F.map g xj) :
+ t.ι.app i xi = t.ι.app j xj → ∃ (k : _) (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj) :
IsColimit t :=
by
-- Strategy: Prove that the map from "the" colimit of F (defined above) to t.X
@@ -421,8 +421,8 @@ noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x
intro a b h
rcases jointly_surjective F (colimit.is_colimit F) a with ⟨i, xi, rfl⟩
rcases jointly_surjective F (colimit.is_colimit F) b with ⟨j, xj, rfl⟩
- change (colimit.ι F i ≫ colimit.desc F t) xi = (colimit.ι F j ≫ colimit.desc F t) xj at h
- rw [colimit.ι_desc, colimit.ι_desc] at h
+ change (colimit.ι F i ≫ colimit.desc F t) xi = (colimit.ι F j ≫ colimit.desc F t) xj at h
+ rw [colimit.ι_desc, colimit.ι_desc] at h
rcases hinj i j xi xj h with ⟨k, f, g, h'⟩
change colimit.ι F i xi = colimit.ι F j xj
rw [← colimit.w F f, ← colimit.w F g]
@@ -473,7 +473,7 @@ theorem colimit_eq_iff_aux {i j : J} {xi : F.obj i} {xj : F.obj j} :
#align category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_aux
theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj i} {xj : F.obj j} :
- t.ι.app i xi = t.ι.app j xj ↔ ∃ (k : _)(f : i ⟶ k)(g : j ⟶ k), F.map f xi = F.map g xj :=
+ t.ι.app i xi = t.ι.app j xj ↔ ∃ (k : _) (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj :=
by
let t' := colimitCocone F
let e : t' ≅ t := IsColimit.uniqueUpToIso (colimitCoconeIsColimit F) ht
@@ -484,7 +484,7 @@ theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj
theorem colimit_eq_iff {i j : J} {xi : F.obj i} {xj : F.obj j} :
colimit.ι F i xi = colimit.ι F j xj ↔
- ∃ (k : _)(f : i ⟶ k)(g : j ⟶ k), F.map f xi = F.map g xj :=
+ ∃ (k : _) (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj :=
isColimit_eq_iff _ (colimit.isColimit F)
#align category_theory.limits.types.filtered_colimit.colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff
@@ -567,7 +567,7 @@ instance : HasImageMaps (Type u)
⟨st.left (Classical.choose x.2), by
have p := st.w
replace p := congr_fun p (Classical.choose x.2)
- simp only [functor.id_map, types_comp_apply, Subtype.val_eq_coe] at p
+ simp only [functor.id_map, types_comp_apply, Subtype.val_eq_coe] at p
erw [p, Classical.choose_spec x.2]⟩⟩)
rfl
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -78,12 +78,6 @@ instance hasLimitsOfSize : HasLimitsOfSize.{v} (Type max v u)
instance : HasLimits (Type u) :=
Types.hasLimitsOfSize.{u, u}
-/- warning: category_theory.limits.types.is_limit_equiv_sections -> CategoryTheory.Limits.Types.isLimitEquivSections is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {c : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F}, (CategoryTheory.Limits.IsLimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) -> (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F}, (CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) -> (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections CategoryTheory.Limits.Types.isLimitEquivSectionsₓ'. -/
/-- The equivalence between a limiting cone of `F` in `Type u` and the "concrete" definition as the
sections of `F`.
-/
@@ -91,18 +85,12 @@ def isLimitEquivSections {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) :
(IsLimit.conePointUniqueUpToIso t (limitConeIsLimit F)).toEquiv
#align category_theory.limits.types.is_limit_equiv_sections CategoryTheory.Limits.Types.isLimitEquivSections
-/- warning: category_theory.limits.types.is_limit_equiv_sections_apply -> CategoryTheory.Limits.Types.isLimitEquivSections_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_applyₓ'. -/
@[simp]
theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) (j : J)
(x : c.pt) : ((isLimitEquivSections t) x : ∀ j, F.obj j) j = c.π.app j x :=
rfl
#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_apply
-/- warning: category_theory.limits.types.is_limit_equiv_sections_symm_apply -> CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_applyₓ'. -/
@[simp]
theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c)
(x : F.sections) (j : J) : c.π.app j ((isLimitEquivSections t).symm x) = (x : ∀ j, F.obj j) j :=
@@ -111,12 +99,6 @@ theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t
simp
#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply
-/- warning: category_theory.limits.types.limit_equiv_sections -> CategoryTheory.Limits.Types.limitEquivSections is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}), Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}), Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections CategoryTheory.Limits.Types.limitEquivSectionsₓ'. -/
/-- The equivalence between the abstract limit of `F` in `Type u`
and the "concrete" definition as the sections of `F`.
-/
@@ -125,18 +107,12 @@ noncomputable def limitEquivSections (F : J ⥤ Type max v u) :
isLimitEquivSections (limit.isLimit _)
#align category_theory.limits.types.limit_equiv_sections CategoryTheory.Limits.Types.limitEquivSections
-/- warning: category_theory.limits.types.limit_equiv_sections_apply -> CategoryTheory.Limits.Types.limitEquivSections_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_applyₓ'. -/
@[simp]
theorem limitEquivSections_apply (F : J ⥤ Type max v u) (x : limit F) (j : J) :
((limitEquivSections F) x : ∀ j, F.obj j) j = limit.π F j x :=
rfl
#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_apply
-/- warning: category_theory.limits.types.limit_equiv_sections_symm_apply -> CategoryTheory.Limits.Types.limitEquivSections_symm_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.limitEquivSections_symm_applyₓ'. -/
@[simp]
theorem limitEquivSections_symm_apply (F : J ⥤ Type max v u) (x : F.sections) (j : J) :
limit.π F j ((limitEquivSections F).symm x) = (x : ∀ j, F.obj j) j :=
@@ -149,12 +125,6 @@ theorem limitEquivSections_symm_apply' (F : J ⥤ Type v) (x : F.sections) (j :
isLimitEquivSections_symm_apply _ _ _
#align category_theory.limits.types.limit_equiv_sections_symm_apply' CategoryTheory.Limits.Types.limitEquivSections_symm_apply'
-/- warning: category_theory.limits.types.limit.mk -> CategoryTheory.Limits.Types.Limit.mk is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), (forall (j : J) (j' : J) (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f (x j)) (x j')) -> (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.Limit.mk._proof_1.{u2, u1} J _inst_1 F))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : forall (j : J), Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), (forall (j : J) (j' : J) (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j j' f (x j)) (x j')) -> (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.mk CategoryTheory.Limits.Types.Limit.mkₓ'. -/
/-- Construct a term of `limit F : Type u` from a family of terms `x : Π j, F.obj j`
which are "coherent": `∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j'`.
-/
@@ -164,12 +134,6 @@ noncomputable def Limit.mk (F : J ⥤ Type max v u) (x : ∀ j, F.obj j)
(limitEquivSections F).symm ⟨x, h⟩
#align category_theory.limits.types.limit.mk CategoryTheory.Limits.Types.Limit.mk
-/- warning: category_theory.limits.types.limit.π_mk -> CategoryTheory.Limits.Types.Limit.π_mk is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (h : forall (j : J) (j' : J) (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f (x j)) (x j')) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.Limit.mk._proof_1.{u2, u1} J _inst_1 F) j (CategoryTheory.Limits.Types.Limit.mk.{u1, u2} J _inst_1 F x h)) (x j)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : forall (j : J), Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (h : forall (j : J) (j' : J) (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j j' f (x j)) (x j')) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (CategoryTheory.Limits.Types.Limit.mk.{u1, u2} J _inst_1 F x h)) (x j)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.π_mk CategoryTheory.Limits.Types.Limit.π_mkₓ'. -/
@[simp]
theorem Limit.π_mk (F : J ⥤ Type max v u) (x : ∀ j, F.obj j)
(h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') (j) : limit.π F j (Limit.mk F x h) = x j := by
@@ -182,12 +146,6 @@ theorem Limit.π_mk' (F : J ⥤ Type v) (x : ∀ j, F.obj j)
limit.π F j (Limit.mk.{v, v} F x h) = x j := by dsimp [limit.mk]; simp
#align category_theory.limits.types.limit.π_mk' CategoryTheory.Limits.Types.Limit.π_mk'
-/- warning: category_theory.limits.types.limit_ext -> CategoryTheory.Limits.Types.limit_ext is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) (y : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)), (forall (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j y)) -> (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) x y)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)), (forall (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j y)) -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) x y)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_ext CategoryTheory.Limits.Types.limit_extₓ'. -/
-- PROJECT: prove this for concrete categories where the forgetful functor preserves limits
@[ext]
theorem limit_ext (F : J ⥤ Type max v u) (x y : limit F) (w : ∀ j, limit.π F j x = limit.π F j y) :
@@ -197,12 +155,6 @@ theorem limit_ext (F : J ⥤ Type max v u) (x y : limit F) (w : ∀ j, limit.π
simp [w j]
#align category_theory.limits.types.limit_ext CategoryTheory.Limits.Types.limit_ext
-/- warning: category_theory.limits.types.limit_ext' -> CategoryTheory.Limits.Types.limit_ext' is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)) (y : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)), (forall (j : J), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j y)) -> (Eq.{succ u1} (CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)) x y)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)), (forall (j : J), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j y)) -> (Eq.{succ u1} (CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)) x y)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_ext' CategoryTheory.Limits.Types.limit_ext'ₓ'. -/
@[ext]
theorem limit_ext' (F : J ⥤ Type v) (x y : limit F) (w : ∀ j, limit.π F j x = limit.π F j y) :
x = y := by
@@ -211,34 +163,16 @@ theorem limit_ext' (F : J ⥤ Type v) (x y : limit F) (w : ∀ j, limit.π F j x
simp [w j]
#align category_theory.limits.types.limit_ext' CategoryTheory.Limits.Types.limit_ext'
-/- warning: category_theory.limits.types.limit_ext_iff -> CategoryTheory.Limits.Types.limit_ext_iff is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) (y : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)), Iff (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) x y) (forall (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j y))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)), Iff (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) x y) (forall (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j y))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_ext_iff CategoryTheory.Limits.Types.limit_ext_iffₓ'. -/
theorem limit_ext_iff (F : J ⥤ Type max v u) (x y : limit F) :
x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
⟨fun t _ => t ▸ rfl, limit_ext _ _ _⟩
#align category_theory.limits.types.limit_ext_iff CategoryTheory.Limits.Types.limit_ext_iff
-/- warning: category_theory.limits.types.limit_ext_iff' -> CategoryTheory.Limits.Types.limit_ext_iff' is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)) (y : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)), Iff (Eq.{succ u1} (CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)) x y) (forall (j : J), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j y))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)), Iff (Eq.{succ u1} (CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)) x y) (forall (j : J), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j y))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_ext_iff' CategoryTheory.Limits.Types.limit_ext_iff'ₓ'. -/
theorem limit_ext_iff' (F : J ⥤ Type v) (x y : limit F) :
x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
⟨fun t _ => t ▸ rfl, limit_ext _ _ _⟩
#align category_theory.limits.types.limit_ext_iff' CategoryTheory.Limits.Types.limit_ext_iff'
-/- warning: category_theory.limits.types.limit.w_apply -> CategoryTheory.Limits.Types.Limit.w_apply is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x)) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j' x)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j j' f (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x)) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j' x)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.w_apply CategoryTheory.Limits.Types.Limit.w_applyₓ'. -/
-- TODO: are there other limits lemmas that should have `_apply` versions?
-- Can we generate these like with `@[reassoc]`?
-- PROJECT: prove these for any concrete category where the forgetful functor preserves limits?
@@ -248,72 +182,36 @@ theorem Limit.w_apply {F : J ⥤ Type max v u} {j j' : J} {x : limit F} (f : j
congr_fun (limit.w F f) x
#align category_theory.limits.types.limit.w_apply CategoryTheory.Limits.Types.Limit.w_apply
-/- warning: category_theory.limits.types.limit.lift_π_apply -> CategoryTheory.Limits.Types.Limit.lift_π_apply is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (s : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j (CategoryTheory.Limits.limit.lift.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) s x)) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s)) F (CategoryTheory.Limits.Cone.π.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s) j x)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (s : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F s), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (CategoryTheory.Limits.limit.lift.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) s x)) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F s)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F s) j x)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.lift_π_apply CategoryTheory.Limits.Types.Limit.lift_π_applyₓ'. -/
@[simp]
theorem Limit.lift_π_apply (F : J ⥤ Type max v u) (s : Cone F) (j : J) (x : s.pt) :
limit.π F j (limit.lift F s x) = s.π.app j x :=
congr_fun (limit.lift_π s j) x
#align category_theory.limits.types.limit.lift_π_apply CategoryTheory.Limits.Types.Limit.lift_π_apply
-/- warning: category_theory.limits.types.limit.map_π_apply -> CategoryTheory.Limits.Types.Limit.map_π_apply is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {G : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} (α : Quiver.Hom.{succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}))) F G) (j : J) (x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} G j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} G (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) G) j (CategoryTheory.Limits.limMap.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F G (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) G) α x)) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F G α j (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {G : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} (α : Quiver.Hom.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) F G) (j : J) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} G) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} G (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 G) j (CategoryTheory.Limits.limMap.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F G (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 G) α x)) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F G α j (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.map_π_apply CategoryTheory.Limits.Types.Limit.map_π_applyₓ'. -/
@[simp]
theorem Limit.map_π_apply {F G : J ⥤ Type max v u} (α : F ⟶ G) (j : J) (x) :
limit.π G j (limMap α x) = α.app j (limit.π F j x) :=
congr_fun (limMap_π α j) x
#align category_theory.limits.types.limit.map_π_apply CategoryTheory.Limits.Types.Limit.map_π_apply
-/- warning: category_theory.limits.types.limit.w_apply' -> CategoryTheory.Limits.Types.Limit.w_apply' is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {j : J} {j' : J} {x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j') (CategoryTheory.Functor.map.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j j' f (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j x)) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j' x)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {j : J} {j' : J} {x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j') (Prefunctor.map.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j j' f (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j x)) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j' x)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.w_apply' CategoryTheory.Limits.Types.Limit.w_apply'ₓ'. -/
@[simp]
theorem Limit.w_apply' {F : J ⥤ Type v} {j j' : J} {x : limit F} (f : j ⟶ j') :
F.map f (limit.π F j x) = limit.π F j' x :=
congr_fun (limit.w F f) x
#align category_theory.limits.types.limit.w_apply' CategoryTheory.Limits.Types.Limit.w_apply'
-/- warning: category_theory.limits.types.limit.lift_π_apply' -> CategoryTheory.Limits.Types.Limit.lift_π_apply' is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (s : CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j (CategoryTheory.Limits.limit.lift.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) s x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.const.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s)) F (CategoryTheory.Limits.Cone.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) j x)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (s : CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j (CategoryTheory.Limits.limit.lift.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) s x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.const.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s)) F (CategoryTheory.Limits.Cone.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) j x)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.lift_π_apply' CategoryTheory.Limits.Types.Limit.lift_π_apply'ₓ'. -/
@[simp]
theorem Limit.lift_π_apply' (F : J ⥤ Type v) (s : Cone F) (j : J) (x : s.pt) :
limit.π F j (limit.lift F s x) = s.π.app j x :=
congr_fun (limit.lift_π s j) x
#align category_theory.limits.types.limit.lift_π_apply' CategoryTheory.Limits.Types.Limit.lift_π_apply'
-/- warning: category_theory.limits.types.limit.map_π_apply' -> CategoryTheory.Limits.Types.Limit.map_π_apply' is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {G : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} (α : Quiver.Hom.{succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) F G) (j : J) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) G) j (CategoryTheory.Limits.limMap.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) G) α x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G α j (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j x))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {G : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} (α : Quiver.Hom.{succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) F G) (j : J) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 G) j (CategoryTheory.Limits.limMap.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 G) α x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G α j (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j x))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.map_π_apply' CategoryTheory.Limits.Types.Limit.map_π_apply'ₓ'. -/
@[simp]
theorem Limit.map_π_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x) :
limit.π G j (limMap α x) = α.app j (limit.π F j x) :=
congr_fun (limMap_π α j) x
#align category_theory.limits.types.limit.map_π_apply' CategoryTheory.Limits.Types.Limit.map_π_apply'
-/- warning: category_theory.limits.types.quot.rel -> CategoryTheory.Limits.Types.Quot.Rel is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}), (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> Prop
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}), (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) -> (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) -> Prop
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.quot.rel CategoryTheory.Limits.Types.Quot.Relₓ'. -/
/--
The relation defining the quotient type which implements the colimit of a functor `F : J ⥤ Type u`.
See `category_theory.limits.types.quot`.
@@ -384,24 +282,12 @@ noncomputable def colimitEquivQuot (F : J ⥤ Type max v u) : (colimit F : Type
#align category_theory.limits.types.colimit_equiv_quot CategoryTheory.Limits.Types.colimitEquivQuot
-/
-/- warning: category_theory.limits.types.colimit_equiv_quot_symm_apply -> CategoryTheory.Limits.Types.colimitEquivQuot_symm_apply is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) -> (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u1) (succ (max u1 u2))} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j x))) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F) j x)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (fun (_x : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_equiv_quot_symm_apply CategoryTheory.Limits.Types.colimitEquivQuot_symm_applyₓ'. -/
@[simp]
theorem colimitEquivQuot_symm_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
(colimitEquivQuot F).symm (Quot.mk _ ⟨j, x⟩) = colimit.ι F j x :=
rfl
#align category_theory.limits.types.colimit_equiv_quot_symm_apply CategoryTheory.Limits.Types.colimitEquivQuot_symm_apply
-/- warning: category_theory.limits.types.colimit_equiv_quot_apply -> CategoryTheory.Limits.Types.colimitEquivQuot_apply is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) => (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F) j x)) (Quot.mk.{max (succ u1) (succ (max u1 u2))} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j x))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j x))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_equiv_quot_apply CategoryTheory.Limits.Types.colimitEquivQuot_applyₓ'. -/
@[simp]
theorem colimitEquivQuot_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
(colimitEquivQuot F) (colimit.ι F j x) = Quot.mk _ ⟨j, x⟩ :=
@@ -410,81 +296,42 @@ theorem colimitEquivQuot_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
simp
#align category_theory.limits.types.colimit_equiv_quot_apply CategoryTheory.Limits.Types.colimitEquivQuot_apply
-/- warning: category_theory.limits.types.colimit.w_apply -> CategoryTheory.Limits.Types.Colimit.w_apply is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j' (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j j' f x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.w_apply CategoryTheory.Limits.Types.Colimit.w_applyₓ'. -/
@[simp]
theorem Colimit.w_apply {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} (f : j ⟶ j') :
colimit.ι F j' (F.map f x) = colimit.ι F j x :=
congr_fun (colimit.w F f) x
#align category_theory.limits.types.colimit.w_apply CategoryTheory.Limits.Types.Colimit.w_apply
-/- warning: category_theory.limits.types.colimit.ι_desc_apply -> CategoryTheory.Limits.Types.Colimit.ι_desc_apply is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (s : CategoryTheory.Limits.Cocone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s) (CategoryTheory.Limits.colimit.desc.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) s (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x)) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s) j x)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (s : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F s) (CategoryTheory.Limits.colimit.desc.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) s (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F s)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F s) j x)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.ι_desc_apply CategoryTheory.Limits.Types.Colimit.ι_desc_applyₓ'. -/
@[simp]
theorem Colimit.ι_desc_apply (F : J ⥤ Type max v u) (s : Cocone F) (j : J) (x : F.obj j) :
colimit.desc F s (colimit.ι F j x) = s.ι.app j x :=
congr_fun (colimit.ι_desc s j) x
#align category_theory.limits.types.colimit.ι_desc_apply CategoryTheory.Limits.Types.Colimit.ι_desc_apply
-/- warning: category_theory.limits.types.colimit.ι_map_apply -> CategoryTheory.Limits.Types.Colimit.ι_map_apply is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.ι_map_apply CategoryTheory.Limits.Types.Colimit.ι_map_applyₓ'. -/
@[simp]
theorem Colimit.ι_map_apply {F G : J ⥤ Type max v u} (α : F ⟶ G) (j : J) (x) :
colim.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
congr_fun (colimit.ι_map α j) x
#align category_theory.limits.types.colimit.ι_map_apply CategoryTheory.Limits.Types.Colimit.ι_map_apply
-/- warning: category_theory.limits.types.colimit.w_apply' -> CategoryTheory.Limits.Types.Colimit.w_apply' is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {j : J} {j' : J} {x : CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ u1} (CategoryTheory.Limits.colimit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1}) F) j' (CategoryTheory.Functor.map.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j j' f x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1}) F) j x)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ u1} (CategoryTheory.Limits.colimit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasColimit'.{u1} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasColimit'.{u1} J _inst_1 F) j' (Prefunctor.map.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j j' f x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasColimit'.{u1} J _inst_1 F) j x)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.w_apply' CategoryTheory.Limits.Types.Colimit.w_apply'ₓ'. -/
@[simp]
theorem Colimit.w_apply' {F : J ⥤ Type v} {j j' : J} {x : F.obj j} (f : j ⟶ j') :
colimit.ι F j' (F.map f x) = colimit.ι F j x :=
congr_fun (colimit.w F f) x
#align category_theory.limits.types.colimit.w_apply' CategoryTheory.Limits.Types.Colimit.w_apply'
-/- warning: category_theory.limits.types.colimit.ι_desc_apply' -> CategoryTheory.Limits.Types.Colimit.ι_desc_apply' is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (s : CategoryTheory.Limits.Cocone.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (j : J) (x : CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j), Eq.{succ u1} (CategoryTheory.Limits.Cocone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) (CategoryTheory.Limits.colimit.desc.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1}) F) s (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1}) F) j x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.const.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Limits.Cocone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s)) (CategoryTheory.Limits.Cocone.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) j x)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (s : CategoryTheory.Limits.Cocone.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (j : J) (x : Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j), Eq.{succ u1} (CategoryTheory.Limits.Cocone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) (CategoryTheory.Limits.colimit.desc.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasColimit'.{u1} J _inst_1 F) s (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasColimit'.{u1} J _inst_1 F) j x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.const.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Limits.Cocone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s)) (CategoryTheory.Limits.Cocone.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) j x)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.ι_desc_apply' CategoryTheory.Limits.Types.Colimit.ι_desc_apply'ₓ'. -/
@[simp]
theorem Colimit.ι_desc_apply' (F : J ⥤ Type v) (s : Cocone F) (j : J) (x : F.obj j) :
colimit.desc F s (colimit.ι F j x) = s.ι.app j x :=
congr_fun (colimit.ι_desc s j) x
#align category_theory.limits.types.colimit.ι_desc_apply' CategoryTheory.Limits.Types.Colimit.ι_desc_apply'
-/- warning: category_theory.limits.types.colimit.ι_map_apply' -> CategoryTheory.Limits.Types.Colimit.ι_map_apply' is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {G : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} (α : Quiver.Hom.{succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) F G) (j : J) (x : CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.colim.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1})) G) (CategoryTheory.Functor.map.{u1, u1, succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.colim.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1})) F G α (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1}) F) j x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1}) G) j (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G α j x))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {G : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} (α : Quiver.Hom.{succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) F G) (j : J) (x : Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.colim.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.instHasColimitsTypeTypes.{u1}))) G) (Prefunctor.map.{succ u1, succ u1, succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.colim.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.instHasColimitsTypeTypes.{u1}))) F G α (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasColimit'.{u1} J _inst_1 F) j x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G (CategoryTheory.Limits.Types.hasColimit'.{u1} J _inst_1 G) j (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G α j x))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.ι_map_apply' CategoryTheory.Limits.Types.Colimit.ι_map_apply'ₓ'. -/
@[simp]
theorem Colimit.ι_map_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x) :
colim.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
congr_fun (colimit.ι_map α j) x
#align category_theory.limits.types.colimit.ι_map_apply' CategoryTheory.Limits.Types.Colimit.ι_map_apply'
-/- warning: category_theory.limits.types.colimit_sound -> CategoryTheory.Limits.Types.colimit_sound is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j} {x' : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j'} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f x) x') -> (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j' x'))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j} {x' : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j'} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j j' f x) x') -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' x'))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_sound CategoryTheory.Limits.Types.colimit_soundₓ'. -/
theorem colimit_sound {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'} (f : j ⟶ j')
(w : F.map f x = x') : colimit.ι F j x = colimit.ι F j' x' :=
by
@@ -492,12 +339,6 @@ theorem colimit_sound {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.
simp
#align category_theory.limits.types.colimit_sound CategoryTheory.Limits.Types.colimit_sound
-/- warning: category_theory.limits.types.colimit_sound' -> CategoryTheory.Limits.Types.colimit_sound' is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j} {x' : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j'} {j'' : J} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'') (f' : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j' j''), (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j'') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j'' f x) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j' j'' f' x')) -> (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j' x'))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j} {x' : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j'} {j'' : J} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'') (f' : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j' j''), (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j'') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j j'' f x) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j' j'' f' x')) -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' x'))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_sound' CategoryTheory.Limits.Types.colimit_sound'ₓ'. -/
theorem colimit_sound' {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'} {j'' : J}
(f : j ⟶ j'') (f' : j' ⟶ j'') (w : F.map f x = F.map f' x') :
colimit.ι F j x = colimit.ι F j' x' :=
@@ -506,12 +347,6 @@ theorem colimit_sound' {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F
rw [types_comp_apply, types_comp_apply, w]
#align category_theory.limits.types.colimit_sound' CategoryTheory.Limits.Types.colimit_sound'
-/- warning: category_theory.limits.types.colimit_eq -> CategoryTheory.Limits.Types.colimit_eq is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j} {x' : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j'}, (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j' x')) -> (EqvGen.{max u1 u2} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j x) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j' x'))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j} {x' : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j'}, (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' x')) -> (EqvGen.{max u2 u1} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j x) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j' x'))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_eq CategoryTheory.Limits.Types.colimit_eqₓ'. -/
theorem colimit_eq {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'}
(w : colimit.ι F j x = colimit.ι F j' x') : EqvGen (Quot.Rel F) ⟨j, x⟩ ⟨j', x'⟩ :=
by
@@ -519,12 +354,6 @@ theorem colimit_eq {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj
simpa using congr_arg (colimit_equiv_quot F) w
#align category_theory.limits.types.colimit_eq CategoryTheory.Limits.Types.colimit_eq
-/- warning: category_theory.limits.types.jointly_surjective -> CategoryTheory.Limits.Types.jointly_surjective is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) {t : CategoryTheory.Limits.Cocone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F}, (CategoryTheory.Limits.IsColimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) -> (forall (x : CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t), Exists.{succ u1} J (fun (j : J) => Exists.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (y : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) j) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) j y) x)))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) {t : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F}, (CategoryTheory.Limits.IsColimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) -> (forall (x : CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t), Exists.{succ u1} J (fun (j : J) => Exists.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (fun (y : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t))) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) j y) x)))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.jointly_surjective CategoryTheory.Limits.Types.jointly_surjectiveₓ'. -/
theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimit t) (x : t.pt) :
∃ j y, t.ι.app j y = x :=
by
@@ -540,12 +369,6 @@ theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimi
exact ⟨j, y, rfl⟩
#align category_theory.limits.types.jointly_surjective CategoryTheory.Limits.Types.jointly_surjective
-/- warning: category_theory.limits.types.jointly_surjective' -> CategoryTheory.Limits.Types.jointly_surjective' is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} (x : CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)), Exists.{succ u1} J (fun (j : J) => Exists.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (y : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j y) x))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} (x : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)), Exists.{succ u1} J (fun (j : J) => Exists.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (fun (y : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) => Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j y) x))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.jointly_surjective' CategoryTheory.Limits.Types.jointly_surjective'ₓ'. -/
/-- A variant of `jointly_surjective` for `x : colimit F`. -/
theorem jointly_surjective' {F : J ⥤ Type max v u} (x : colimit F) : ∃ j y, colimit.ι F j y = x :=
jointly_surjective F (colimit.isColimit _) x
@@ -558,12 +381,6 @@ namespace FilteredColimit
the colimit. -/
variable (F : J ⥤ Type max v u)
-/- warning: category_theory.limits.types.filtered_colimit.rel -> CategoryTheory.Limits.Types.FilteredColimit.Rel is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}), (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> Prop
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}), (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) -> (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) -> Prop
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.rel CategoryTheory.Limits.Types.FilteredColimit.Relₓ'. -/
/-- An alternative relation on `Σ j, F.obj j`,
which generates the same equivalence relation as we use to define the colimit in `Type` above,
but that is more convenient when working with filtered colimits.
@@ -575,22 +392,10 @@ protected def Rel (x y : Σj, F.obj j) : Prop :=
∃ (k : _)(f : x.1 ⟶ k)(g : y.1 ⟶ k), F.map f x.2 = F.map g y.2
#align category_theory.limits.types.filtered_colimit.rel CategoryTheory.Limits.Types.FilteredColimit.Rel
-/- warning: category_theory.limits.types.filtered_colimit.rel_of_quot_rel -> CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (y : Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)), (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F x y) -> (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F x y)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (y : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)), (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F x y) -> (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F x y)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.rel_of_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_relₓ'. -/
theorem rel_of_quot_rel (x y : Σj, F.obj j) : Quot.Rel F x y → FilteredColimit.Rel F x y :=
fun ⟨f, h⟩ => ⟨y.1, f, 𝟙 y.1, by rw [← h, functor_to_types.map_id_apply]⟩
#align category_theory.limits.types.filtered_colimit.rel_of_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel
-/- warning: category_theory.limits.types.filtered_colimit.eqv_gen_quot_rel_of_rel -> CategoryTheory.Limits.Types.FilteredColimit.eqvGen_quot_rel_of_rel is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (y : Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)), (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F x y) -> (EqvGen.{max u1 u2} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) x y)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (y : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)), (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F x y) -> (EqvGen.{max u2 u1} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) x y)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.eqv_gen_quot_rel_of_rel CategoryTheory.Limits.Types.FilteredColimit.eqvGen_quot_rel_of_relₓ'. -/
theorem eqvGen_quot_rel_of_rel (x y : Σj, F.obj j) :
FilteredColimit.Rel F x y → EqvGen (Quot.Rel F) x y := fun ⟨k, f, g, h⟩ =>
EqvGen.trans _ ⟨k, F.map f x.2⟩ _ (EqvGen.rel _ _ ⟨f, rfl⟩)
@@ -599,9 +404,6 @@ theorem eqvGen_quot_rel_of_rel (x y : Σj, F.obj j) :
attribute [local elab_without_expected_type] nat_trans.app
-/- warning: category_theory.limits.types.filtered_colimit.is_colimit_of -> CategoryTheory.Limits.Types.FilteredColimit.isColimitOf is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.is_colimit_of CategoryTheory.Limits.Types.FilteredColimit.isColimitOfₓ'. -/
/-- Recognizing filtered colimits of types. -/
noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x = t.ι.app i xi)
(hinj :
@@ -636,12 +438,6 @@ noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x
variable [IsFilteredOrEmpty J]
-/- warning: category_theory.limits.types.filtered_colimit.rel_equiv -> CategoryTheory.Limits.Types.FilteredColimit.rel_equiv is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1], Equivalence.{max (succ u1) (succ (max u1 u2))} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1], Equivalence.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F)
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.rel_equiv CategoryTheory.Limits.Types.FilteredColimit.rel_equivₓ'. -/
protected theorem rel_equiv : Equivalence (FilteredColimit.Rel F) :=
⟨fun x => ⟨x.1, 𝟙 x.1, 𝟙 x.1, rfl⟩, fun x y ⟨k, f, g, h⟩ => ⟨k, g, f, h.symm⟩,
fun x y z ⟨k, f, g, h⟩ ⟨k', f', g', h'⟩ =>
@@ -659,12 +455,6 @@ protected theorem rel_equiv : Equivalence (FilteredColimit.Rel F) :=
⟩⟩
#align category_theory.limits.types.filtered_colimit.rel_equiv CategoryTheory.Limits.Types.FilteredColimit.rel_equiv
-/- warning: category_theory.limits.types.filtered_colimit.rel_eq_eqv_gen_quot_rel -> CategoryTheory.Limits.Types.FilteredColimit.rel_eq_eqvGen_quot_rel is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1], Eq.{max (max (succ u1) (succ (max u1 u2))) 1} ((Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> Prop) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F) (EqvGen.{max u1 u2} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1], Eq.{max (succ u2) (succ u1)} ((Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) -> (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) -> Prop) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F) (EqvGen.{max u2 u1} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.rel_eq_eqv_gen_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_eq_eqvGen_quot_relₓ'. -/
protected theorem rel_eq_eqvGen_quot_rel : FilteredColimit.Rel F = EqvGen (Quot.Rel F) :=
by
ext (⟨j, x⟩⟨j', y⟩)
@@ -674,9 +464,6 @@ protected theorem rel_eq_eqvGen_quot_rel : FilteredColimit.Rel F = EqvGen (Quot.
exact EqvGen.mono (rel_of_quot_rel F)
#align category_theory.limits.types.filtered_colimit.rel_eq_eqv_gen_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_eq_eqvGen_quot_rel
-/- warning: category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux -> CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_aux is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_auxₓ'. -/
theorem colimit_eq_iff_aux {i j : J} {xi : F.obj i} {xj : F.obj j} :
(colimitCocone F).ι.app i xi = (colimitCocone F).ι.app j xj ↔
FilteredColimit.Rel F ⟨i, xi⟩ ⟨j, xj⟩ :=
@@ -685,9 +472,6 @@ theorem colimit_eq_iff_aux {i j : J} {xi : F.obj i} {xj : F.obj j} :
rw [Quot.eq, filtered_colimit.rel_eq_eqv_gen_quot_rel]
#align category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_aux
-/- warning: category_theory.limits.types.filtered_colimit.is_colimit_eq_iff -> CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iff is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.is_colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iffₓ'. -/
theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj i} {xj : F.obj j} :
t.ι.app i xi = t.ι.app j xj ↔ ∃ (k : _)(f : i ⟶ k)(g : j ⟶ k), F.map f xi = F.map g xj :=
by
@@ -698,12 +482,6 @@ theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj
convert e'.to_equiv.apply_eq_iff_eq <;> rw [← e.hom.w] <;> rfl
#align category_theory.limits.types.filtered_colimit.is_colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iff
-/- warning: category_theory.limits.types.filtered_colimit.colimit_eq_iff -> CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {i : J} {j : J} {xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i} {xj : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j}, Iff (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) i xi) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j xj)) (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F k) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i k f xi) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j k g xj)))))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {i : J} {j : J} {xi : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i} {xj : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j}, Iff (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) i xi) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j xj)) (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) k) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i k f xi) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j k g xj)))))
-Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iffₓ'. -/
theorem colimit_eq_iff {i j : J} {xi : F.obj i} {xj : F.obj j} :
colimit.ι F i xi = colimit.ι F j xj ↔
∃ (k : _)(f : i ⟶ k)(g : j ⟶ k), F.map f xi = F.map g xj :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -56,10 +56,7 @@ attribute [local elab_without_expected_type] congr_fun
def limitConeIsLimit (F : J ⥤ Type max v u) : IsLimit (limitCone F)
where
lift s v := ⟨fun j => s.π.app j v, fun j j' f => congr_fun (Cone.w s f) _⟩
- uniq := by
- intros
- ext (x j)
- exact congr_fun (w j) x
+ uniq := by intros ; ext (x j); exact congr_fun (w j) x
#align category_theory.limits.types.limit_cone_is_limit CategoryTheory.Limits.Types.limitConeIsLimit
-/
@@ -175,19 +172,14 @@ but is expected to have type
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.π_mk CategoryTheory.Limits.Types.Limit.π_mkₓ'. -/
@[simp]
theorem Limit.π_mk (F : J ⥤ Type max v u) (x : ∀ j, F.obj j)
- (h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') (j) : limit.π F j (Limit.mk F x h) = x j :=
- by
- dsimp [limit.mk]
- simp
+ (h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') (j) : limit.π F j (Limit.mk F x h) = x j := by
+ dsimp [limit.mk]; simp
#align category_theory.limits.types.limit.π_mk CategoryTheory.Limits.Types.Limit.π_mk
@[simp]
theorem Limit.π_mk' (F : J ⥤ Type v) (x : ∀ j, F.obj j)
(h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') (j) :
- limit.π F j (Limit.mk.{v, v} F x h) = x j :=
- by
- dsimp [limit.mk]
- simp
+ limit.π F j (Limit.mk.{v, v} F x h) = x j := by dsimp [limit.mk]; simp
#align category_theory.limits.types.limit.π_mk' CategoryTheory.Limits.Types.Limit.π_mk'
/- warning: category_theory.limits.types.limit_ext -> CategoryTheory.Limits.Types.limit_ext is a dubious translation:
@@ -543,8 +535,7 @@ theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimi
dsimp at H
rwa [eq_true_iff] at H
refine' h.hom_ext _
- intro j
- ext y
+ intro j; ext y
erw [iff_true_iff]
exact ⟨j, y, rfl⟩
#align category_theory.limits.types.jointly_surjective CategoryTheory.Limits.Types.jointly_surjective
@@ -640,8 +631,7 @@ noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x
rcases hsurj x with ⟨i, xi, rfl⟩
use colimit.ι F i xi
simp
- · intro j
- apply colimit.ι_desc
+ · intro j; apply colimit.ι_desc
#align category_theory.limits.types.filtered_colimit.is_colimit_of CategoryTheory.Limits.Types.FilteredColimit.isColimitOf
variable [IsFilteredOrEmpty J]
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -95,10 +95,7 @@ def isLimitEquivSections {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) :
#align category_theory.limits.types.is_limit_equiv_sections CategoryTheory.Limits.Types.isLimitEquivSections
/- warning: category_theory.limits.types.is_limit_equiv_sections_apply -> CategoryTheory.Limits.Types.isLimitEquivSections_apply is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {c : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) -> (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t) x) j) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) j x)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (fun (_x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t) x) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) j x)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_applyₓ'. -/
@[simp]
theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) (j : J)
@@ -107,10 +104,7 @@ theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : Is
#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_apply
/- warning: category_theory.limits.types.is_limit_equiv_sections_symm_apply -> CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {c : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) j (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) => (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t)) x)) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) x j)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_applyₓ'. -/
@[simp]
theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c)
@@ -135,10 +129,7 @@ noncomputable def limitEquivSections (F : J ⥤ Type max v u) :
#align category_theory.limits.types.limit_equiv_sections CategoryTheory.Limits.Types.limitEquivSections
/- warning: category_theory.limits.types.limit_equiv_sections_apply -> CategoryTheory.Limits.Types.limitEquivSections_apply is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) -> (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F) x) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F) x) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_applyₓ'. -/
@[simp]
theorem limitEquivSections_apply (F : J ⥤ Type max v u) (x : limit F) (j : J) :
@@ -147,10 +138,7 @@ theorem limitEquivSections_apply (F : J ⥤ Type max v u) (x : limit F) (j : J)
#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_apply
/- warning: category_theory.limits.types.limit_equiv_sections_symm_apply -> CategoryTheory.Limits.Types.limitEquivSections_symm_apply is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F) j (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) => (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F)) x)) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) x j)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.limitEquivSections_symm_applyₓ'. -/
@[simp]
theorem limitEquivSections_symm_apply (F : J ⥤ Type max v u) (x : F.sections) (j : J) :
@@ -455,10 +443,7 @@ theorem Colimit.ι_desc_apply (F : J ⥤ Type max v u) (s : Cocone F) (j : J) (x
#align category_theory.limits.types.colimit.ι_desc_apply CategoryTheory.Limits.Types.Colimit.ι_desc_apply
/- warning: category_theory.limits.types.colimit.ι_map_apply -> CategoryTheory.Limits.Types.Colimit.ι_map_apply is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {G : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} (α : Quiver.Hom.{succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}))) F G) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2)), succ (max u1 u2)} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Limits.colim.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2})) G) (CategoryTheory.Functor.map.{max u1 u2, max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2)), succ (max u1 u2)} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Limits.colim.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2})) F G α (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} G (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) G) j (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F G α j x))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {G : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} (α : Quiver.Hom.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) F G) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{max (succ u1) (succ (max u2 u1)), succ (max u2 u1), max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.colim.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}))) G) (Prefunctor.map.{max (succ u1) (succ (max u2 u1)), succ (max u2 u1), max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.colim.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}))) F G α (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} G (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 G) j (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F G α j x))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.ι_map_apply CategoryTheory.Limits.Types.Colimit.ι_map_applyₓ'. -/
@[simp]
theorem Colimit.ι_map_apply {F G : J ⥤ Type max v u} (α : F ⟶ G) (j : J) (x) :
@@ -624,10 +609,7 @@ theorem eqvGen_quot_rel_of_rel (x y : Σj, F.obj j) :
attribute [local elab_without_expected_type] nat_trans.app
/- warning: category_theory.limits.types.filtered_colimit.is_colimit_of -> CategoryTheory.Limits.Types.FilteredColimit.isColimitOf is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (t : CategoryTheory.Limits.Cocone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F), (forall (x : CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t), Exists.{succ u1} J (fun (i : J) => Exists.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i) (fun (xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i) => Eq.{succ (max u1 u2)} (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) x (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) i xi)))) -> (forall (i : J) (j : J) (xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i) (xj : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) i) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) i xi) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) j xj)) -> (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F k) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i k f xi) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j k g xj)))))) -> (CategoryTheory.Limits.IsColimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (t : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F), (forall (x : CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t), Exists.{succ u1} J (fun (i : J) => Exists.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i) (fun (xi : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i) => Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) x (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) i xi)))) -> (forall (i : J) (j : J) (xi : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i) (xj : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t))) i) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) i xi) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) j xj)) -> (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) k) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i k f xi) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j k g xj)))))) -> (CategoryTheory.Limits.IsColimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.is_colimit_of CategoryTheory.Limits.Types.FilteredColimit.isColimitOfₓ'. -/
/-- Recognizing filtered colimits of types. -/
noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x = t.ι.app i xi)
@@ -703,10 +685,7 @@ protected theorem rel_eq_eqvGen_quot_rel : FilteredColimit.Rel F = EqvGen (Quot.
#align category_theory.limits.types.filtered_colimit.rel_eq_eqv_gen_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_eq_eqvGen_quot_rel
/- warning: category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux -> CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_aux is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {i : J} {j : J} {xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i} {xj : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j}, Iff (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) i) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)) i xi) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)) j xj)) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) i xi) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j xj))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {i : J} {j : J} {xi : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i} {xj : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j}, Iff (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)))) i) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)) i xi) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)) j xj)) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) i xi) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j xj))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_auxₓ'. -/
theorem colimit_eq_iff_aux {i j : J} {xi : F.obj i} {xj : F.obj j} :
(colimitCocone F).ι.app i xi = (colimitCocone F).ι.app j xj ↔
@@ -717,10 +696,7 @@ theorem colimit_eq_iff_aux {i j : J} {xi : F.obj i} {xj : F.obj j} :
#align category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_aux
/- warning: category_theory.limits.types.filtered_colimit.is_colimit_eq_iff -> CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iff is a dubious translation:
-lean 3 declaration is
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {t : CategoryTheory.Limits.Cocone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F}, (CategoryTheory.Limits.IsColimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) -> (forall {i : J} {j : J} {xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i} {xj : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j}, Iff (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) i) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) i xi) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) j xj)) (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F k) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i k f xi) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j k g xj))))))
-but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {t : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F}, (CategoryTheory.Limits.IsColimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) -> (forall {i : J} {j : J} {xi : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i} {xj : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j}, Iff (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t))) i) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) i xi) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) j xj)) (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) k) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i k f xi) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j k g xj))))))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.is_colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iffₓ'. -/
theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj i} {xj : F.obj j} :
t.ι.app i xi = t.ι.app j xj ↔ ∃ (k : _)(f : i ⟶ k)(g : j ⟶ k), F.map f xi = F.map g xj :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/95a87616d63b3cb49d3fe678d416fbe9c4217bf4
@@ -98,7 +98,7 @@ def isLimitEquivSections {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) :
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {c : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) -> (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t) x) j) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) j x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (fun (_x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t) x) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) j x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (fun (_x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t) x) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) j x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_applyₓ'. -/
@[simp]
theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) (j : J)
@@ -110,7 +110,7 @@ theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : Is
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {c : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) j (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) => (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t)) x)) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) x j)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_applyₓ'. -/
@[simp]
theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c)
@@ -138,7 +138,7 @@ noncomputable def limitEquivSections (F : J ⥤ Type max v u) :
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) -> (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F) x) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F) x) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F) x) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_applyₓ'. -/
@[simp]
theorem limitEquivSections_apply (F : J ⥤ Type max v u) (x : limit F) (j : J) :
@@ -150,7 +150,7 @@ theorem limitEquivSections_apply (F : J ⥤ Type max v u) (x : limit F) (j : J)
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F) j (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) => (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F)) x)) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) x j)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.limitEquivSections_symm_applyₓ'. -/
@[simp]
theorem limitEquivSections_symm_apply (F : J ⥤ Type max v u) (x : F.sections) (j : J) :
@@ -408,7 +408,7 @@ noncomputable def colimitEquivQuot (F : J ⥤ Type max v u) : (colimit F : Type
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) -> (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u1) (succ (max u1 u2))} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j x))) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F) j x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (fun (_x : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (fun (_x : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_equiv_quot_symm_apply CategoryTheory.Limits.Types.colimitEquivQuot_symm_applyₓ'. -/
@[simp]
theorem colimitEquivQuot_symm_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
@@ -420,7 +420,7 @@ theorem colimitEquivQuot_symm_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) => (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F) j x)) (Quot.mk.{max (succ u1) (succ (max u1 u2))} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j x))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j x))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.812 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j x))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_equiv_quot_apply CategoryTheory.Limits.Types.colimitEquivQuot_applyₓ'. -/
@[simp]
theorem colimitEquivQuot_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/9b2b58d6b14b895b2f375108e765cb47de71aebd
@@ -85,7 +85,7 @@ instance : HasLimits (Type u) :=
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {c : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F}, (CategoryTheory.Limits.IsLimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) -> (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F}, (CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) -> (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F}, (CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) -> (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections CategoryTheory.Limits.Types.isLimitEquivSectionsₓ'. -/
/-- The equivalence between a limiting cone of `F` in `Type u` and the "concrete" definition as the
sections of `F`.
@@ -98,7 +98,7 @@ def isLimitEquivSections {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) :
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {c : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) -> (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t) x) j) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) j x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (fun (_x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t) x) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) j x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (fun (_x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t) x) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) j x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_applyₓ'. -/
@[simp]
theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) (j : J)
@@ -110,7 +110,7 @@ theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : Is
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {c : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) j (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) => (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t)) x)) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) x j)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_applyₓ'. -/
@[simp]
theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c)
@@ -124,7 +124,7 @@ theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}), Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}), Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}), Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections CategoryTheory.Limits.Types.limitEquivSectionsₓ'. -/
/-- The equivalence between the abstract limit of `F` in `Type u`
and the "concrete" definition as the sections of `F`.
@@ -138,7 +138,7 @@ noncomputable def limitEquivSections (F : J ⥤ Type max v u) :
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) -> (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F) x) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F) x) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F) x) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_applyₓ'. -/
@[simp]
theorem limitEquivSections_apply (F : J ⥤ Type max v u) (x : limit F) (j : J) :
@@ -150,7 +150,7 @@ theorem limitEquivSections_apply (F : J ⥤ Type max v u) (x : limit F) (j : J)
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F) j (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) => (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F)) x)) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) x j)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.limitEquivSections_symm_applyₓ'. -/
@[simp]
theorem limitEquivSections_symm_apply (F : J ⥤ Type max v u) (x : F.sections) (j : J) :
@@ -168,7 +168,7 @@ theorem limitEquivSections_symm_apply' (F : J ⥤ Type v) (x : F.sections) (j :
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), (forall (j : J) (j' : J) (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f (x j)) (x j')) -> (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.Limit.mk._proof_1.{u2, u1} J _inst_1 F))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : forall (j : J), Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), (forall (j : J) (j' : J) (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j j' f (x j)) (x j')) -> (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : forall (j : J), Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), (forall (j : J) (j' : J) (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j j' f (x j)) (x j')) -> (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.mk CategoryTheory.Limits.Types.Limit.mkₓ'. -/
/-- Construct a term of `limit F : Type u` from a family of terms `x : Π j, F.obj j`
which are "coherent": `∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j'`.
@@ -183,7 +183,7 @@ noncomputable def Limit.mk (F : J ⥤ Type max v u) (x : ∀ j, F.obj j)
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (h : forall (j : J) (j' : J) (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f (x j)) (x j')) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.Limit.mk._proof_1.{u2, u1} J _inst_1 F) j (CategoryTheory.Limits.Types.Limit.mk.{u1, u2} J _inst_1 F x h)) (x j)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : forall (j : J), Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (h : forall (j : J) (j' : J) (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j j' f (x j)) (x j')) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (CategoryTheory.Limits.Types.Limit.mk.{u1, u2} J _inst_1 F x h)) (x j)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : forall (j : J), Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (h : forall (j : J) (j' : J) (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j j' f (x j)) (x j')) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (CategoryTheory.Limits.Types.Limit.mk.{u1, u2} J _inst_1 F x h)) (x j)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.π_mk CategoryTheory.Limits.Types.Limit.π_mkₓ'. -/
@[simp]
theorem Limit.π_mk (F : J ⥤ Type max v u) (x : ∀ j, F.obj j)
@@ -206,7 +206,7 @@ theorem Limit.π_mk' (F : J ⥤ Type v) (x : ∀ j, F.obj j)
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) (y : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)), (forall (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j y)) -> (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) x y)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)), (forall (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j y)) -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) x y)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)), (forall (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j y)) -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) x y)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_ext CategoryTheory.Limits.Types.limit_extₓ'. -/
-- PROJECT: prove this for concrete categories where the forgetful functor preserves limits
@[ext]
@@ -221,7 +221,7 @@ theorem limit_ext (F : J ⥤ Type max v u) (x y : limit F) (w : ∀ j, limit.π
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)) (y : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)), (forall (j : J), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j y)) -> (Eq.{succ u1} (CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)) x y)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)), (forall (j : J), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j y)) -> (Eq.{succ u1} (CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)) x y)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)), (forall (j : J), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j y)) -> (Eq.{succ u1} (CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)) x y)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_ext' CategoryTheory.Limits.Types.limit_ext'ₓ'. -/
@[ext]
theorem limit_ext' (F : J ⥤ Type v) (x y : limit F) (w : ∀ j, limit.π F j x = limit.π F j y) :
@@ -235,7 +235,7 @@ theorem limit_ext' (F : J ⥤ Type v) (x y : limit F) (w : ∀ j, limit.π F j x
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) (y : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)), Iff (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) x y) (forall (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j y))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)), Iff (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) x y) (forall (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j y))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)), Iff (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) x y) (forall (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j y))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_ext_iff CategoryTheory.Limits.Types.limit_ext_iffₓ'. -/
theorem limit_ext_iff (F : J ⥤ Type max v u) (x y : limit F) :
x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
@@ -246,7 +246,7 @@ theorem limit_ext_iff (F : J ⥤ Type max v u) (x y : limit F) :
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)) (y : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)), Iff (Eq.{succ u1} (CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)) x y) (forall (j : J), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j y))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)), Iff (Eq.{succ u1} (CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)) x y) (forall (j : J), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j y))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)), Iff (Eq.{succ u1} (CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)) x y) (forall (j : J), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j y))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_ext_iff' CategoryTheory.Limits.Types.limit_ext_iff'ₓ'. -/
theorem limit_ext_iff' (F : J ⥤ Type v) (x y : limit F) :
x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
@@ -257,7 +257,7 @@ theorem limit_ext_iff' (F : J ⥤ Type v) (x y : limit F) :
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x)) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j' x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j j' f (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x)) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j' x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j j' f (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x)) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j' x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.w_apply CategoryTheory.Limits.Types.Limit.w_applyₓ'. -/
-- TODO: are there other limits lemmas that should have `_apply` versions?
-- Can we generate these like with `@[reassoc]`?
@@ -272,7 +272,7 @@ theorem Limit.w_apply {F : J ⥤ Type max v u} {j j' : J} {x : limit F} (f : j
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (s : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j (CategoryTheory.Limits.limit.lift.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) s x)) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s)) F (CategoryTheory.Limits.Cone.π.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s) j x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (s : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F s), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (CategoryTheory.Limits.limit.lift.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) s x)) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F s)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F s) j x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (s : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F s), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (CategoryTheory.Limits.limit.lift.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) s x)) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F s)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F s) j x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.lift_π_apply CategoryTheory.Limits.Types.Limit.lift_π_applyₓ'. -/
@[simp]
theorem Limit.lift_π_apply (F : J ⥤ Type max v u) (s : Cone F) (j : J) (x : s.pt) :
@@ -284,7 +284,7 @@ theorem Limit.lift_π_apply (F : J ⥤ Type max v u) (s : Cone F) (j : J) (x : s
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {G : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} (α : Quiver.Hom.{succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}))) F G) (j : J) (x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} G j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} G (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) G) j (CategoryTheory.Limits.limMap.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F G (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) G) α x)) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F G α j (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {G : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} (α : Quiver.Hom.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) F G) (j : J) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} G) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} G (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 G) j (CategoryTheory.Limits.limMap.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F G (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 G) α x)) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F G α j (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {G : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} (α : Quiver.Hom.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) F G) (j : J) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} G) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} G (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 G) j (CategoryTheory.Limits.limMap.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F G (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 G) α x)) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F G α j (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.map_π_apply CategoryTheory.Limits.Types.Limit.map_π_applyₓ'. -/
@[simp]
theorem Limit.map_π_apply {F G : J ⥤ Type max v u} (α : F ⟶ G) (j : J) (x) :
@@ -296,7 +296,7 @@ theorem Limit.map_π_apply {F G : J ⥤ Type max v u} (α : F ⟶ G) (j : J) (x)
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {j : J} {j' : J} {x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j') (CategoryTheory.Functor.map.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j j' f (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j x)) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j' x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {j : J} {j' : J} {x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j') (Prefunctor.map.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j j' f (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j x)) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j' x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {j : J} {j' : J} {x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j') (Prefunctor.map.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j j' f (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j x)) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j' x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.w_apply' CategoryTheory.Limits.Types.Limit.w_apply'ₓ'. -/
@[simp]
theorem Limit.w_apply' {F : J ⥤ Type v} {j j' : J} {x : limit F} (f : j ⟶ j') :
@@ -308,7 +308,7 @@ theorem Limit.w_apply' {F : J ⥤ Type v} {j j' : J} {x : limit F} (f : j ⟶ j'
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (s : CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j (CategoryTheory.Limits.limit.lift.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) s x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.const.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s)) F (CategoryTheory.Limits.Cone.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) j x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (s : CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j (CategoryTheory.Limits.limit.lift.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) s x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.const.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s)) F (CategoryTheory.Limits.Cone.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) j x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (s : CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j (CategoryTheory.Limits.limit.lift.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) s x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.const.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s)) F (CategoryTheory.Limits.Cone.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) j x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.lift_π_apply' CategoryTheory.Limits.Types.Limit.lift_π_apply'ₓ'. -/
@[simp]
theorem Limit.lift_π_apply' (F : J ⥤ Type v) (s : Cone F) (j : J) (x : s.pt) :
@@ -320,7 +320,7 @@ theorem Limit.lift_π_apply' (F : J ⥤ Type v) (s : Cone F) (j : J) (x : s.pt)
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {G : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} (α : Quiver.Hom.{succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) F G) (j : J) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) G) j (CategoryTheory.Limits.limMap.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) G) α x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G α j (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j x))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {G : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} (α : Quiver.Hom.{succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) F G) (j : J) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 G) j (CategoryTheory.Limits.limMap.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 G) α x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G α j (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j x))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {G : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} (α : Quiver.Hom.{succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) F G) (j : J) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F)), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 G) j (CategoryTheory.Limits.limMap.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 G) α x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G α j (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit'.{u1} J _inst_1 F) j x))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.map_π_apply' CategoryTheory.Limits.Types.Limit.map_π_apply'ₓ'. -/
@[simp]
theorem Limit.map_π_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x) :
@@ -332,7 +332,7 @@ theorem Limit.map_π_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x) :
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}), (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> Prop
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}), (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) -> (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) -> Prop
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}), (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) -> (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) -> Prop
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.quot.rel CategoryTheory.Limits.Types.Quot.Relₓ'. -/
/--
The relation defining the quotient type which implements the colimit of a functor `F : J ⥤ Type u`.
@@ -408,7 +408,7 @@ noncomputable def colimitEquivQuot (F : J ⥤ Type max v u) : (colimit F : Type
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) -> (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u1) (succ (max u1 u2))} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j x))) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F) j x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (fun (_x : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (fun (_x : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_equiv_quot_symm_apply CategoryTheory.Limits.Types.colimitEquivQuot_symm_applyₓ'. -/
@[simp]
theorem colimitEquivQuot_symm_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
@@ -420,7 +420,7 @@ theorem colimitEquivQuot_symm_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) => (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F) j x)) (Quot.mk.{max (succ u1) (succ (max u1 u2))} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j x))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j x))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j x))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_equiv_quot_apply CategoryTheory.Limits.Types.colimitEquivQuot_applyₓ'. -/
@[simp]
theorem colimitEquivQuot_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
@@ -434,7 +434,7 @@ theorem colimitEquivQuot_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j' (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j j' f x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j j' f x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.w_apply CategoryTheory.Limits.Types.Colimit.w_applyₓ'. -/
@[simp]
theorem Colimit.w_apply {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} (f : j ⟶ j') :
@@ -446,7 +446,7 @@ theorem Colimit.w_apply {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} (f : j
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (s : CategoryTheory.Limits.Cocone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s) (CategoryTheory.Limits.colimit.desc.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) s (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x)) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s) j x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (s : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F s) (CategoryTheory.Limits.colimit.desc.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) s (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F s)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F s) j x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (s : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F s) (CategoryTheory.Limits.colimit.desc.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) s (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F s)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F s) j x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.ι_desc_apply CategoryTheory.Limits.Types.Colimit.ι_desc_applyₓ'. -/
@[simp]
theorem Colimit.ι_desc_apply (F : J ⥤ Type max v u) (s : Cocone F) (j : J) (x : F.obj j) :
@@ -458,7 +458,7 @@ theorem Colimit.ι_desc_apply (F : J ⥤ Type max v u) (s : Cocone F) (j : J) (x
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {G : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} (α : Quiver.Hom.{succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}))) F G) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2)), succ (max u1 u2)} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Limits.colim.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2})) G) (CategoryTheory.Functor.map.{max u1 u2, max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2)), succ (max u1 u2)} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Limits.colim.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2})) F G α (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} G (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) G) j (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F G α j x))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {G : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} (α : Quiver.Hom.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) F G) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{max (succ u1) (succ (max u2 u1)), succ (max u2 u1), max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.colim.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.HasColimitsOfSize.has_colimits_of_shape.{u1, u1, max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2} J _inst_1))) G) (Prefunctor.map.{max (succ u1) (succ (max u2 u1)), succ (max u2 u1), max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.colim.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.HasColimitsOfSize.has_colimits_of_shape.{u1, u1, max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2} J _inst_1))) F G α (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} G (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 G) j (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F G α j x))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {G : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} (α : Quiver.Hom.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) F G) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{max (succ u1) (succ (max u2 u1)), succ (max u2 u1), max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.colim.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}))) G) (Prefunctor.map.{max (succ u1) (succ (max u2 u1)), succ (max u2 u1), max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.colim.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}))) F G α (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} G (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 G) j (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F G α j x))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.ι_map_apply CategoryTheory.Limits.Types.Colimit.ι_map_applyₓ'. -/
@[simp]
theorem Colimit.ι_map_apply {F G : J ⥤ Type max v u} (α : F ⟶ G) (j : J) (x) :
@@ -506,7 +506,7 @@ theorem Colimit.ι_map_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x) :
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j} {x' : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j'} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f x) x') -> (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j' x'))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j} {x' : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j'} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j j' f x) x') -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' x'))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j} {x' : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j'} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j j' f x) x') -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' x'))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_sound CategoryTheory.Limits.Types.colimit_soundₓ'. -/
theorem colimit_sound {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'} (f : j ⟶ j')
(w : F.map f x = x') : colimit.ι F j x = colimit.ι F j' x' :=
@@ -519,7 +519,7 @@ theorem colimit_sound {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j} {x' : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j'} {j'' : J} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'') (f' : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j' j''), (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j'') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j'' f x) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j' j'' f' x')) -> (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j' x'))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j} {x' : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j'} {j'' : J} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'') (f' : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j' j''), (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j'') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j j'' f x) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j' j'' f' x')) -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' x'))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j} {x' : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j'} {j'' : J} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'') (f' : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j' j''), (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j'') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j j'' f x) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j' j'' f' x')) -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' x'))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_sound' CategoryTheory.Limits.Types.colimit_sound'ₓ'. -/
theorem colimit_sound' {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'} {j'' : J}
(f : j ⟶ j'') (f' : j' ⟶ j'') (w : F.map f x = F.map f' x') :
@@ -533,7 +533,7 @@ theorem colimit_sound' {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j} {x' : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j'}, (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j' x')) -> (EqvGen.{max u1 u2} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j x) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j' x'))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j} {x' : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j'}, (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' x')) -> (EqvGen.{max u2 u1} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j x) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j' x'))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j} {x' : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j'}, (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' x')) -> (EqvGen.{max u2 u1} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j x) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j' x'))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_eq CategoryTheory.Limits.Types.colimit_eqₓ'. -/
theorem colimit_eq {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'}
(w : colimit.ι F j x = colimit.ι F j' x') : EqvGen (Quot.Rel F) ⟨j, x⟩ ⟨j', x'⟩ :=
@@ -546,7 +546,7 @@ theorem colimit_eq {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) {t : CategoryTheory.Limits.Cocone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F}, (CategoryTheory.Limits.IsColimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) -> (forall (x : CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t), Exists.{succ u1} J (fun (j : J) => Exists.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (y : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) j) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) j y) x)))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) {t : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F}, (CategoryTheory.Limits.IsColimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) -> (forall (x : CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t), Exists.{succ u1} J (fun (j : J) => Exists.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (fun (y : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t))) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) j y) x)))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) {t : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F}, (CategoryTheory.Limits.IsColimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) -> (forall (x : CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t), Exists.{succ u1} J (fun (j : J) => Exists.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (fun (y : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t))) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) j y) x)))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.jointly_surjective CategoryTheory.Limits.Types.jointly_surjectiveₓ'. -/
theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimit t) (x : t.pt) :
∃ j y, t.ι.app j y = x :=
@@ -568,7 +568,7 @@ theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimi
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} (x : CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)), Exists.{succ u1} J (fun (j : J) => Exists.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (y : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j y) x))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} (x : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)), Exists.{succ u1} J (fun (j : J) => Exists.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (fun (y : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) => Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j y) x))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}} (x : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)), Exists.{succ u1} J (fun (j : J) => Exists.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) (fun (y : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) => Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j y) x))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.jointly_surjective' CategoryTheory.Limits.Types.jointly_surjective'ₓ'. -/
/-- A variant of `jointly_surjective` for `x : colimit F`. -/
theorem jointly_surjective' {F : J ⥤ Type max v u} (x : colimit F) : ∃ j y, colimit.ι F j y = x :=
@@ -586,7 +586,7 @@ variable (F : J ⥤ Type max v u)
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}), (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> Prop
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}), (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) -> (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) -> Prop
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}), (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) -> (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) -> Prop
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.rel CategoryTheory.Limits.Types.FilteredColimit.Relₓ'. -/
/-- An alternative relation on `Σ j, F.obj j`,
which generates the same equivalence relation as we use to define the colimit in `Type` above,
@@ -603,7 +603,7 @@ protected def Rel (x y : Σj, F.obj j) : Prop :=
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (y : Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)), (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F x y) -> (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F x y)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (y : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)), (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F x y) -> (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F x y)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (y : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)), (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F x y) -> (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F x y)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.rel_of_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_relₓ'. -/
theorem rel_of_quot_rel (x y : Σj, F.obj j) : Quot.Rel F x y → FilteredColimit.Rel F x y :=
fun ⟨f, h⟩ => ⟨y.1, f, 𝟙 y.1, by rw [← h, functor_to_types.map_id_apply]⟩
@@ -613,7 +613,7 @@ theorem rel_of_quot_rel (x y : Σj, F.obj j) : Quot.Rel F x y → FilteredColimi
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (y : Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)), (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F x y) -> (EqvGen.{max u1 u2} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) x y)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (y : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)), (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F x y) -> (EqvGen.{max u2 u1} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) x y)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (x : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (y : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)), (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F x y) -> (EqvGen.{max u2 u1} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) x y)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.eqv_gen_quot_rel_of_rel CategoryTheory.Limits.Types.FilteredColimit.eqvGen_quot_rel_of_relₓ'. -/
theorem eqvGen_quot_rel_of_rel (x y : Σj, F.obj j) :
FilteredColimit.Rel F x y → EqvGen (Quot.Rel F) x y := fun ⟨k, f, g, h⟩ =>
@@ -627,7 +627,7 @@ attribute [local elab_without_expected_type] nat_trans.app
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (t : CategoryTheory.Limits.Cocone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F), (forall (x : CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t), Exists.{succ u1} J (fun (i : J) => Exists.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i) (fun (xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i) => Eq.{succ (max u1 u2)} (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) x (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) i xi)))) -> (forall (i : J) (j : J) (xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i) (xj : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) i) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) i xi) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) j xj)) -> (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F k) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i k f xi) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j k g xj)))))) -> (CategoryTheory.Limits.IsColimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (t : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F), (forall (x : CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t), Exists.{succ u1} J (fun (i : J) => Exists.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i) (fun (xi : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i) => Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) x (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) i xi)))) -> (forall (i : J) (j : J) (xi : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i) (xj : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t))) i) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) i xi) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) j xj)) -> (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) k) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i k f xi) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j k g xj)))))) -> (CategoryTheory.Limits.IsColimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (t : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F), (forall (x : CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t), Exists.{succ u1} J (fun (i : J) => Exists.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i) (fun (xi : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i) => Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) x (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) i xi)))) -> (forall (i : J) (j : J) (xi : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i) (xj : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j), (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t))) i) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) i xi) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) j xj)) -> (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) k) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i k f xi) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j k g xj)))))) -> (CategoryTheory.Limits.IsColimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.is_colimit_of CategoryTheory.Limits.Types.FilteredColimit.isColimitOfₓ'. -/
/-- Recognizing filtered colimits of types. -/
noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x = t.ι.app i xi)
@@ -668,7 +668,7 @@ variable [IsFilteredOrEmpty J]
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1], Equivalence.{max (succ u1) (succ (max u1 u2))} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1], Equivalence.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1], Equivalence.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.rel_equiv CategoryTheory.Limits.Types.FilteredColimit.rel_equivₓ'. -/
protected theorem rel_equiv : Equivalence (FilteredColimit.Rel F) :=
⟨fun x => ⟨x.1, 𝟙 x.1, 𝟙 x.1, rfl⟩, fun x y ⟨k, f, g, h⟩ => ⟨k, g, f, h.symm⟩,
@@ -691,7 +691,7 @@ protected theorem rel_equiv : Equivalence (FilteredColimit.Rel F) :=
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1], Eq.{max (max (succ u1) (succ (max u1 u2))) 1} ((Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> Prop) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F) (EqvGen.{max u1 u2} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1], Eq.{max (succ u2) (succ u1)} ((Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) -> (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) -> Prop) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F) (EqvGen.{max u2 u1} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1], Eq.{max (succ u2) (succ u1)} ((Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) -> (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) -> Prop) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F) (EqvGen.{max u2 u1} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.rel_eq_eqv_gen_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_eq_eqvGen_quot_relₓ'. -/
protected theorem rel_eq_eqvGen_quot_rel : FilteredColimit.Rel F = EqvGen (Quot.Rel F) :=
by
@@ -706,7 +706,7 @@ protected theorem rel_eq_eqvGen_quot_rel : FilteredColimit.Rel F = EqvGen (Quot.
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {i : J} {j : J} {xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i} {xj : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j}, Iff (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) i) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)) i xi) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)) j xj)) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) i xi) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j xj))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {i : J} {j : J} {xi : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i} {xj : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j}, Iff (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)))) i) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)) i xi) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)) j xj)) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) i xi) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j xj))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {i : J} {j : J} {xi : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i} {xj : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j}, Iff (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)))) i) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)) i xi) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)) j xj)) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) i xi) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j) j xj))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_auxₓ'. -/
theorem colimit_eq_iff_aux {i j : J} {xi : F.obj i} {xj : F.obj j} :
(colimitCocone F).ι.app i xi = (colimitCocone F).ι.app j xj ↔
@@ -720,7 +720,7 @@ theorem colimit_eq_iff_aux {i j : J} {xi : F.obj i} {xj : F.obj j} :
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {t : CategoryTheory.Limits.Cocone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F}, (CategoryTheory.Limits.IsColimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) -> (forall {i : J} {j : J} {xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i} {xj : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j}, Iff (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) i) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) i xi) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) j xj)) (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F k) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i k f xi) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j k g xj))))))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {t : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F}, (CategoryTheory.Limits.IsColimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) -> (forall {i : J} {j : J} {xi : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i} {xj : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j}, Iff (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t))) i) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) i xi) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) j xj)) (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) k) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i k f xi) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j k g xj))))))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {t : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F}, (CategoryTheory.Limits.IsColimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) -> (forall {i : J} {j : J} {xi : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i} {xj : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j}, Iff (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t))) i) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) i xi) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F t) j xj)) (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) k) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i k f xi) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j k g xj))))))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.is_colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iffₓ'. -/
theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj i} {xj : F.obj j} :
t.ι.app i xi = t.ι.app j xj ↔ ∃ (k : _)(f : i ⟶ k)(g : j ⟶ k), F.map f xi = F.map g xj :=
@@ -736,7 +736,7 @@ theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {i : J} {j : J} {xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i} {xj : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j}, Iff (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) i xi) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j xj)) (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F k) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i k f xi) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j k g xj)))))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {i : J} {j : J} {xi : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i} {xj : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j}, Iff (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) i xi) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j xj)) (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) k) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i k f xi) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j k g xj)))))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {i : J} {j : J} {xi : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i} {xj : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j}, Iff (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) i xi) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j xj)) (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) k) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) i k f xi) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) TypeMax.{u1, u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 TypeMax.{u1, u2} CategoryTheory.types.{max u2 u1} F) j k g xj)))))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iffₓ'. -/
theorem colimit_eq_iff {i j : J} {xi : F.obj i} {xj : F.obj j} :
colimit.ι F i xi = colimit.ι F j xj ↔
mathlib commit https://github.com/leanprover-community/mathlib/commit/2196ab363eb097c008d4497125e0dde23fb36db2
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison, Reid Barton
! This file was ported from Lean 3 source module category_theory.limits.types
-! leanprover-community/mathlib commit 4aa2a2e17940311e47007f087c9df229e7f12942
+! leanprover-community/mathlib commit 69c6a5a12d8a2b159f20933e60115a4f2de62b58
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.Tactic.EquivRw
/-!
# Limits in the category of types.
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
We show that the category of types has all (co)limits, by providing the usual concrete models.
We also give a characterisation of filtered colimits in `Type`, via
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -95,7 +95,7 @@ def isLimitEquivSections {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) :
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {c : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) -> (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t) x) j) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) j x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (fun (_x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t) x) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) j x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (fun (_x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t) x) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) j x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_applyₓ'. -/
@[simp]
theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) (j : J)
@@ -107,7 +107,7 @@ theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : Is
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {c : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) j (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) => (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t)) x)) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) x j)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_applyₓ'. -/
@[simp]
theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c)
@@ -135,7 +135,7 @@ noncomputable def limitEquivSections (F : J ⥤ Type max v u) :
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) -> (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F) x) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F) x) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F) x) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_applyₓ'. -/
@[simp]
theorem limitEquivSections_apply (F : J ⥤ Type max v u) (x : limit F) (j : J) :
@@ -147,7 +147,7 @@ theorem limitEquivSections_apply (F : J ⥤ Type max v u) (x : limit F) (j : J)
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F) j (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) => (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F)) x)) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) x j)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.limitEquivSections_symm_applyₓ'. -/
@[simp]
theorem limitEquivSections_symm_apply (F : J ⥤ Type max v u) (x : F.sections) (j : J) :
@@ -405,7 +405,7 @@ noncomputable def colimitEquivQuot (F : J ⥤ Type max v u) : (colimit F : Type
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) -> (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u1) (succ (max u1 u2))} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j x))) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F) j x)
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (fun (_x : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (fun (_x : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_equiv_quot_symm_apply CategoryTheory.Limits.Types.colimitEquivQuot_symm_applyₓ'. -/
@[simp]
theorem colimitEquivQuot_symm_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
@@ -417,7 +417,7 @@ theorem colimitEquivQuot_symm_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj
lean 3 declaration is
forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) => (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F) j x)) (Quot.mk.{max (succ u1) (succ (max u1 u2))} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j x))
but is expected to have type
- forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j x))
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.808 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j x))
Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_equiv_quot_apply CategoryTheory.Limits.Types.colimitEquivQuot_applyₓ'. -/
@[simp]
theorem colimitEquivQuot_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/3180fab693e2cee3bff62675571264cb8778b212
@@ -35,6 +35,7 @@ namespace CategoryTheory.Limits.Types
variable {J : Type v} [SmallCategory J]
+#print CategoryTheory.Limits.Types.limitCone /-
/-- (internal implementation) the limit cone of a functor,
implemented as flat sections of a pi type
-/
@@ -43,9 +44,11 @@ def limitCone (F : J ⥤ Type max v u) : Cone F
pt := F.sections
π := { app := fun j u => u.val j }
#align category_theory.limits.types.limit_cone CategoryTheory.Limits.Types.limitCone
+-/
attribute [local elab_without_expected_type] congr_fun
+#print CategoryTheory.Limits.Types.limitConeIsLimit /-
/-- (internal implementation) the fact that the proposed limit cone is the limit -/
def limitConeIsLimit (F : J ⥤ Type max v u) : IsLimit (limitCone F)
where
@@ -55,7 +58,9 @@ def limitConeIsLimit (F : J ⥤ Type max v u) : IsLimit (limitCone F)
ext (x j)
exact congr_fun (w j) x
#align category_theory.limits.types.limit_cone_is_limit CategoryTheory.Limits.Types.limitConeIsLimit
+-/
+#print CategoryTheory.Limits.Types.hasLimitsOfSize /-
/-- The category of types has all limits.
See <https://stacks.math.columbia.edu/tag/002U>.
@@ -68,10 +73,17 @@ instance hasLimitsOfSize : HasLimitsOfSize.{v} (Type max v u)
{ Cone := limit_cone F
IsLimit := limit_cone_is_limit F } }
#align category_theory.limits.types.has_limits_of_size CategoryTheory.Limits.Types.hasLimitsOfSize
+-/
instance : HasLimits (Type u) :=
Types.hasLimitsOfSize.{u, u}
+/- warning: category_theory.limits.types.is_limit_equiv_sections -> CategoryTheory.Limits.Types.isLimitEquivSections is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {c : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F}, (CategoryTheory.Limits.IsLimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) -> (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F}, (CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) -> (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections CategoryTheory.Limits.Types.isLimitEquivSectionsₓ'. -/
/-- The equivalence between a limiting cone of `F` in `Type u` and the "concrete" definition as the
sections of `F`.
-/
@@ -79,12 +91,24 @@ def isLimitEquivSections {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) :
(IsLimit.conePointUniqueUpToIso t (limitConeIsLimit F)).toEquiv
#align category_theory.limits.types.is_limit_equiv_sections CategoryTheory.Limits.Types.isLimitEquivSections
+/- warning: category_theory.limits.types.is_limit_equiv_sections_apply -> CategoryTheory.Limits.Types.isLimitEquivSections_apply is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {c : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) -> (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t) x) j) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) j x)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (fun (_x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t) x) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) j x)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_applyₓ'. -/
@[simp]
theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) (j : J)
(x : c.pt) : ((isLimitEquivSections t) x : ∀ j, F.obj j) j = c.π.app j x :=
rfl
#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_apply
+/- warning: category_theory.limits.types.is_limit_equiv_sections_symm_apply -> CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {c : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) j (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) => (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c)) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F c) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t)) x)) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) x j)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {c : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F} (t : CategoryTheory.Limits.IsLimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c)) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F c) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.isLimitEquivSections.{u1, u2} J _inst_1 F c t)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_applyₓ'. -/
@[simp]
theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c)
(x : F.sections) (j : J) : c.π.app j ((isLimitEquivSections t).symm x) = (x : ∀ j, F.obj j) j :=
@@ -93,6 +117,12 @@ theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t
simp
#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply
+/- warning: category_theory.limits.types.limit_equiv_sections -> CategoryTheory.Limits.Types.limitEquivSections is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}), Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}), Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections CategoryTheory.Limits.Types.limitEquivSectionsₓ'. -/
/-- The equivalence between the abstract limit of `F` in `Type u`
and the "concrete" definition as the sections of `F`.
-/
@@ -101,12 +131,24 @@ noncomputable def limitEquivSections (F : J ⥤ Type max v u) :
isLimitEquivSections (limit.isLimit _)
#align category_theory.limits.types.limit_equiv_sections CategoryTheory.Limits.Types.limitEquivSections
+/- warning: category_theory.limits.types.limit_equiv_sections_apply -> CategoryTheory.Limits.Types.limitEquivSections_apply is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) -> (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F) x) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) => Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F))) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F) x) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_applyₓ'. -/
@[simp]
theorem limitEquivSections_apply (F : J ⥤ Type max v u) (x : limit F) (j : J) :
((limitEquivSections F) x : ∀ j, F.obj j) j = limit.π F j x :=
rfl
#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_apply
+/- warning: category_theory.limits.types.limit_equiv_sections_symm_apply -> CategoryTheory.Limits.Types.limitEquivSections_symm_apply is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F) j (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) => (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F))) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.limitEquivSections._proof_1.{u2, u1} J _inst_1 F)) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F)) x)) ((fun (a : Type.{max u1 u2}) (b : Sort.{max (succ u1) (succ (max u1 u2))}) [self : HasLiftT.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} a b] => self.0) (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (HasLiftT.mk.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CoeTCₓ.coe.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeBase.{succ (max u1 u2), max (succ u1) (succ (max u1 u2))} (coeSort.{succ (max u1 u2), succ (succ (max u1 u2))} (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) Type.{max u1 u2} (Set.hasCoeToSort.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)) (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (coeSubtype.{max (succ u1) (succ (max u1 u2))} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Membership.Mem.{max u1 u2, max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (Set.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (Set.hasMem.{max u1 u2} (forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) x (CategoryTheory.Functor.sections.{u1, max u1 u2, u1} J _inst_1 F)))))) x j)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (fun (_x : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) => CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (Set.Elem.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.limitEquivSections.{u1, u2} J _inst_1 F)) x)) (Subtype.val.{succ (max u2 u1)} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (fun (x : forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) => Membership.mem.{max u2 u1, max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j) (Set.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) (Set.instMembershipSet.{max u2 u1} (forall (j : J), Prefunctor.obj.{succ u1, succ (max u2 u1), u1, succ (max u2 u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u2 u1} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, succ (max u2 u1)} Type.{max u2 u1} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, succ (max u2 u1)} J _inst_1 Type.{max u2 u1} CategoryTheory.types.{max u2 u1} F) j)) x (CategoryTheory.Functor.sections.{u1, max u2 u1, u1} J _inst_1 F)) x j)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.limitEquivSections_symm_applyₓ'. -/
@[simp]
theorem limitEquivSections_symm_apply (F : J ⥤ Type max v u) (x : F.sections) (j : J) :
limit.π F j ((limitEquivSections F).symm x) = (x : ∀ j, F.obj j) j :=
@@ -119,6 +161,12 @@ theorem limitEquivSections_symm_apply' (F : J ⥤ Type v) (x : F.sections) (j :
isLimitEquivSections_symm_apply _ _ _
#align category_theory.limits.types.limit_equiv_sections_symm_apply' CategoryTheory.Limits.Types.limitEquivSections_symm_apply'
+/- warning: category_theory.limits.types.limit.mk -> CategoryTheory.Limits.Types.Limit.mk is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), (forall (j : J) (j' : J) (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f (x j)) (x j')) -> (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.Limit.mk._proof_1.{u2, u1} J _inst_1 F))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : forall (j : J), Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), (forall (j : J) (j' : J) (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j j' f (x j)) (x j')) -> (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.mk CategoryTheory.Limits.Types.Limit.mkₓ'. -/
/-- Construct a term of `limit F : Type u` from a family of terms `x : Π j, F.obj j`
which are "coherent": `∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j'`.
-/
@@ -128,6 +176,12 @@ noncomputable def Limit.mk (F : J ⥤ Type max v u) (x : ∀ j, F.obj j)
(limitEquivSections F).symm ⟨x, h⟩
#align category_theory.limits.types.limit.mk CategoryTheory.Limits.Types.Limit.mk
+/- warning: category_theory.limits.types.limit.π_mk -> CategoryTheory.Limits.Types.Limit.π_mk is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : forall (j : J), CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (h : forall (j : J) (j' : J) (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f (x j)) (x j')) (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.Limit.mk._proof_1.{u2, u1} J _inst_1 F) j (CategoryTheory.Limits.Types.Limit.mk.{u1, u2} J _inst_1 F x h)) (x j)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : forall (j : J), Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (h : forall (j : J) (j' : J) (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j j' f (x j)) (x j')) (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (CategoryTheory.Limits.Types.Limit.mk.{u1, u2} J _inst_1 F x h)) (x j)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.π_mk CategoryTheory.Limits.Types.Limit.π_mkₓ'. -/
@[simp]
theorem Limit.π_mk (F : J ⥤ Type max v u) (x : ∀ j, F.obj j)
(h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') (j) : limit.π F j (Limit.mk F x h) = x j :=
@@ -145,6 +199,12 @@ theorem Limit.π_mk' (F : J ⥤ Type v) (x : ∀ j, F.obj j)
simp
#align category_theory.limits.types.limit.π_mk' CategoryTheory.Limits.Types.Limit.π_mk'
+/- warning: category_theory.limits.types.limit_ext -> CategoryTheory.Limits.Types.limit_ext is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) (y : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)), (forall (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j y)) -> (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) x y)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)), (forall (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j y)) -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) x y)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_ext CategoryTheory.Limits.Types.limit_extₓ'. -/
-- PROJECT: prove this for concrete categories where the forgetful functor preserves limits
@[ext]
theorem limit_ext (F : J ⥤ Type max v u) (x y : limit F) (w : ∀ j, limit.π F j x = limit.π F j y) :
@@ -154,6 +214,12 @@ theorem limit_ext (F : J ⥤ Type max v u) (x y : limit F) (w : ∀ j, limit.π
simp [w j]
#align category_theory.limits.types.limit_ext CategoryTheory.Limits.Types.limit_ext
+/- warning: category_theory.limits.types.limit_ext' -> CategoryTheory.Limits.Types.limit_ext' is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)) (y : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)), (forall (j : J), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j y)) -> (Eq.{succ u1} (CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)) x y)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)), (forall (j : J), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j y)) -> (Eq.{succ u1} (CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)) x y)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_ext' CategoryTheory.Limits.Types.limit_ext'ₓ'. -/
@[ext]
theorem limit_ext' (F : J ⥤ Type v) (x y : limit F) (w : ∀ j, limit.π F j x = limit.π F j y) :
x = y := by
@@ -162,16 +228,34 @@ theorem limit_ext' (F : J ⥤ Type v) (x y : limit F) (w : ∀ j, limit.π F j x
simp [w j]
#align category_theory.limits.types.limit_ext' CategoryTheory.Limits.Types.limit_ext'
+/- warning: category_theory.limits.types.limit_ext_iff -> CategoryTheory.Limits.Types.limit_ext_iff is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) (y : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)), Iff (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)) x y) (forall (j : J), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j y))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)), Iff (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)) x y) (forall (j : J), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j y))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_ext_iff CategoryTheory.Limits.Types.limit_ext_iffₓ'. -/
theorem limit_ext_iff (F : J ⥤ Type max v u) (x y : limit F) :
x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
⟨fun t _ => t ▸ rfl, limit_ext _ _ _⟩
#align category_theory.limits.types.limit_ext_iff CategoryTheory.Limits.Types.limit_ext_iff
+/- warning: category_theory.limits.types.limit_ext_iff' -> CategoryTheory.Limits.Types.limit_ext_iff' is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)) (y : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)), Iff (Eq.{succ u1} (CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)) x y) (forall (j : J), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j y))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)) (y : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)), Iff (Eq.{succ u1} (CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)) x y) (forall (j : J), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j x) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j y))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit_ext_iff' CategoryTheory.Limits.Types.limit_ext_iff'ₓ'. -/
theorem limit_ext_iff' (F : J ⥤ Type v) (x y : limit F) :
x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
⟨fun t _ => t ▸ rfl, limit_ext _ _ _⟩
#align category_theory.limits.types.limit_ext_iff' CategoryTheory.Limits.Types.limit_ext_iff'
+/- warning: category_theory.limits.types.limit.w_apply -> CategoryTheory.Limits.Types.Limit.w_apply is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x)) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j' x)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j j' f (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x)) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j' x)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.w_apply CategoryTheory.Limits.Types.Limit.w_applyₓ'. -/
-- TODO: are there other limits lemmas that should have `_apply` versions?
-- Can we generate these like with `@[reassoc]`?
-- PROJECT: prove these for any concrete category where the forgetful functor preserves limits?
@@ -181,36 +265,72 @@ theorem Limit.w_apply {F : J ⥤ Type max v u} {j j' : J} {x : limit F} (f : j
congr_fun (limit.w F f) x
#align category_theory.limits.types.limit.w_apply CategoryTheory.Limits.Types.Limit.w_apply
+/- warning: category_theory.limits.types.limit.lift_π_apply -> CategoryTheory.Limits.Types.Limit.lift_π_apply is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (s : CategoryTheory.Limits.Cone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j (CategoryTheory.Limits.limit.lift.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) s x)) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s)) F (CategoryTheory.Limits.Cone.π.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s) j x)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (s : CategoryTheory.Limits.Cone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F s), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j (CategoryTheory.Limits.limit.lift.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) s x)) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F s)) F (CategoryTheory.Limits.Cone.π.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F s) j x)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.lift_π_apply CategoryTheory.Limits.Types.Limit.lift_π_applyₓ'. -/
@[simp]
theorem Limit.lift_π_apply (F : J ⥤ Type max v u) (s : Cone F) (j : J) (x : s.pt) :
limit.π F j (limit.lift F s x) = s.π.app j x :=
congr_fun (limit.lift_π s j) x
#align category_theory.limits.types.limit.lift_π_apply CategoryTheory.Limits.Types.Limit.lift_π_apply
+/- warning: category_theory.limits.types.limit.map_π_apply -> CategoryTheory.Limits.Types.Limit.map_π_apply is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {G : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} (α : Quiver.Hom.{succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}))) F G) (j : J) (x : CategoryTheory.Limits.limit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F)), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} G j) (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} G (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) G) j (CategoryTheory.Limits.limMap.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F G (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) G) α x)) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F G α j (CategoryTheory.Limits.limit.π.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasLimitsOfSize.{u1, u2}) F) j x))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {G : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} (α : Quiver.Hom.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) F G) (j : J) (x : CategoryTheory.Limits.limit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F)), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} G) j) (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} G (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 G) j (CategoryTheory.Limits.limMap.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F G (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 G) α x)) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F G α j (CategoryTheory.Limits.limit.π.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u2} J _inst_1 F) j x))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.map_π_apply CategoryTheory.Limits.Types.Limit.map_π_applyₓ'. -/
@[simp]
theorem Limit.map_π_apply {F G : J ⥤ Type max v u} (α : F ⟶ G) (j : J) (x) :
limit.π G j (limMap α x) = α.app j (limit.π F j x) :=
congr_fun (limMap_π α j) x
#align category_theory.limits.types.limit.map_π_apply CategoryTheory.Limits.Types.Limit.map_π_apply
+/- warning: category_theory.limits.types.limit.w_apply' -> CategoryTheory.Limits.Types.Limit.w_apply' is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {j : J} {j' : J} {x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j') (CategoryTheory.Functor.map.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j j' f (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j x)) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j' x)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {j : J} {j' : J} {x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j') (Prefunctor.map.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j j' f (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j x)) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j' x)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.w_apply' CategoryTheory.Limits.Types.Limit.w_apply'ₓ'. -/
@[simp]
theorem Limit.w_apply' {F : J ⥤ Type v} {j j' : J} {x : limit F} (f : j ⟶ j') :
F.map f (limit.π F j x) = limit.π F j' x :=
congr_fun (limit.w F f) x
#align category_theory.limits.types.limit.w_apply' CategoryTheory.Limits.Types.Limit.w_apply'
+/- warning: category_theory.limits.types.limit.lift_π_apply' -> CategoryTheory.Limits.Types.Limit.lift_π_apply' is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (s : CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j (CategoryTheory.Limits.limit.lift.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) s x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.const.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s)) F (CategoryTheory.Limits.Cone.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) j x)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (s : CategoryTheory.Limits.Cone.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (j : J) (x : CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j (CategoryTheory.Limits.limit.lift.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) s x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.const.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Limits.Cone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s)) F (CategoryTheory.Limits.Cone.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) j x)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.lift_π_apply' CategoryTheory.Limits.Types.Limit.lift_π_apply'ₓ'. -/
@[simp]
theorem Limit.lift_π_apply' (F : J ⥤ Type v) (s : Cone F) (j : J) (x : s.pt) :
limit.π F j (limit.lift F s x) = s.π.app j x :=
congr_fun (limit.lift_π s j) x
#align category_theory.limits.types.limit.lift_π_apply' CategoryTheory.Limits.Types.Limit.lift_π_apply'
+/- warning: category_theory.limits.types.limit.map_π_apply' -> CategoryTheory.Limits.Types.Limit.map_π_apply' is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {G : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} (α : Quiver.Hom.{succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) F G) (j : J) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F)), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) G) j (CategoryTheory.Limits.limMap.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) G) α x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G α j (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasLimitsOfShapeOfHasLimits.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasLimits.{u1}) F) j x))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {G : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} (α : Quiver.Hom.{succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) F G) (j : J) (x : CategoryTheory.Limits.limit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F)), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G) j) (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 G) j (CategoryTheory.Limits.limMap.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 G) α x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G α j (CategoryTheory.Limits.limit.π.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasLimit.{u1, u1} J _inst_1 F) j x))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.limit.map_π_apply' CategoryTheory.Limits.Types.Limit.map_π_apply'ₓ'. -/
@[simp]
theorem Limit.map_π_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x) :
limit.π G j (limMap α x) = α.app j (limit.π F j x) :=
congr_fun (limMap_π α j) x
#align category_theory.limits.types.limit.map_π_apply' CategoryTheory.Limits.Types.Limit.map_π_apply'
+/- warning: category_theory.limits.types.quot.rel -> CategoryTheory.Limits.Types.Quot.Rel is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}), (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> Prop
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}), (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) -> (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) -> Prop
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.quot.rel CategoryTheory.Limits.Types.Quot.Relₓ'. -/
/--
The relation defining the quotient type which implements the colimit of a functor `F : J ⥤ Type u`.
See `category_theory.limits.types.quot`.
@@ -219,6 +339,7 @@ def Quot.Rel (F : J ⥤ Type max v u) : (Σj, F.obj j) → (Σj, F.obj j) → Pr
∃ f : p.1 ⟶ p'.1, p'.2 = F.map f p.2
#align category_theory.limits.types.quot.rel CategoryTheory.Limits.Types.Quot.Rel
+#print CategoryTheory.Limits.Types.Quot /-
/-- A quotient type implementing the colimit of a functor `F : J ⥤ Type u`,
as pairs `⟨j, x⟩` where `x : F.obj j`, modulo the equivalence relation generated by
`⟨j, x⟩ ~ ⟨j', x'⟩` whenever there is a morphism `f : j ⟶ j'` so `F.map f x = x'`.
@@ -227,7 +348,9 @@ as pairs `⟨j, x⟩` where `x : F.obj j`, modulo the equivalence relation gener
def Quot (F : J ⥤ Type max v u) : Type max v u :=
@Quot (Σj, F.obj j) (Quot.Rel F)
#align category_theory.limits.types.quot CategoryTheory.Limits.Types.Quot
+-/
+#print CategoryTheory.Limits.Types.colimitCocone /-
/-- (internal implementation) the colimit cocone of a functor,
implemented as a quotient of a sigma type
-/
@@ -238,16 +361,20 @@ def colimitCocone (F : J ⥤ Type max v u) : Cocone F
{ app := fun j x => Quot.mk _ ⟨j, x⟩
naturality' := fun j j' f => funext fun x => Eq.symm (Quot.sound ⟨f, rfl⟩) }
#align category_theory.limits.types.colimit_cocone CategoryTheory.Limits.Types.colimitCocone
+-/
attribute [local elab_with_expected_type] Quot.lift
+#print CategoryTheory.Limits.Types.colimitCoconeIsColimit /-
/-- (internal implementation) the fact that the proposed colimit cocone is the colimit -/
def colimitCoconeIsColimit (F : J ⥤ Type max v u) : IsColimit (colimitCocone F)
where desc s :=
Quot.lift (fun p : Σj, F.obj j => s.ι.app p.1 p.2) fun ⟨j, x⟩ ⟨j', x'⟩ ⟨f, hf⟩ => by
rw [hf] <;> exact (congr_fun (cocone.w s f) x).symm
#align category_theory.limits.types.colimit_cocone_is_colimit CategoryTheory.Limits.Types.colimitCoconeIsColimit
+-/
+#print CategoryTheory.Limits.Types.hasColimitsOfSize /-
/-- The category of types has all colimits.
See <https://stacks.math.columbia.edu/tag/002U>.
@@ -260,23 +387,38 @@ instance hasColimitsOfSize : HasColimitsOfSize.{v} (Type max v u)
{ Cocone := colimit_cocone F
IsColimit := colimit_cocone_is_colimit F } }
#align category_theory.limits.types.has_colimits_of_size CategoryTheory.Limits.Types.hasColimitsOfSize
+-/
instance : HasColimits (Type u) :=
Types.hasColimitsOfSize.{u, u}
+#print CategoryTheory.Limits.Types.colimitEquivQuot /-
/-- The equivalence between the abstract colimit of `F` in `Type u`
and the "concrete" definition as a quotient.
-/
noncomputable def colimitEquivQuot (F : J ⥤ Type max v u) : (colimit F : Type max v u) ≃ Quot F :=
(IsColimit.coconePointUniqueUpToIso (colimit.isColimit F) (colimitCoconeIsColimit F)).toEquiv
#align category_theory.limits.types.colimit_equiv_quot CategoryTheory.Limits.Types.colimitEquivQuot
+-/
+/- warning: category_theory.limits.types.colimit_equiv_quot_symm_apply -> CategoryTheory.Limits.Types.colimitEquivQuot_symm_apply is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) => (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) -> (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F))) (Equiv.symm.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u1) (succ (max u1 u2))} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j x))) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F) j x)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (fun (_x : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) => CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F))) (Equiv.symm.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j x))) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_equiv_quot_symm_apply CategoryTheory.Limits.Types.colimitEquivQuot_symm_applyₓ'. -/
@[simp]
theorem colimitEquivQuot_symm_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
(colimitEquivQuot F).symm (Quot.mk _ ⟨j, x⟩) = colimit.ι F j x :=
rfl
#align category_theory.limits.types.colimit_equiv_quot_symm_apply CategoryTheory.Limits.Types.colimitEquivQuot_symm_apply
+/- warning: category_theory.limits.types.colimit_equiv_quot_apply -> CategoryTheory.Limits.Types.colimitEquivQuot_apply is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (coeFn.{succ (max u1 u2), succ (max u1 u2)} (Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (fun (_x : Equiv.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) => (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) -> (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (Equiv.hasCoeToFun.{succ (max u1 u2), succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitEquivQuot._proof_1.{u2, u1} J _inst_1 F) j x)) (Quot.mk.{max (succ u1) (succ (max u1 u2))} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j x))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} ((fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (FunLike.coe.{max (succ u2) (succ u1), max (succ u2) (succ u1), max (succ u2) (succ u1)} (Equiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (fun (_x : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => (fun (x._@.Mathlib.Logic.Equiv.Defs._hyg.805 : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) => CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F) _x) (Equiv.instFunLikeEquiv.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.Quot.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.Types.colimitEquivQuot.{u1, u2} J _inst_1 F) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (Quot.mk.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j x))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_equiv_quot_apply CategoryTheory.Limits.Types.colimitEquivQuot_applyₓ'. -/
@[simp]
theorem colimitEquivQuot_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
(colimitEquivQuot F) (colimit.ι F j x) = Quot.mk _ ⟨j, x⟩ :=
@@ -285,42 +427,84 @@ theorem colimitEquivQuot_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
simp
#align category_theory.limits.types.colimit_equiv_quot_apply CategoryTheory.Limits.Types.colimitEquivQuot_apply
+/- warning: category_theory.limits.types.colimit.w_apply -> CategoryTheory.Limits.Types.Colimit.w_apply is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j' (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j j' f x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.w_apply CategoryTheory.Limits.Types.Colimit.w_applyₓ'. -/
@[simp]
theorem Colimit.w_apply {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} (f : j ⟶ j') :
colimit.ι F j' (F.map f x) = colimit.ι F j x :=
congr_fun (colimit.w F f) x
#align category_theory.limits.types.colimit.w_apply CategoryTheory.Limits.Types.Colimit.w_apply
+/- warning: category_theory.limits.types.colimit.ι_desc_apply -> CategoryTheory.Limits.Types.Colimit.ι_desc_apply is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (s : CategoryTheory.Limits.Cocone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s) (CategoryTheory.Limits.colimit.desc.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) s (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x)) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F s) j x)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (s : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F s) (CategoryTheory.Limits.colimit.desc.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) s (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F s)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F s) j x)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.ι_desc_apply CategoryTheory.Limits.Types.Colimit.ι_desc_applyₓ'. -/
@[simp]
theorem Colimit.ι_desc_apply (F : J ⥤ Type max v u) (s : Cocone F) (j : J) (x : F.obj j) :
colimit.desc F s (colimit.ι F j x) = s.ι.app j x :=
congr_fun (colimit.ι_desc s j) x
#align category_theory.limits.types.colimit.ι_desc_apply CategoryTheory.Limits.Types.Colimit.ι_desc_apply
+/- warning: category_theory.limits.types.colimit.ι_map_apply -> CategoryTheory.Limits.Types.Colimit.ι_map_apply is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {G : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} (α : Quiver.Hom.{succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2))} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}))) F G) (j : J) (x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2)), succ (max u1 u2)} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Limits.colim.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2})) G) (CategoryTheory.Functor.map.{max u1 u2, max u1 u2, max u1 (max u1 u2) u1 (succ (max u1 u2)), succ (max u1 u2)} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Limits.colim.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2})) F G α (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} G (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) G) j (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F G α j x))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {G : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} (α : Quiver.Hom.{max (succ u2) (succ u1), max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) F G) (j : J) (x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{max (succ u1) (succ (max u2 u1)), succ (max u2 u1), max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.colim.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.HasColimitsOfSize.has_colimits_of_shape.{u1, u1, max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2} J _inst_1))) G) (Prefunctor.map.{max (succ u1) (succ (max u2 u1)), succ (max u2 u1), max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1, max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.colim.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Limits.HasColimitsOfSize.has_colimits_of_shape.{u1, u1, max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2} J _inst_1))) F G α (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} G (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 G) j (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F G α j x))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.ι_map_apply CategoryTheory.Limits.Types.Colimit.ι_map_applyₓ'. -/
@[simp]
theorem Colimit.ι_map_apply {F G : J ⥤ Type max v u} (α : F ⟶ G) (j : J) (x) :
colim.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
congr_fun (colimit.ι_map α j) x
#align category_theory.limits.types.colimit.ι_map_apply CategoryTheory.Limits.Types.Colimit.ι_map_apply
+/- warning: category_theory.limits.types.colimit.w_apply' -> CategoryTheory.Limits.Types.Colimit.w_apply' is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {j : J} {j' : J} {x : CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ u1} (CategoryTheory.Limits.colimit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1}) F) j' (CategoryTheory.Functor.map.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j j' f x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1}) F) j x)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), Eq.{succ u1} (CategoryTheory.Limits.colimit.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasColimit'.{u1} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasColimit'.{u1} J _inst_1 F) j' (Prefunctor.map.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j j' f x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasColimit'.{u1} J _inst_1 F) j x)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.w_apply' CategoryTheory.Limits.Types.Colimit.w_apply'ₓ'. -/
@[simp]
theorem Colimit.w_apply' {F : J ⥤ Type v} {j j' : J} {x : F.obj j} (f : j ⟶ j') :
colimit.ι F j' (F.map f x) = colimit.ι F j x :=
congr_fun (colimit.w F f) x
#align category_theory.limits.types.colimit.w_apply' CategoryTheory.Limits.Types.Colimit.w_apply'
+/- warning: category_theory.limits.types.colimit.ι_desc_apply' -> CategoryTheory.Limits.Types.Colimit.ι_desc_apply' is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (s : CategoryTheory.Limits.Cocone.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (j : J) (x : CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j), Eq.{succ u1} (CategoryTheory.Limits.Cocone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) (CategoryTheory.Limits.colimit.desc.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1}) F) s (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1}) F) j x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.const.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Limits.Cocone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s)) (CategoryTheory.Limits.Cocone.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) j x)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (s : CategoryTheory.Limits.Cocone.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (j : J) (x : Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j), Eq.{succ u1} (CategoryTheory.Limits.Cocone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) (CategoryTheory.Limits.colimit.desc.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasColimit'.{u1} J _inst_1 F) s (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasColimit'.{u1} J _inst_1 F) j x)) (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.const.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Limits.Cocone.pt.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s)) (CategoryTheory.Limits.Cocone.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F s) j x)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.ι_desc_apply' CategoryTheory.Limits.Types.Colimit.ι_desc_apply'ₓ'. -/
@[simp]
theorem Colimit.ι_desc_apply' (F : J ⥤ Type v) (s : Cocone F) (j : J) (x : F.obj j) :
colimit.desc F s (colimit.ι F j x) = s.ι.app j x :=
congr_fun (colimit.ι_desc s j) x
#align category_theory.limits.types.colimit.ι_desc_apply' CategoryTheory.Limits.Types.Colimit.ι_desc_apply'
+/- warning: category_theory.limits.types.colimit.ι_map_apply' -> CategoryTheory.Limits.Types.Colimit.ι_map_apply' is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {G : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} (α : Quiver.Hom.{succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) F G) (j : J) (x : CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F j), Eq.{succ u1} (CategoryTheory.Functor.obj.{u1, u1, succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.colim.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1})) G) (CategoryTheory.Functor.map.{u1, u1, succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.colim.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1})) F G α (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1}) F) j x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.Sort.CategoryTheory.Limits.hasColimits.{u1}) G) j (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G α j x))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} {G : CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}} (α : Quiver.Hom.{succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) F G) (j : J) (x : Prefunctor.obj.{succ u1, succ u1, u1, succ u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F) j), Eq.{succ u1} (Prefunctor.obj.{succ u1, succ u1, succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.colim.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.instHasColimitsTypeTypes.{u1}))) G) (Prefunctor.map.{succ u1, succ u1, succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, succ u1, succ u1} (CategoryTheory.Functor.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.colim.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, u1, succ u1} Type.{u1} CategoryTheory.types.{u1} J _inst_1 CategoryTheory.Limits.Types.instHasColimitsTypeTypes.{u1}))) F G α (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Limits.Types.hasColimit'.{u1} J _inst_1 F) j x)) (CategoryTheory.Limits.colimit.ι.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} G (CategoryTheory.Limits.Types.hasColimit'.{u1} J _inst_1 G) j (CategoryTheory.NatTrans.app.{u1, u1, u1, succ u1} J _inst_1 Type.{u1} CategoryTheory.types.{u1} F G α j x))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit.ι_map_apply' CategoryTheory.Limits.Types.Colimit.ι_map_apply'ₓ'. -/
@[simp]
theorem Colimit.ι_map_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x) :
colim.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
congr_fun (colimit.ι_map α j) x
#align category_theory.limits.types.colimit.ι_map_apply' CategoryTheory.Limits.Types.Colimit.ι_map_apply'
+/- warning: category_theory.limits.types.colimit_sound -> CategoryTheory.Limits.Types.colimit_sound is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j} {x' : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j'} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j' f x) x') -> (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j' x'))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j} {x' : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j'} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'), (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j j' f x) x') -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' x'))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_sound CategoryTheory.Limits.Types.colimit_soundₓ'. -/
theorem colimit_sound {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'} (f : j ⟶ j')
(w : F.map f x = x') : colimit.ι F j x = colimit.ι F j' x' :=
by
@@ -328,6 +512,12 @@ theorem colimit_sound {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.
simp
#align category_theory.limits.types.colimit_sound CategoryTheory.Limits.Types.colimit_sound
+/- warning: category_theory.limits.types.colimit_sound' -> CategoryTheory.Limits.Types.colimit_sound' is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j} {x' : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j'} {j'' : J} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'') (f' : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j' j''), (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j'') (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j j'' f x) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j' j'' f' x')) -> (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j' x'))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j} {x' : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j'} {j'' : J} (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j j'') (f' : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j' j''), (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j'') (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j j'' f x) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j' j'' f' x')) -> (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' x'))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_sound' CategoryTheory.Limits.Types.colimit_sound'ₓ'. -/
theorem colimit_sound' {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'} {j'' : J}
(f : j ⟶ j'') (f' : j' ⟶ j'') (w : F.map f x = F.map f' x') :
colimit.ι F j x = colimit.ι F j' x' :=
@@ -336,6 +526,12 @@ theorem colimit_sound' {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F
rw [types_comp_apply, types_comp_apply, w]
#align category_theory.limits.types.colimit_sound' CategoryTheory.Limits.Types.colimit_sound'
+/- warning: category_theory.limits.types.colimit_eq -> CategoryTheory.Limits.Types.colimit_eq is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} {j : J} {j' : J} {x : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j} {x' : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j'}, (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j' x')) -> (EqvGen.{max u1 u2} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j x) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j' x'))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} {j : J} {j' : J} {x : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j} {x' : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j'}, (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j x) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j' x')) -> (EqvGen.{max u2 u1} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j x) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j' x'))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.colimit_eq CategoryTheory.Limits.Types.colimit_eqₓ'. -/
theorem colimit_eq {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'}
(w : colimit.ι F j x = colimit.ι F j' x') : EqvGen (Quot.Rel F) ⟨j, x⟩ ⟨j', x'⟩ :=
by
@@ -343,6 +539,12 @@ theorem colimit_eq {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj
simpa using congr_arg (colimit_equiv_quot F) w
#align category_theory.limits.types.colimit_eq CategoryTheory.Limits.Types.colimit_eq
+/- warning: category_theory.limits.types.jointly_surjective -> CategoryTheory.Limits.Types.jointly_surjective is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) {t : CategoryTheory.Limits.Cocone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F}, (CategoryTheory.Limits.IsColimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) -> (forall (x : CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t), Exists.{succ u1} J (fun (j : J) => Exists.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (y : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) j) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) j y) x)))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) {t : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F}, (CategoryTheory.Limits.IsColimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) -> (forall (x : CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t), Exists.{succ u1} J (fun (j : J) => Exists.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (fun (y : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t))) j) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) j y) x)))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.jointly_surjective CategoryTheory.Limits.Types.jointly_surjectiveₓ'. -/
theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimit t) (x : t.pt) :
∃ j y, t.ι.app j y = x :=
by
@@ -359,6 +561,12 @@ theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimi
exact ⟨j, y, rfl⟩
#align category_theory.limits.types.jointly_surjective CategoryTheory.Limits.Types.jointly_surjective
+/- warning: category_theory.limits.types.jointly_surjective' -> CategoryTheory.Limits.Types.jointly_surjective' is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}} (x : CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)), Exists.{succ u1} J (fun (j : J) => Exists.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) (fun (y : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) => Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j y) x))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] {F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}} (x : CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Sort.{max (succ u2) (succ u1)} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)), Exists.{succ u1} J (fun (j : J) => Exists.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) (fun (y : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) => Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j y) x))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.jointly_surjective' CategoryTheory.Limits.Types.jointly_surjective'ₓ'. -/
/-- A variant of `jointly_surjective` for `x : colimit F`. -/
theorem jointly_surjective' {F : J ⥤ Type max v u} (x : colimit F) : ∃ j y, colimit.ι F j y = x :=
jointly_surjective F (colimit.isColimit _) x
@@ -371,6 +579,12 @@ namespace FilteredColimit
the colimit. -/
variable (F : J ⥤ Type max v u)
+/- warning: category_theory.limits.types.filtered_colimit.rel -> CategoryTheory.Limits.Types.FilteredColimit.Rel is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}), (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> Prop
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}), (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) -> (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) -> Prop
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.rel CategoryTheory.Limits.Types.FilteredColimit.Relₓ'. -/
/-- An alternative relation on `Σ j, F.obj j`,
which generates the same equivalence relation as we use to define the colimit in `Type` above,
but that is more convenient when working with filtered colimits.
@@ -382,10 +596,22 @@ protected def Rel (x y : Σj, F.obj j) : Prop :=
∃ (k : _)(f : x.1 ⟶ k)(g : y.1 ⟶ k), F.map f x.2 = F.map g y.2
#align category_theory.limits.types.filtered_colimit.rel CategoryTheory.Limits.Types.FilteredColimit.Rel
+/- warning: category_theory.limits.types.filtered_colimit.rel_of_quot_rel -> CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (y : Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)), (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F x y) -> (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F x y)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (y : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)), (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F x y) -> (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F x y)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.rel_of_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_relₓ'. -/
theorem rel_of_quot_rel (x y : Σj, F.obj j) : Quot.Rel F x y → FilteredColimit.Rel F x y :=
fun ⟨f, h⟩ => ⟨y.1, f, 𝟙 y.1, by rw [← h, functor_to_types.map_id_apply]⟩
#align category_theory.limits.types.filtered_colimit.rel_of_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel
+/- warning: category_theory.limits.types.filtered_colimit.eqv_gen_quot_rel_of_rel -> CategoryTheory.Limits.Types.FilteredColimit.eqvGen_quot_rel_of_rel is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (x : Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (y : Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)), (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F x y) -> (EqvGen.{max u1 u2} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) x y)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (x : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (y : Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)), (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F x y) -> (EqvGen.{max u2 u1} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F) x y)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.eqv_gen_quot_rel_of_rel CategoryTheory.Limits.Types.FilteredColimit.eqvGen_quot_rel_of_relₓ'. -/
theorem eqvGen_quot_rel_of_rel (x y : Σj, F.obj j) :
FilteredColimit.Rel F x y → EqvGen (Quot.Rel F) x y := fun ⟨k, f, g, h⟩ =>
EqvGen.trans _ ⟨k, F.map f x.2⟩ _ (EqvGen.rel _ _ ⟨f, rfl⟩)
@@ -394,6 +620,12 @@ theorem eqvGen_quot_rel_of_rel (x y : Σj, F.obj j) :
attribute [local elab_without_expected_type] nat_trans.app
+/- warning: category_theory.limits.types.filtered_colimit.is_colimit_of -> CategoryTheory.Limits.Types.FilteredColimit.isColimitOf is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (t : CategoryTheory.Limits.Cocone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F), (forall (x : CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t), Exists.{succ u1} J (fun (i : J) => Exists.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i) (fun (xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i) => Eq.{succ (max u1 u2)} (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) x (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) i xi)))) -> (forall (i : J) (j : J) (xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i) (xj : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j), (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) i) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) i xi) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) j xj)) -> (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F k) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i k f xi) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j k g xj)))))) -> (CategoryTheory.Limits.IsColimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (t : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F), (forall (x : CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t), Exists.{succ u1} J (fun (i : J) => Exists.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i) (fun (xi : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i) => Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) x (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) i xi)))) -> (forall (i : J) (j : J) (xi : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i) (xj : Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j), (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t))) i) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) i xi) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) j xj)) -> (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) k) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i k f xi) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j k g xj)))))) -> (CategoryTheory.Limits.IsColimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.is_colimit_of CategoryTheory.Limits.Types.FilteredColimit.isColimitOfₓ'. -/
/-- Recognizing filtered colimits of types. -/
noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x = t.ι.app i xi)
(hinj :
@@ -429,6 +661,12 @@ noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x
variable [IsFilteredOrEmpty J]
+/- warning: category_theory.limits.types.filtered_colimit.rel_equiv -> CategoryTheory.Limits.Types.FilteredColimit.rel_equiv is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1], Equivalence.{max (succ u1) (succ (max u1 u2))} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F)
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1], Equivalence.{max (succ u2) (succ u1)} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F)
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.rel_equiv CategoryTheory.Limits.Types.FilteredColimit.rel_equivₓ'. -/
protected theorem rel_equiv : Equivalence (FilteredColimit.Rel F) :=
⟨fun x => ⟨x.1, 𝟙 x.1, 𝟙 x.1, rfl⟩, fun x y ⟨k, f, g, h⟩ => ⟨k, g, f, h.symm⟩,
fun x y z ⟨k, f, g, h⟩ ⟨k', f', g', h'⟩ =>
@@ -446,6 +684,12 @@ protected theorem rel_equiv : Equivalence (FilteredColimit.Rel F) :=
⟩⟩
#align category_theory.limits.types.filtered_colimit.rel_equiv CategoryTheory.Limits.Types.FilteredColimit.rel_equiv
+/- warning: category_theory.limits.types.filtered_colimit.rel_eq_eqv_gen_quot_rel -> CategoryTheory.Limits.Types.FilteredColimit.rel_eq_eqvGen_quot_rel is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1], Eq.{max (max (succ u1) (succ (max u1 u2))) 1} ((Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) -> Prop) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F) (EqvGen.{max u1 u2} (Sigma.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1], Eq.{max (succ u2) (succ u1)} ((Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) -> (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) -> Prop) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F) (EqvGen.{max u2 u1} (Sigma.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j)) (CategoryTheory.Limits.Types.Quot.Rel.{u1, u2} J _inst_1 F))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.rel_eq_eqv_gen_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_eq_eqvGen_quot_relₓ'. -/
protected theorem rel_eq_eqvGen_quot_rel : FilteredColimit.Rel F = EqvGen (Quot.Rel F) :=
by
ext (⟨j, x⟩⟨j', y⟩)
@@ -455,6 +699,12 @@ protected theorem rel_eq_eqvGen_quot_rel : FilteredColimit.Rel F = EqvGen (Quot.
exact EqvGen.mono (rel_of_quot_rel F)
#align category_theory.limits.types.filtered_colimit.rel_eq_eqv_gen_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_eq_eqvGen_quot_rel
+/- warning: category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux -> CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_aux is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {i : J} {j : J} {xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i} {xj : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j}, Iff (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) i) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)) i xi) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)) j xj)) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) i xi) (Sigma.mk.{u1, max u1 u2} J (fun (j : J) => CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j) j xj))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {i : J} {j : J} {xi : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i} {xj : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j}, Iff (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)))) i) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)) i xi) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F))) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.colimitCocone.{u1, u2} J _inst_1 F)) j xj)) (CategoryTheory.Limits.Types.FilteredColimit.Rel.{u1, u2} J _inst_1 F (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) i xi) (Sigma.mk.{u1, max u2 u1} J (fun (j : J) => Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j) j xj))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_auxₓ'. -/
theorem colimit_eq_iff_aux {i j : J} {xi : F.obj i} {xj : F.obj j} :
(colimitCocone F).ι.app i xi = (colimitCocone F).ι.app j xj ↔
FilteredColimit.Rel F ⟨i, xi⟩ ⟨j, xj⟩ :=
@@ -463,6 +713,12 @@ theorem colimit_eq_iff_aux {i j : J} {xi : F.obj i} {xj : F.obj j} :
rw [Quot.eq, filtered_colimit.rel_eq_eqv_gen_quot_rel]
#align category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_aux
+/- warning: category_theory.limits.types.filtered_colimit.is_colimit_eq_iff -> CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iff is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {t : CategoryTheory.Limits.Cocone.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F}, (CategoryTheory.Limits.IsColimit.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) -> (forall {i : J} {j : J} {xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i} {xj : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j}, Iff (Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) i) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) i xi) (CategoryTheory.NatTrans.app.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Functor.obj.{max u1 u2, max u1 u2, succ (max u1 u2), max u1 (max u1 u2) u1 (succ (max u1 u2))} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} (CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.category.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Functor.const.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) (CategoryTheory.Limits.Cocone.pt.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F t) j xj)) (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F k) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i k f xi) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j k g xj))))))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {t : CategoryTheory.Limits.Cocone.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F}, (CategoryTheory.Limits.IsColimit.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) -> (forall {i : J} {j : J} {xi : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i} {xj : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j}, Iff (Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, succ (max u2 u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t))) i) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) i xi) (CategoryTheory.NatTrans.app.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (Prefunctor.obj.{succ (max u2 u1), max (succ u1) (succ (max u2 u1)), max (succ u2) (succ u1), max (max u2 u1) (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (max u1 (succ u2) (succ u1)) u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, max u2 u1, max (succ u2) (succ u1), max (max u1 (succ u2) (succ u1)) u2 u1} Type.{max u1 u2} CategoryTheory.types.{max u2 u1} (CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.category.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) (CategoryTheory.Functor.const.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Limits.Cocone.pt.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t)) (CategoryTheory.Limits.Cocone.ι.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F t) j xj)) (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) k) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i k f xi) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j k g xj))))))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.is_colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iffₓ'. -/
theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj i} {xj : F.obj j} :
t.ι.app i xi = t.ι.app j xj ↔ ∃ (k : _)(f : i ⟶ k)(g : j ⟶ k), F.map f xi = F.map g xj :=
by
@@ -473,6 +729,12 @@ theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj
convert e'.to_equiv.apply_eq_iff_eq <;> rw [← e.hom.w] <;> rfl
#align category_theory.limits.types.filtered_colimit.is_colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iff
+/- warning: category_theory.limits.types.filtered_colimit.colimit_eq_iff -> CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff is a dubious translation:
+lean 3 declaration is
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {i : J} {j : J} {xi : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i} {xj : CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j}, Iff (Eq.{succ (max u1 u2)} (CategoryTheory.Limits.colimit.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) i xi) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u1 u2, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F (CategoryTheory.Limits.hasColimitOfHasColimitsOfShape.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 (CategoryTheory.Limits.hasColimitsOfShapeOfHasColimitsOfSize.{u1, u1, max u1 u2, succ (max u1 u2)} Type.{max u1 u2} CategoryTheory.types.{max u1 u2} J _inst_1 CategoryTheory.Limits.Types.hasColimitsOfSize.{u1, u2}) F) j xj)) (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{succ (max u1 u2)} (CategoryTheory.Functor.obj.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F k) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F i k f xi) (CategoryTheory.Functor.map.{u1, max u1 u2, u1, succ (max u1 u2)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u1 u2} F j k g xj)))))
+but is expected to have type
+ forall {J : Type.{u1}} [_inst_1 : CategoryTheory.SmallCategory.{u1} J] (F : CategoryTheory.Functor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1}) [_inst_2 : CategoryTheory.IsFilteredOrEmpty.{u1, u1} J _inst_1] {i : J} {j : J} {xi : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i} {xj : Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j}, Iff (Eq.{max (succ u2) (succ u1)} (CategoryTheory.Limits.colimit.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F)) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) i xi) (CategoryTheory.Limits.colimit.ι.{u1, u1, max u2 u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F (CategoryTheory.Limits.Types.hasColimit.{u1, u2} J _inst_1 F) j xj)) (Exists.{succ u1} J (fun (k : J) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) (fun (f : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) i k) => Exists.{succ u1} (Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) (fun (g : Quiver.Hom.{succ u1, u1} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) j k) => Eq.{max (succ u2) (succ u1)} (Prefunctor.obj.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) k) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) i k f xi) (Prefunctor.map.{succ u1, max (succ u2) (succ u1), u1, max (succ u2) (succ u1)} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} J (CategoryTheory.Category.toCategoryStruct.{u1, u1} J _inst_1)) Type.{max u1 u2} (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max (succ u2) (succ u1)} Type.{max u1 u2} CategoryTheory.types.{max u2 u1})) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u1, max (succ u2) (succ u1)} J _inst_1 Type.{max u1 u2} CategoryTheory.types.{max u2 u1} F) j k g xj)))))
+Case conversion may be inaccurate. Consider using '#align category_theory.limits.types.filtered_colimit.colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iffₓ'. -/
theorem colimit_eq_iff {i j : J} {xi : F.obj i} {xj : F.obj j} :
colimit.ι F i xi = colimit.ι F j xj ↔
∃ (k : _)(f : i ⟶ k)(g : j ⟶ k), F.map f xi = F.map g xj :=
@@ -485,29 +747,36 @@ variable {α β : Type u} (f : α ⟶ β)
section
+#print CategoryTheory.Limits.Types.Image /-
-- implementation of `has_image`
/-- the image of a morphism in Type is just `set.range f` -/
def Image : Type u :=
Set.range f
#align category_theory.limits.types.image CategoryTheory.Limits.Types.Image
+-/
instance [Inhabited α] : Inhabited (Image f) where default := ⟨f default, ⟨_, rfl⟩⟩
+#print CategoryTheory.Limits.Types.Image.ι /-
/-- the inclusion of `image f` into the target -/
def Image.ι : Image f ⟶ β :=
Subtype.val
#align category_theory.limits.types.image.ι CategoryTheory.Limits.Types.Image.ι
+-/
instance : Mono (Image.ι f) :=
(mono_iff_injective _).2 Subtype.val_injective
variable {f}
+#print CategoryTheory.Limits.Types.Image.lift /-
/-- the universal property for the image factorisation -/
noncomputable def Image.lift (F' : MonoFactorisation f) : Image f ⟶ F'.i :=
(fun x => F'.e (Classical.indefiniteDescription _ x.2).1 : Image f → F'.i)
#align category_theory.limits.types.image.lift CategoryTheory.Limits.Types.Image.lift
+-/
+#print CategoryTheory.Limits.Types.Image.lift_fac /-
theorem Image.lift_fac (F' : MonoFactorisation f) : Image.lift F' ≫ F'.m = Image.ι f :=
by
ext x
@@ -515,9 +784,11 @@ theorem Image.lift_fac (F' : MonoFactorisation f) : Image.lift F' ≫ F'.m = Ima
rw [F'.fac, (Classical.indefiniteDescription _ x.2).2]
rfl
#align category_theory.limits.types.image.lift_fac CategoryTheory.Limits.Types.Image.lift_fac
+-/
end
+#print CategoryTheory.Limits.Types.monoFactorisation /-
/-- the factorisation of any morphism in Type through a mono. -/
def monoFactorisation : MonoFactorisation f
where
@@ -525,13 +796,16 @@ def monoFactorisation : MonoFactorisation f
m := Image.ι f
e := Set.rangeFactorization f
#align category_theory.limits.types.mono_factorisation CategoryTheory.Limits.Types.monoFactorisation
+-/
+#print CategoryTheory.Limits.Types.isImage /-
/-- the facorisation through a mono has the universal property of the image. -/
noncomputable def isImage : IsImage (monoFactorisation f)
where
lift := Image.lift
lift_fac := Image.lift_fac
#align category_theory.limits.types.is_image CategoryTheory.Limits.Types.isImage
+-/
instance : HasImage f :=
HasImage.mk ⟨_, isImage f⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/3b267e70a936eebb21ab546f49a8df34dd300b25
@@ -530,7 +530,7 @@ def monoFactorisation : MonoFactorisation f
noncomputable def isImage : IsImage (monoFactorisation f)
where
lift := Image.lift
- lift_fac' := Image.lift_fac
+ lift_fac := Image.lift_fac
#align category_theory.limits.types.is_image CategoryTheory.Limits.Types.isImage
instance : HasImage f :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -40,7 +40,7 @@ implemented as flat sections of a pi type
-/
def limitCone (F : J ⥤ Type max v u) : Cone F
where
- x := F.sections
+ pt := F.sections
π := { app := fun j u => u.val j }
#align category_theory.limits.types.limit_cone CategoryTheory.Limits.Types.limitCone
@@ -75,13 +75,13 @@ instance : HasLimits (Type u) :=
/-- The equivalence between a limiting cone of `F` in `Type u` and the "concrete" definition as the
sections of `F`.
-/
-def isLimitEquivSections {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) : c.x ≃ F.sections :=
+def isLimitEquivSections {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) : c.pt ≃ F.sections :=
(IsLimit.conePointUniqueUpToIso t (limitConeIsLimit F)).toEquiv
#align category_theory.limits.types.is_limit_equiv_sections CategoryTheory.Limits.Types.isLimitEquivSections
@[simp]
theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) (j : J)
- (x : c.x) : ((isLimitEquivSections t) x : ∀ j, F.obj j) j = c.π.app j x :=
+ (x : c.pt) : ((isLimitEquivSections t) x : ∀ j, F.obj j) j = c.π.app j x :=
rfl
#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_apply
@@ -182,7 +182,7 @@ theorem Limit.w_apply {F : J ⥤ Type max v u} {j j' : J} {x : limit F} (f : j
#align category_theory.limits.types.limit.w_apply CategoryTheory.Limits.Types.Limit.w_apply
@[simp]
-theorem Limit.lift_π_apply (F : J ⥤ Type max v u) (s : Cone F) (j : J) (x : s.x) :
+theorem Limit.lift_π_apply (F : J ⥤ Type max v u) (s : Cone F) (j : J) (x : s.pt) :
limit.π F j (limit.lift F s x) = s.π.app j x :=
congr_fun (limit.lift_π s j) x
#align category_theory.limits.types.limit.lift_π_apply CategoryTheory.Limits.Types.Limit.lift_π_apply
@@ -200,7 +200,7 @@ theorem Limit.w_apply' {F : J ⥤ Type v} {j j' : J} {x : limit F} (f : j ⟶ j'
#align category_theory.limits.types.limit.w_apply' CategoryTheory.Limits.Types.Limit.w_apply'
@[simp]
-theorem Limit.lift_π_apply' (F : J ⥤ Type v) (s : Cone F) (j : J) (x : s.x) :
+theorem Limit.lift_π_apply' (F : J ⥤ Type v) (s : Cone F) (j : J) (x : s.pt) :
limit.π F j (limit.lift F s x) = s.π.app j x :=
congr_fun (limit.lift_π s j) x
#align category_theory.limits.types.limit.lift_π_apply' CategoryTheory.Limits.Types.Limit.lift_π_apply'
@@ -233,7 +233,7 @@ implemented as a quotient of a sigma type
-/
def colimitCocone (F : J ⥤ Type max v u) : Cocone F
where
- x := Quot F
+ pt := Quot F
ι :=
{ app := fun j x => Quot.mk _ ⟨j, x⟩
naturality' := fun j j' f => funext fun x => Eq.symm (Quot.sound ⟨f, rfl⟩) }
@@ -343,7 +343,7 @@ theorem colimit_eq {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj
simpa using congr_arg (colimit_equiv_quot F) w
#align category_theory.limits.types.colimit_eq CategoryTheory.Limits.Types.colimit_eq
-theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimit t) (x : t.x) :
+theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimit t) (x : t.pt) :
∃ j y, t.ι.app j y = x :=
by
suffices (fun x : t.X => ULift.up (∃ j y, t.ι.app j y = x)) = fun _ => ULift.up True
@@ -395,7 +395,7 @@ theorem eqvGen_quot_rel_of_rel (x y : Σj, F.obj j) :
attribute [local elab_without_expected_type] nat_trans.app
/-- Recognizing filtered colimits of types. -/
-noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.x, ∃ i xi, x = t.ι.app i xi)
+noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x = t.ι.app i xi)
(hinj :
∀ i j xi xj,
t.ι.app i xi = t.ι.app j xj → ∃ (k : _)(f : i ⟶ k)(g : j ⟶ k), F.map f xi = F.map g xj) :
@@ -468,7 +468,7 @@ theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj
by
let t' := colimitCocone F
let e : t' ≅ t := IsColimit.uniqueUpToIso (colimitCoconeIsColimit F) ht
- let e' : t'.x ≅ t.x := (Cocones.forget _).mapIso e
+ let e' : t'.pt ≅ t.pt := (Cocones.forget _).mapIso e
refine' Iff.trans _ (colimit_eq_iff_aux F)
convert e'.to_equiv.apply_eq_iff_eq <;> rw [← e.hom.w] <;> rfl
#align category_theory.limits.types.filtered_colimit.is_colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iff
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -50,7 +50,7 @@ attribute [local elab_without_expected_type] congr_fun
def limitConeIsLimit (F : J ⥤ Type max v u) : IsLimit (limitCone F)
where
lift s v := ⟨fun j => s.π.app j v, fun j j' f => congr_fun (Cone.w s f) _⟩
- uniq' := by
+ uniq := by
intros
ext (x j)
exact congr_fun (w j) x
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Create the module Mathlib.CategoryTheory.Limits.IsConnected
.
The main theorem states that the colimit of singletons is a singleton if and only if the index category is connected.
This theorem will be necessary for the Freyd-Mitchell embedding theorem.
@@ -617,6 +617,11 @@ theorem jointly_surjective' (x : colimit F) :
jointly_surjective F (colimit.isColimit F) x
#align category_theory.limits.types.jointly_surjective' CategoryTheory.Limits.Types.jointly_surjective'
+/-- If a colimit is nonempty, also its index category is nonempty. -/
+theorem nonempty_of_nonempty_colimit {F : J ⥤ Type u} [HasColimit F] :
+ Nonempty (colimit F) → Nonempty J :=
+ Nonempty.map <| Sigma.fst ∘ Quot.out ∘ (colimitEquivQuot F).toFun
+
variable {α β : Type u} (f : α ⟶ β)
section
@@ -24,9 +24,6 @@ and the type `lim Hom(F·, X)`.
-/
-set_option autoImplicit true
-
-
open CategoryTheory CategoryTheory.Limits
universe v u w
@@ -206,7 +203,7 @@ More specifically, when `UnivLE.{v, u}`, the category `Type u` has all `v`-small
See <https://stacks.math.columbia.edu/tag/002U>.
-/
-instance (priority := 1300) hasLimitsOfSize [UnivLE.{v, u}] : HasLimitsOfSize.{w', v} (Type u) where
+instance (priority := 1300) hasLimitsOfSize [UnivLE.{v, u}] : HasLimitsOfSize.{w, v} (Type u) where
has_limits_of_shape _ := { }
#align category_theory.limits.types.has_limits_of_size CategoryTheory.Limits.Types.hasLimitsOfSize
@@ -471,7 +468,7 @@ instance hasColimitsOfShape [Small.{u} J] : HasColimitsOfShape J (Type u) where
See <https://stacks.math.columbia.edu/tag/002U>.
-/
instance (priority := 1300) hasColimitsOfSize [UnivLE.{v, u}] :
- HasColimitsOfSize.{w', v} (Type u) where
+ HasColimitsOfSize.{w, v} (Type u) where
#align category_theory.limits.types.has_colimits_of_size CategoryTheory.Limits.Types.hasColimitsOfSize
section instances
@@ -352,7 +352,7 @@ See `CategoryTheory.Limits.Types.Quot`.
def Quot.Rel (F : J ⥤ Type u) : (Σ j, F.obj j) → (Σ j, F.obj j) → Prop := fun p p' =>
∃ f : p.1 ⟶ p'.1, p'.2 = F.map f p.2
--- porting note (#10927): removed @[nolint has_nonempty_instance]
+-- porting note (#5171): removed @[nolint has_nonempty_instance]
/-- A quotient type implementing the colimit of a functor `F : J ⥤ Type u`,
as pairs `⟨j, x⟩` where `x : F.obj j`, modulo the equivalence relation generated by
`⟨j, x⟩ ~ ⟨j', x'⟩` whenever there is a morphism `f : j ⟶ j'` so `F.map f x = x'`.
@@ -62,30 +62,23 @@ noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x
∀ i j xi xj,
t.ι.app i xi = t.ι.app j xj → ∃ (k : _) (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj) :
IsColimit t := by
- -- Strategy: Prove that the map from "the" colimit of F (defined above) to t.X
- -- is a bijection.
- apply IsColimit.ofIsoColimit (colimit.isColimit F)
- refine' Cocones.ext (Equiv.toIso (Equiv.ofBijective _ _)) _
- · exact colimit.desc F t
- · constructor
- · show Function.Injective _
- intro a b h
- rcases jointly_surjective F (colimit.isColimit F) a with ⟨i, xi, rfl⟩
- rcases jointly_surjective F (colimit.isColimit F) b with ⟨j, xj, rfl⟩
- replace h : (colimit.ι F i ≫ colimit.desc F t) xi = (colimit.ι F j ≫ colimit.desc F t) xj := h
- rw [colimit.ι_desc, colimit.ι_desc] at h
- rcases hinj i j xi xj h with ⟨k, f, g, h'⟩
- change colimit.ι F i xi = colimit.ι F j xj
- rw [← colimit.w F f, ← colimit.w F g]
- change colimit.ι F k (F.map f xi) = colimit.ι F k (F.map g xj)
- rw [h']
- · show Function.Surjective _
- intro x
- rcases hsurj x with ⟨i, xi, rfl⟩
- use colimit.ι F i xi
- apply Colimit.ι_desc_apply
- · intro j
- apply colimit.ι_desc
+ let α : t.pt → J := fun x => (hsurj x).choose
+ let f : ∀ (x : t.pt), F.obj (α x) := fun x => (hsurj x).choose_spec.choose
+ have hf : ∀ (x : t.pt), x = t.ι.app _ (f x) := fun x => (hsurj x).choose_spec.choose_spec
+ exact
+ { desc := fun s x => s.ι.app _ (f x)
+ fac := fun s j => by
+ ext y
+ obtain ⟨k, l, g, eq⟩ := hinj _ _ _ _ (hf (t.ι.app j y))
+ have h := congr_fun (s.ι.naturality g) (f (t.ι.app j y))
+ have h' := congr_fun (s.ι.naturality l) y
+ dsimp at h h' ⊢
+ rw [← h, ← eq, h']
+ uniq := fun s m hm => by
+ ext x
+ dsimp
+ nth_rw 1 [hf x]
+ rw [← hm, types_comp_apply] }
#align category_theory.limits.types.filtered_colimit.is_colimit_of CategoryTheory.Limits.Types.FilteredColimit.isColimitOf
variable [IsFilteredOrEmpty J]
In this PR, it is shown that if a functor G : J ⥤ C
to a concrete category has a limit and that forget C
is corepresentable, then G ⋙ forget C).sections
is small. As the corepresentability property holds in many concrete categories (e.g. groups, abelian groups) and that we already know since #11420 that limits exist under the smallness assumption in such categories, then this lemma may be used in future PR in order to show that usual forgetful functors preserve all limits (regardless of universe assumptions). This shall be convenient in the development of sheaves of modules.
In this PR, universes assumptions have also been generalized in the file Limits.Yoneda
. In order to do this, a small refactor of the file Limits.Types
was necessary. This introduces bijections like compCoyonedaSectionsEquiv (F : J ⥤ C) (X : C) : (F ⋙ coyoneda.obj (op X)).sections ≃ ((const J).obj X ⟶ F)
with general universe parameters. In order to reduce imports in Limits.Yoneda
, part of the file Limits.Types
was moved to a new file Limits.TypesFiltered
.
Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>
In this PR, it is shown that if a functor G : J ⥤ C
to a concrete category has a limit and that forget C
is corepresentable, then G ⋙ forget C).sections
is small. As the corepresentability property holds in many concrete categories (e.g. groups, abelian groups) and that we already know since #11420 that limits exist under the smallness assumption in such categories, then this lemma may be used in future PR in order to show that usual forgetful functors preserve all limits (regardless of universe assumptions). This shall be convenient in the development of sheaves of modules.
In this PR, universes assumptions have also been generalized in the file Limits.Yoneda
. In order to do this, a small refactor of the file Limits.Types
was necessary. This introduces bijections like compCoyonedaSectionsEquiv (F : J ⥤ C) (X : C) : (F ⋙ coyoneda.obj (op X)).sections ≃ ((const J).obj X ⟶ F)
with general universe parameters. In order to reduce imports in Limits.Yoneda
, part of the file Limits.Types
was moved to a new file Limits.TypesFiltered
.
Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>
@@ -6,7 +6,7 @@ Authors: Scott Morrison, Reid Barton
import Mathlib.Data.TypeMax
import Mathlib.Logic.UnivLE
import Mathlib.CategoryTheory.Limits.Shapes.Images
-import Mathlib.CategoryTheory.Filtered.Basic
+
#align_import category_theory.limits.types from "leanprover-community/mathlib"@"4aa2a2e17940311e47007f087c9df229e7f12942"
@@ -15,9 +15,6 @@ import Mathlib.CategoryTheory.Filtered.Basic
We show that the category of types has all (co)limits, by providing the usual concrete models.
-We also give a characterisation of filtered colimits in `Type`, via
-`colimit.ι F i xi = colimit.ι F j xj ↔ ∃ k (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj`.
-
Next, we prove the category of types has categorical images, and that these agree with the range of
a function.
@@ -147,12 +144,12 @@ noncomputable def limitConeIsLimit : IsLimit (limitCone.{v, u} F) where
end
-theorem hasLimit_iff_small_sections : HasLimit F ↔ Small.{u} F.sections :=
+end Small
+
+theorem hasLimit_iff_small_sections (F : J ⥤ Type u): HasLimit F ↔ Small.{u} F.sections :=
⟨fun _ => .mk ⟨_, ⟨(Equiv.ofBijective _
((isLimit_iff_bijective_sectionOfCone (limit.cone F)).mp ⟨limit.isLimit _⟩)).symm⟩⟩,
- fun _ => ⟨_, limitConeIsLimit F⟩⟩
-
-end Small
+ fun _ => ⟨_, Small.limitConeIsLimit F⟩⟩
-- TODO: If `UnivLE` works out well, we will eventually want to deprecate these
-- definitions, and probably as a first step put them in namespace or otherwise rename them.
@@ -198,7 +195,7 @@ section UnivLE
open UnivLE
instance hasLimit [Small.{u} J] (F : J ⥤ Type u) : HasLimit F :=
- (Small.hasLimit_iff_small_sections F).mpr inferInstance
+ (hasLimit_iff_small_sections F).mpr inferInstance
instance hasLimitsOfShape [Small.{u} J] : HasLimitsOfShape J (Type u) where
@@ -623,124 +620,6 @@ theorem jointly_surjective' (x : colimit F) :
jointly_surjective F (colimit.isColimit F) x
#align category_theory.limits.types.jointly_surjective' CategoryTheory.Limits.Types.jointly_surjective'
-namespace FilteredColimit
-
-/- For filtered colimits of types, we can give an explicit description
- of the equivalence relation generated by the relation used to form
- the colimit. -/
-
-/-- An alternative relation on `Σ j, F.obj j`,
-which generates the same equivalence relation as we use to define the colimit in `Type` above,
-but that is more convenient when working with filtered colimits.
-
-Elements in `F.obj j` and `F.obj j'` are equivalent if there is some `k : J` to the right
-where their images are equal.
--/
-protected def Rel (x y : Σ j, F.obj j) : Prop :=
- ∃ (k : _) (f : x.1 ⟶ k) (g : y.1 ⟶ k), F.map f x.2 = F.map g y.2
-#align category_theory.limits.types.filtered_colimit.rel CategoryTheory.Limits.Types.FilteredColimit.Rel
-
-theorem rel_of_quot_rel (x y : Σ j, F.obj j) :
- Quot.Rel F x y → FilteredColimit.Rel.{v, u} F x y :=
- fun ⟨f, h⟩ => ⟨y.1, f, 𝟙 y.1, by rw [← h, FunctorToTypes.map_id_apply]⟩
-#align category_theory.limits.types.filtered_colimit.rel_of_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel
-
-theorem eqvGen_quot_rel_of_rel (x y : Σ j, F.obj j) :
- FilteredColimit.Rel.{v, u} F x y → EqvGen (Quot.Rel F) x y := fun ⟨k, f, g, h⟩ => by
- refine' EqvGen.trans _ ⟨k, F.map f x.2⟩ _ _ _
- · exact (EqvGen.rel _ _ ⟨f, rfl⟩)
- · exact (EqvGen.symm _ _ (EqvGen.rel _ _ ⟨g, h⟩))
-#align category_theory.limits.types.filtered_colimit.eqv_gen_quot_rel_of_rel CategoryTheory.Limits.Types.FilteredColimit.eqvGen_quot_rel_of_rel
-
---attribute [local elab_without_expected_type] nat_trans.app
-
-/-- Recognizing filtered colimits of types. -/
-noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x = t.ι.app i xi)
- (hinj :
- ∀ i j xi xj,
- t.ι.app i xi = t.ι.app j xj → ∃ (k : _) (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj) :
- IsColimit t := by
- -- Strategy: Prove that the map from "the" colimit of F (defined above) to t.X
- -- is a bijection.
- apply IsColimit.ofIsoColimit (colimit.isColimit F)
- refine' Cocones.ext (Equiv.toIso (Equiv.ofBijective _ _)) _
- · exact colimit.desc F t
- · constructor
- · show Function.Injective _
- intro a b h
- rcases jointly_surjective F (colimit.isColimit F) a with ⟨i, xi, rfl⟩
- rcases jointly_surjective F (colimit.isColimit F) b with ⟨j, xj, rfl⟩
- replace h : (colimit.ι F i ≫ colimit.desc F t) xi = (colimit.ι F j ≫ colimit.desc F t) xj := h
- rw [colimit.ι_desc, colimit.ι_desc] at h
- rcases hinj i j xi xj h with ⟨k, f, g, h'⟩
- change colimit.ι F i xi = colimit.ι F j xj
- rw [← colimit.w F f, ← colimit.w F g]
- change colimit.ι F k (F.map f xi) = colimit.ι F k (F.map g xj)
- rw [h']
- · show Function.Surjective _
- intro x
- rcases hsurj x with ⟨i, xi, rfl⟩
- use colimit.ι F i xi
- apply Colimit.ι_desc_apply
- · intro j
- apply colimit.ι_desc
-#align category_theory.limits.types.filtered_colimit.is_colimit_of CategoryTheory.Limits.Types.FilteredColimit.isColimitOf
-
-variable [IsFilteredOrEmpty J]
-
-protected theorem rel_equiv : _root_.Equivalence (FilteredColimit.Rel.{v, u} F) where
- refl x := ⟨x.1, 𝟙 x.1, 𝟙 x.1, rfl⟩
- symm := fun ⟨k, f, g, h⟩ => ⟨k, g, f, h.symm⟩
- trans {x y z} := fun ⟨k, f, g, h⟩ ⟨k', f', g', h'⟩ =>
- let ⟨l, fl, gl, _⟩ := IsFilteredOrEmpty.cocone_objs k k'
- let ⟨m, n, hn⟩ := IsFilteredOrEmpty.cocone_maps (g ≫ fl) (f' ≫ gl)
- ⟨m, f ≫ fl ≫ n, g' ≫ gl ≫ n,
- calc
- F.map (f ≫ fl ≫ n) x.2 = F.map (fl ≫ n) (F.map f x.2) := by simp
- _ = F.map (fl ≫ n) (F.map g y.2) := by rw [h]
- _ = F.map ((g ≫ fl) ≫ n) y.2 := by simp
- _ = F.map ((f' ≫ gl) ≫ n) y.2 := by rw [hn]
- _ = F.map (gl ≫ n) (F.map f' y.2) := by simp
- _ = F.map (gl ≫ n) (F.map g' z.2) := by rw [h']
- _ = F.map (g' ≫ gl ≫ n) z.2 := by simp⟩
-#align category_theory.limits.types.filtered_colimit.rel_equiv CategoryTheory.Limits.Types.FilteredColimit.rel_equiv
-
-protected theorem rel_eq_eqvGen_quot_rel :
- FilteredColimit.Rel.{v, u} F = EqvGen (Quot.Rel F) := by
- ext ⟨j, x⟩ ⟨j', y⟩
- constructor
- · apply eqvGen_quot_rel_of_rel
- · rw [← (FilteredColimit.rel_equiv F).eqvGen_iff]
- exact EqvGen.mono (rel_of_quot_rel F)
-#align category_theory.limits.types.filtered_colimit.rel_eq_eqv_gen_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_eq_eqvGen_quot_rel
-
-theorem colimit_eq_iff_aux {i j : J} {xi : F.obj i} {xj : F.obj j} :
- (colimitCocone F).ι.app i xi = (colimitCocone F).ι.app j xj ↔
- FilteredColimit.Rel.{v, u} F ⟨i, xi⟩ ⟨j, xj⟩ := by
- dsimp
- rw [← (equivShrink _).symm.injective.eq_iff, Equiv.symm_apply_apply, Equiv.symm_apply_apply,
- Quot.eq, FilteredColimit.rel_eq_eqvGen_quot_rel]
-#align category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_aux
-
-theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj i} {xj : F.obj j} :
- t.ι.app i xi = t.ι.app j xj ↔ ∃ (k : _) (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj := by
- refine' Iff.trans _ (colimit_eq_iff_aux F)
- rw [← (IsColimit.coconePointUniqueUpToIso ht (colimitCoconeIsColimit F)).toEquiv.injective.eq_iff]
- convert Iff.rfl
- · exact (congrFun
- (IsColimit.comp_coconePointUniqueUpToIso_hom ht (colimitCoconeIsColimit F) _) xi).symm
- · exact (congrFun
- (IsColimit.comp_coconePointUniqueUpToIso_hom ht (colimitCoconeIsColimit F) _) xj).symm
-#align category_theory.limits.types.filtered_colimit.is_colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iff
-
-theorem colimit_eq_iff {i j : J} {xi : F.obj i} {xj : F.obj j} :
- colimit.ι F i xi = colimit.ι F j xj ↔
- ∃ (k : _) (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj :=
- isColimit_eq_iff _ (colimit.isColimit F)
-#align category_theory.limits.types.filtered_colimit.colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff
-
-end FilteredColimit
-
variable {α β : Type u} (f : α ⟶ β)
section
@@ -809,16 +688,65 @@ end Types
open Functor Opposite
+section
+
+variable {J C : Type*} [Category J] [Category C]
+
+/-- Sections of `F ⋙ coyoneda.obj (op X)` identify to natural
+transformations `(const J).obj X ⟶ F`. -/
+@[simps]
+def compCoyonedaSectionsEquiv (F : J ⥤ C) (X : C) :
+ (F ⋙ coyoneda.obj (op X)).sections ≃ ((const J).obj X ⟶ F) where
+ toFun s :=
+ { app := fun j => s.val j
+ naturality := fun j j' f => by
+ dsimp
+ rw [Category.id_comp]
+ exact (s.property f).symm }
+ invFun τ := ⟨τ.app, fun {j j'} f => by simpa using (τ.naturality f).symm⟩
+ left_inv _ := rfl
+ right_inv _ := rfl
+
+/-- Sections of `F.op ⋙ yoneda.obj X` identify to natural
+transformations `F ⟶ (const J).obj X`. -/
+@[simps]
+def opCompYonedaSectionsEquiv (F : J ⥤ C) (X : C) :
+ (F.op ⋙ yoneda.obj X).sections ≃ (F ⟶ (const J).obj X) where
+ toFun s :=
+ { app := fun j => s.val (op j)
+ naturality := fun j j' f => by
+ dsimp
+ rw [Category.comp_id]
+ exact (s.property f.op) }
+ invFun τ := ⟨fun j => τ.app j.unop, fun {j j'} f => by simp [τ.naturality f.unop]⟩
+ left_inv _ := rfl
+ right_inv _ := rfl
+
+/-- Sections of `F ⋙ yoneda.obj X` identify to natural
+transformations `(const J).obj X ⟶ F`. -/
+@[simps]
+def compYonedaSectionsEquiv (F : J ⥤ Cᵒᵖ) (X : C) :
+ (F ⋙ yoneda.obj X).sections ≃ ((const J).obj (op X) ⟶ F) where
+ toFun s :=
+ { app := fun j => (s.val j).op
+ naturality := fun j j' f => by
+ dsimp
+ rw [Category.id_comp]
+ exact Quiver.Hom.unop_inj (s.property f).symm }
+ invFun τ := ⟨fun j => (τ.app j).unop,
+ fun {j j'} f => Quiver.Hom.op_inj (by simpa using (τ.naturality f).symm)⟩
+ left_inv _ := rfl
+ right_inv _ := rfl
+
+end
+
variable {J : Type v} [SmallCategory J] {C : Type u} [Category.{v} C]
/-- A cone on `F` with cone point `X` is the same as an element of `lim Hom(X, F·)`. -/
-@[simps]
+@[simps!]
noncomputable def limitCompCoyonedaIsoCone (F : J ⥤ C) (X : C) :
- limit (F ⋙ coyoneda.obj (op X)) ≅ ((const J).obj X ⟶ F) where
- hom := fun x => ⟨fun j => limit.π (F ⋙ coyoneda.obj (op X)) j x,
- fun j j' f => by simpa using (congrFun (limit.w (F ⋙ coyoneda.obj (op X)) f) x).symm⟩
- inv := fun ι => Types.Limit.mk _ (fun j => ι.app j)
- fun j j' f => by simpa using (ι.naturality f).symm
+ limit (F ⋙ coyoneda.obj (op X)) ≅ ((const J).obj X ⟶ F) :=
+ ((Types.limitEquivSections _).trans (compCoyonedaSectionsEquiv F X)).toIso
/-- A cone on `F` with cone point `X` is the same as an element of `lim Hom(X, F·)`,
naturally in `X`. -/
@@ -836,12 +764,10 @@ noncomputable def whiskeringLimYonedaIsoCones : whiskeringLeft _ _ _ ⋙
NatIso.ofComponents coyonedaCompLimIsoCones
/-- A cocone on `F` with cocone point `X` is the same as an element of `lim Hom(F·, X)`. -/
-@[simps]
+@[simps!]
noncomputable def limitCompYonedaIsoCocone (F : J ⥤ C) (X : C) :
- limit (F.op ⋙ yoneda.obj X) ≅ (F ⟶ (const J).obj X) where
- hom := fun x => ⟨fun j => limit.π (F.op ⋙ yoneda.obj X) (Opposite.op j) x,
- fun j j' f => by simpa using congrFun (limit.w (F.op ⋙ yoneda.obj X) f.op) x⟩
- inv := fun ι => Types.Limit.mk _ (fun j => ι.app j.unop) (by simp)
+ limit (F.op ⋙ yoneda.obj X) ≅ (F ⟶ (const J).obj X) :=
+ ((Types.limitEquivSections _).trans (opCompYonedaSectionsEquiv F X)).toIso
/-- A cocone on `F` with cocone point `X` is the same as an element of `lim Hom(F·, X)`,
naturally in `X`. -/
@@ -200,6 +200,8 @@ open UnivLE
instance hasLimit [Small.{u} J] (F : J ⥤ Type u) : HasLimit F :=
(Small.hasLimit_iff_small_sections F).mpr inferInstance
+instance hasLimitsOfShape [Small.{u} J] : HasLimitsOfShape J (Type u) where
+
/--
The category of types has all limits.
@@ -211,23 +211,23 @@ instance (priority := 1300) hasLimitsOfSize [UnivLE.{v, u}] : HasLimitsOfSize.{w
has_limits_of_shape _ := { }
#align category_theory.limits.types.has_limits_of_size CategoryTheory.Limits.Types.hasLimitsOfSize
-variable [Small.{u} J]
+variable (F : J ⥤ Type u) [HasLimit F]
+
/-- The equivalence between the abstract limit of `F` in `TypeMax.{v, u}`
and the "concrete" definition as the sections of `F`.
-/
-noncomputable def limitEquivSections (F : J ⥤ Type u) :
- (@limit _ _ _ _ F (hasLimit F) : Type u) ≃ F.sections :=
+noncomputable def limitEquivSections : limit F ≃ F.sections :=
isLimitEquivSections (limit.isLimit F)
#align category_theory.limits.types.limit_equiv_sections CategoryTheory.Limits.Types.limitEquivSections
@[simp]
-theorem limitEquivSections_apply (F : J ⥤ Type u) (x : limit F) (j : J) :
+theorem limitEquivSections_apply (x : limit F) (j : J) :
((limitEquivSections F) x : ∀ j, F.obj j) j = limit.π F j x :=
isLimitEquivSections_apply _ _ _
#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_apply
@[simp]
-theorem limitEquivSections_symm_apply (F : J ⥤ Type u) (x : F.sections) (j : J) :
+theorem limitEquivSections_symm_apply (x : F.sections) (j : J) :
limit.π F j ((limitEquivSections F).symm x) = (x : ∀ j, F.obj j) j :=
isLimitEquivSections_symm_apply _ _ _
#align category_theory.limits.types.limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.limitEquivSections_symm_apply
@@ -244,15 +244,14 @@ theorem limitEquivSections_symm_apply (F : J ⥤ Type u) (x : F.sections) (j : J
/-- Construct a term of `limit F : Type u` from a family of terms `x : Π j, F.obj j`
which are "coherent": `∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j'`.
-/
-noncomputable def Limit.mk (F : J ⥤ Type u) (x : ∀ j, F.obj j)
- (h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') : (limit F : Type u) :=
+noncomputable def Limit.mk (x : ∀ j, F.obj j) (h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') :
+ limit F :=
(limitEquivSections F).symm ⟨x, h _ _⟩
#align category_theory.limits.types.limit.mk CategoryTheory.Limits.Types.Limit.mk
@[simp]
-theorem Limit.π_mk (F : J ⥤ Type u) (x : ∀ j, F.obj j)
- (h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') (j) :
- limit.π F j (Limit.mk F x h) = x j := by
+theorem Limit.π_mk (x : ∀ j, F.obj j) (h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') (j) :
+ limit.π F j (Limit.mk F x h) = x j := by
dsimp [Limit.mk]
simp
#align category_theory.limits.types.limit.π_mk CategoryTheory.Limits.Types.Limit.π_mk
@@ -268,8 +267,7 @@ theorem Limit.π_mk (F : J ⥤ Type u) (x : ∀ j, F.obj j)
-- PROJECT: prove this for concrete categories where the forgetful functor preserves limits
@[ext]
-theorem limit_ext (F : J ⥤ Type u) (x y : limit F)
- (w : ∀ j, limit.π F j x = limit.π F j y) : x = y := by
+theorem limit_ext (x y : limit F) (w : ∀ j, limit.π F j x = limit.π F j y) : x = y := by
apply (limitEquivSections F).injective
ext j
simp [w j]
@@ -281,8 +279,7 @@ theorem limit_ext' (F : J ⥤ Type v) (x y : limit F) (w : ∀ j, limit.π F j x
limit_ext F x y w
#align category_theory.limits.types.limit_ext' CategoryTheory.Limits.Types.limit_ext'
-theorem limit_ext_iff (F : J ⥤ Type u) (x y : limit F) :
- x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
+theorem limit_ext_iff (x y : limit F) : x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
⟨fun t _ => t ▸ rfl, limit_ext _ _ _⟩
#align category_theory.limits.types.limit_ext_iff CategoryTheory.Limits.Types.limit_ext_iff
@@ -296,20 +293,21 @@ theorem limit_ext_iff' (F : J ⥤ Type v) (x y : limit F) :
-- PROJECT: prove these for any concrete category where the forgetful functor preserves limits?
-- Porting note (#11119): @[simp] was removed because the linter said it was useless
--@[simp]
-theorem Limit.w_apply {F : J ⥤ Type u} {j j' : J} {x : limit F} (f : j ⟶ j') :
+variable {F} in
+theorem Limit.w_apply {j j' : J} {x : limit F} (f : j ⟶ j') :
F.map f (limit.π F j x) = limit.π F j' x :=
congr_fun (limit.w F f) x
#align category_theory.limits.types.limit.w_apply CategoryTheory.Limits.Types.Limit.w_apply
-- Porting note (#11119): @[simp] was removed because the linter said it was useless
-theorem Limit.lift_π_apply (F : J ⥤ Type u) (s : Cone F) (j : J) (x : s.pt) :
+theorem Limit.lift_π_apply (s : Cone F) (j : J) (x : s.pt) :
limit.π F j (limit.lift F s x) = s.π.app j x :=
congr_fun (limit.lift_π s j) x
#align category_theory.limits.types.limit.lift_π_apply CategoryTheory.Limits.Types.Limit.lift_π_apply
-- Porting note (#11119): @[simp] was removed because the linter said it was useless
-theorem Limit.map_π_apply {F G : J ⥤ Type u} (α : F ⟶ G) (j : J) (x : limit F) :
- limit.π G j (limMap α x) = α.app j (limit.π F j x) :=
+theorem Limit.map_π_apply {F G : J ⥤ Type u} [HasLimit F] [HasLimit G] (α : F ⟶ G) (j : J)
+ (x : limit F) : limit.π G j (limMap α x) = α.app j (limit.π F j x) :=
congr_fun (limMap_π α j) x
#align category_theory.limits.types.limit.map_π_apply CategoryTheory.Limits.Types.Limit.map_π_apply
@@ -461,6 +459,9 @@ theorem hasColimit_iff_small_quot (F : J ⥤ Type u) : HasColimit F ↔ Small.{u
((isColimit_iff_bijective_desc (colimit.cocone F)).mp ⟨colimit.isColimit _⟩))⟩⟩,
fun _ => ⟨_, colimitCoconeIsColimit F⟩⟩
+theorem small_quot_of_hasColimit (F : J ⥤ Type u) [HasColimit F] : Small.{u} (Quot F) :=
+ (hasColimit_iff_small_quot F).mp inferInstance
+
instance hasColimit [Small.{u} J] (F : J ⥤ Type u) : HasColimit F :=
(hasColimit_iff_small_quot F).mpr inferInstance
@@ -514,45 +515,48 @@ def colimitCoconeIsColimit (F : J ⥤ TypeMax.{v, u}) : IsColimit (colimitCocone
end TypeMax
-variable [Small.{u} J]
+variable (F : J ⥤ Type u) [HasColimit F]
+
+attribute [local instance] small_quot_of_hasColimit
/-- The equivalence between the abstract colimit of `F` in `Type u`
and the "concrete" definition as a quotient.
-/
-noncomputable def colimitEquivQuot (F : J ⥤ Type u) : colimit F ≃ Quot F :=
+noncomputable def colimitEquivQuot : colimit F ≃ Quot F :=
(IsColimit.coconePointUniqueUpToIso
(colimit.isColimit F) (colimitCoconeIsColimit F)).toEquiv.trans (equivShrink _).symm
#align category_theory.limits.types.colimit_equiv_quot CategoryTheory.Limits.Types.colimitEquivQuot
@[simp]
-theorem colimitEquivQuot_symm_apply (F : J ⥤ Type u) (j : J) (x : F.obj j) :
+theorem colimitEquivQuot_symm_apply (j : J) (x : F.obj j) :
(colimitEquivQuot F).symm (Quot.mk _ ⟨j, x⟩) = colimit.ι F j x :=
congrFun (IsColimit.comp_coconePointUniqueUpToIso_inv (colimit.isColimit F) _ _) x
#align category_theory.limits.types.colimit_equiv_quot_symm_apply CategoryTheory.Limits.Types.colimitEquivQuot_symm_apply
@[simp]
-theorem colimitEquivQuot_apply (F : J ⥤ Type u) (j : J) (x : F.obj j) :
+theorem colimitEquivQuot_apply (j : J) (x : F.obj j) :
(colimitEquivQuot F) (colimit.ι F j x) = Quot.mk _ ⟨j, x⟩ := by
apply (colimitEquivQuot F).symm.injective
simp
#align category_theory.limits.types.colimit_equiv_quot_apply CategoryTheory.Limits.Types.colimitEquivQuot_apply
-- Porting note (#11119): @[simp] was removed because the linter said it was useless
-theorem Colimit.w_apply {F : J ⥤ Type u} {j j' : J} {x : F.obj j} (f : j ⟶ j') :
+variable {F} in
+theorem Colimit.w_apply {j j' : J} {x : F.obj j} (f : j ⟶ j') :
colimit.ι F j' (F.map f x) = colimit.ι F j x :=
congr_fun (colimit.w F f) x
#align category_theory.limits.types.colimit.w_apply CategoryTheory.Limits.Types.Colimit.w_apply
-- Porting note (#11119): @[simp] was removed because the linter said it was useless
-theorem Colimit.ι_desc_apply (F : J ⥤ Type u) (s : Cocone F) (j : J) (x : F.obj j) :
+theorem Colimit.ι_desc_apply (s : Cocone F) (j : J) (x : F.obj j) :
colimit.desc F s (colimit.ι F j x) = s.ι.app j x :=
congr_fun (colimit.ι_desc s j) x
#align category_theory.limits.types.colimit.ι_desc_apply CategoryTheory.Limits.Types.Colimit.ι_desc_apply
-- Porting note (#11119): @[simp] was removed because the linter said it was useless
-theorem Colimit.ι_map_apply {F G : J ⥤ Type u} (α : F ⟶ G) (j : J) (x : F.obj j) :
- colim.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
+theorem Colimit.ι_map_apply {F G : J ⥤ Type u} [HasColimitsOfShape J (Type u)] (α : F ⟶ G) (j : J)
+ (x : F.obj j) : colim.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
congr_fun (colimit.ι_map α j) x
#align category_theory.limits.types.colimit.ι_map_apply CategoryTheory.Limits.Types.Colimit.ι_map_apply
@@ -574,19 +578,22 @@ theorem Colimit.ι_map_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x) :
congr_fun (colimit.ι_map α j) x
#align category_theory.limits.types.colimit.ι_map_apply' CategoryTheory.Limits.Types.Colimit.ι_map_apply'
-theorem colimit_sound {F : J ⥤ Type u} {j j' : J} {x : F.obj j} {x' : F.obj j'} (f : j ⟶ j')
+variable {F} in
+theorem colimit_sound {j j' : J} {x : F.obj j} {x' : F.obj j'} (f : j ⟶ j')
(w : F.map f x = x') : colimit.ι F j x = colimit.ι F j' x' := by
rw [← w, Colimit.w_apply]
#align category_theory.limits.types.colimit_sound CategoryTheory.Limits.Types.colimit_sound
-theorem colimit_sound' {F : J ⥤ Type u} {j j' : J} {x : F.obj j} {x' : F.obj j'} {j'' : J}
+variable {F} in
+theorem colimit_sound' {j j' : J} {x : F.obj j} {x' : F.obj j'} {j'' : J}
(f : j ⟶ j'') (f' : j' ⟶ j'') (w : F.map f x = F.map f' x') :
colimit.ι F j x = colimit.ι F j' x' := by
rw [← colimit.w _ f, ← colimit.w _ f']
rw [types_comp_apply, types_comp_apply, w]
#align category_theory.limits.types.colimit_sound' CategoryTheory.Limits.Types.colimit_sound'
-theorem colimit_eq {F : J ⥤ Type u} {j j' : J} {x : F.obj j} {x' : F.obj j'}
+variable {F} in
+theorem colimit_eq {j j' : J} {x : F.obj j} {x' : F.obj j'}
(w : colimit.ι F j x = colimit.ι F j' x') :
EqvGen (Quot.Rel F) ⟨j, x⟩ ⟨j', x'⟩ := by
apply Quot.eq.1
@@ -607,8 +614,9 @@ theorem jointly_surjective (F : J ⥤ Type u) {t : Cocone F} (h : IsColimit t) (
∃ j y, t.ι.app j y = x := jointly_surjective_of_isColimit h x
#align category_theory.limits.types.jointly_surjective CategoryTheory.Limits.Types.jointly_surjective
+variable {F} in
/-- A variant of `jointly_surjective` for `x : colimit F`. -/
-theorem jointly_surjective' {F : J ⥤ Type u} (x : colimit F) :
+theorem jointly_surjective' (x : colimit F) :
∃ j y, colimit.ι F j y = x :=
jointly_surjective F (colimit.isColimit F) x
#align category_theory.limits.types.jointly_surjective' CategoryTheory.Limits.Types.jointly_surjective'
@@ -618,7 +626,6 @@ namespace FilteredColimit
/- For filtered colimits of types, we can give an explicit description
of the equivalence relation generated by the relation used to form
the colimit. -/
-variable (F : J ⥤ Type u)
/-- An alternative relation on `Σ j, F.obj j`,
which generates the same equivalence relation as we use to define the colimit in `Type` above,
This is a smaller version of #7020. Before this PR, for limits, we gave instances for small indexing categories, but for colimits, we gave instances for TypeMax
. This PR changes so that we give instances for small indexing categories in both cases. This is more general and also more uniform.
Co-authored-by: Joël Riou <rioujoel@gmail.com>
@@ -65,6 +65,11 @@ theorem isLimit_iff (c : Cone F) :
exact ⟨x, fun c j ↦ funext fun y ↦ (hx c y).1 j,
fun c f hf ↦ funext fun y ↦ (hx c y).2 (f y) (fun j ↦ congr_fun (hf j) y)⟩
+theorem isLimit_iff_bijective_sectionOfCone (c : Cone F) :
+ Nonempty (IsLimit c) ↔ (Types.sectionOfCone c).Bijective := by
+ simp_rw [isLimit_iff, Function.bijective_iff_existsUnique, Subtype.forall, F.sections_ext_iff,
+ sectionOfCone]
+
/-- The equivalence between a limiting cone of `F` in `Type u` and the "concrete" definition as the
sections of `F`. -/
noncomputable def isLimitEquivSections {c : Cone F} (t : IsLimit c) :
@@ -107,13 +112,17 @@ but for now they are useful glue for the later parts of the library.
namespace Small
-variable [Small.{u} J]
+variable (F : J ⥤ Type u)
+
+section
+
+variable [Small.{u} F.sections]
/-- (internal implementation) the limit cone of a functor,
implemented as flat sections of a pi type
-/
@[simps]
-noncomputable def limitCone (F : J ⥤ Type u) : Cone F where
+noncomputable def limitCone : Cone F where
pt := Shrink F.sections
π :=
{ app := fun j u => ((equivShrink F.sections).symm u).val j
@@ -122,13 +131,13 @@ noncomputable def limitCone (F : J ⥤ Type u) : Cone F where
simp }
@[ext]
-lemma limitCone_pt_ext (F : J ⥤ Type u) {x y : (limitCone F).pt}
+lemma limitCone_pt_ext {x y : (limitCone F).pt}
(w : (equivShrink F.sections).symm x = (equivShrink F.sections).symm y) : x = y := by
aesop
/-- (internal implementation) the fact that the proposed limit cone is the limit -/
@[simps]
-noncomputable def limitConeIsLimit (F : J ⥤ Type u) : IsLimit (limitCone.{v, u} F) where
+noncomputable def limitConeIsLimit : IsLimit (limitCone.{v, u} F) where
lift s v := equivShrink F.sections
{ val := fun j => s.π.app j v
property := fun f => congr_fun (Cone.w s f) _ }
@@ -136,6 +145,13 @@ noncomputable def limitConeIsLimit (F : J ⥤ Type u) : IsLimit (limitCone.{v, u
ext x j
simpa using congr_fun (w j) x
+end
+
+theorem hasLimit_iff_small_sections : HasLimit F ↔ Small.{u} F.sections :=
+ ⟨fun _ => .mk ⟨_, ⟨(Equiv.ofBijective _
+ ((isLimit_iff_bijective_sectionOfCone (limit.cone F)).mp ⟨limit.isLimit _⟩)).symm⟩⟩,
+ fun _ => ⟨_, limitConeIsLimit F⟩⟩
+
end Small
-- TODO: If `UnivLE` works out well, we will eventually want to deprecate these
@@ -182,9 +198,7 @@ section UnivLE
open UnivLE
instance hasLimit [Small.{u} J] (F : J ⥤ Type u) : HasLimit F :=
- HasLimit.mk
- { cone := Small.limitCone.{v, u} F
- isLimit := Small.limitConeIsLimit F }
+ (Small.hasLimit_iff_small_sections F).mpr inferInstance
/--
The category of types has all limits.
@@ -338,31 +352,153 @@ end instances
The relation defining the quotient type which implements the colimit of a functor `F : J ⥤ Type u`.
See `CategoryTheory.Limits.Types.Quot`.
-/
-def Quot.Rel (F : J ⥤ TypeMax.{v, u}) : (Σ j, F.obj j) → (Σ j, F.obj j) → Prop := fun p p' =>
+def Quot.Rel (F : J ⥤ Type u) : (Σ j, F.obj j) → (Σ j, F.obj j) → Prop := fun p p' =>
∃ f : p.1 ⟶ p'.1, p'.2 = F.map f p.2
-#align category_theory.limits.types.quot.rel CategoryTheory.Limits.Types.Quot.Rel
-- porting note (#10927): removed @[nolint has_nonempty_instance]
/-- A quotient type implementing the colimit of a functor `F : J ⥤ Type u`,
as pairs `⟨j, x⟩` where `x : F.obj j`, modulo the equivalence relation generated by
`⟨j, x⟩ ~ ⟨j', x'⟩` whenever there is a morphism `f : j ⟶ j'` so `F.map f x = x'`.
-/
-def Quot (F : J ⥤ TypeMax.{v, u}) : TypeMax.{v, u} :=
+def Quot (F : J ⥤ Type u) : Type (max v u) :=
_root_.Quot (Quot.Rel F)
-#align category_theory.limits.types.quot CategoryTheory.Limits.Types.Quot
+
+instance [Small.{u} J] (F : J ⥤ Type u) : Small.{u} (Quot F) :=
+ small_of_surjective (surjective_quot_mk _)
+
+/-- Inclusion into the quotient type implementing the colimit. -/
+def Quot.ι (F : J ⥤ Type u) (j : J) : F.obj j → Quot F :=
+ fun x => Quot.mk _ ⟨j, x⟩
+
+lemma Quot.jointly_surjective {F : J ⥤ Type u} (x : Quot F) : ∃ j y, x = Quot.ι F j y :=
+ Quot.ind (β := fun x => ∃ j y, x = Quot.ι F j y) (fun ⟨j, y⟩ => ⟨j, y, rfl⟩) x
+
+section
+
+variable {F : J ⥤ Type u} (c : Cocone F)
+
+/-- (implementation detail) Part of the universal property of the colimit cocone, but without
+ assuming that `Quot F` lives in the correct universe. -/
+def Quot.desc : Quot F → c.pt :=
+ Quot.lift (fun x => c.ι.app x.1 x.2) <| by
+ rintro ⟨j, x⟩ ⟨j', _⟩ ⟨φ : j ⟶ j', rfl : _ = F.map φ x⟩
+ exact congr_fun (c.ι.naturality φ).symm x
+
+@[simp]
+lemma Quot.ι_desc (j : J) (x : F.obj j) : Quot.desc c (Quot.ι F j x) = c.ι.app j x := rfl
+
+@[simp]
+lemma Quot.map_ι {j j' : J} {f : j ⟶ j'} (x : F.obj j) : Quot.ι F j' (F.map f x) = Quot.ι F j x :=
+ (Quot.sound ⟨f, rfl⟩).symm
+
+/-- (implementation detail) A function `Quot F → α` induces a cocone on `F` as long as the universes
+ work out. -/
+@[simps]
+def toCocone {α : Type u} (f : Quot F → α) : Cocone F where
+ pt := α
+ ι := { app := fun j => f ∘ Quot.ι F j }
+
+lemma Quot.desc_toCocone_desc {α : Type u} (f : Quot F → α) (hc : IsColimit c) (x : Quot F) :
+ hc.desc (toCocone f) (Quot.desc c x) = f x := by
+ obtain ⟨j, y, rfl⟩ := Quot.jointly_surjective x
+ simpa using congrFun (hc.fac _ j) y
+
+theorem isColimit_iff_bijective_desc : Nonempty (IsColimit c) ↔ (Quot.desc c).Bijective := by
+ classical
+ refine ⟨?_, ?_⟩
+ · refine fun ⟨hc⟩ => ⟨fun x y h => ?_, fun x => ?_⟩
+ · let f : Quot F → ULift.{u} Bool := fun z => ULift.up (x = z)
+ suffices f x = f y by simpa [f] using this
+ rw [← Quot.desc_toCocone_desc c f hc x, h, Quot.desc_toCocone_desc]
+ · let f₁ : c.pt ⟶ ULift.{u} Bool := fun _ => ULift.up true
+ let f₂ : c.pt ⟶ ULift.{u} Bool := fun x => ULift.up (∃ a, Quot.desc c a = x)
+ suffices f₁ = f₂ by simpa [f₁, f₂] using congrFun this x
+ refine hc.hom_ext fun j => funext fun x => ?_
+ simpa [f₁, f₂] using ⟨Quot.ι F j x, by simp⟩
+ · refine fun h => ⟨?_⟩
+ let e := Equiv.ofBijective _ h
+ have h : ∀ j x, e.symm (c.ι.app j x) = Quot.ι F j x :=
+ fun j x => e.injective (Equiv.ofBijective_apply_symm_apply _ _ _)
+ exact
+ { desc := fun s => Quot.desc s ∘ e.symm
+ fac := fun s j => by
+ ext x
+ simp [h]
+ uniq := fun s m hm => by
+ ext x
+ obtain ⟨x, rfl⟩ := e.surjective x
+ obtain ⟨j, x, rfl⟩ := Quot.jointly_surjective x
+ rw [← h, Equiv.apply_symm_apply]
+ simpa [h] using congrFun (hm j) x }
+
+end
/-- (internal implementation) the colimit cocone of a functor,
implemented as a quotient of a sigma type
-/
+@[simps]
+noncomputable def colimitCocone (F : J ⥤ Type u) [Small.{u} (Quot F)] : Cocone F where
+ pt := Shrink (Quot F)
+ ι :=
+ { app := fun j x => equivShrink.{u} _ (Quot.mk _ ⟨j, x⟩)
+ naturality := fun _ _ f => funext fun _ => congrArg _ (Quot.sound ⟨f, rfl⟩).symm }
+
+@[simp]
+theorem Quot.desc_colimitCocone (F : J ⥤ Type u) [Small.{u} (Quot F)] :
+ Quot.desc (colimitCocone F) = equivShrink.{u} (Quot F) := by
+ ext ⟨j, x⟩
+ rfl
+
+/-- (internal implementation) the fact that the proposed colimit cocone is the colimit -/
+noncomputable def colimitCoconeIsColimit (F : J ⥤ Type u) [Small.{u} (Quot F)] :
+ IsColimit (colimitCocone F) :=
+ Nonempty.some <| by
+ rw [isColimit_iff_bijective_desc, Quot.desc_colimitCocone]
+ exact (equivShrink _).bijective
+
+theorem hasColimit_iff_small_quot (F : J ⥤ Type u) : HasColimit F ↔ Small.{u} (Quot F) :=
+ ⟨fun _ => .mk ⟨_, ⟨(Equiv.ofBijective _
+ ((isColimit_iff_bijective_desc (colimit.cocone F)).mp ⟨colimit.isColimit _⟩))⟩⟩,
+ fun _ => ⟨_, colimitCoconeIsColimit F⟩⟩
+
+instance hasColimit [Small.{u} J] (F : J ⥤ Type u) : HasColimit F :=
+ (hasColimit_iff_small_quot F).mpr inferInstance
+
+instance hasColimitsOfShape [Small.{u} J] : HasColimitsOfShape J (Type u) where
+
+/-- The category of types has all colimits.
+
+See <https://stacks.math.columbia.edu/tag/002U>.
+-/
+instance (priority := 1300) hasColimitsOfSize [UnivLE.{v, u}] :
+ HasColimitsOfSize.{w', v} (Type u) where
+#align category_theory.limits.types.has_colimits_of_size CategoryTheory.Limits.Types.hasColimitsOfSize
+
+section instances
+
+example : HasColimitsOfSize.{w, w, max v w, max (v + 1) (w + 1)} (TypeMax.{w, v}) := inferInstance
+example : HasColimitsOfSize.{w, w, max v w, max (v + 1) (w + 1)} (Type max v w) := inferInstance
+
+example : HasColimitsOfSize.{0, 0, v, v+1} (Type v) := inferInstance
+example : HasColimitsOfSize.{v, v, v, v+1} (Type v) := inferInstance
+
+example [UnivLE.{v, u}] : HasColimitsOfSize.{v, v, u, u+1} (Type u) := inferInstance
+
+end instances
+
+namespace TypeMax
+
+/-- (internal implementation) the colimit cocone of a functor,
+implemented as a quotient of a sigma type
+-/
+@[simps]
def colimitCocone (F : J ⥤ TypeMax.{v, u}) : Cocone F where
pt := Quot F
ι :=
- { app := fun j x => Quot.mk _ ⟨j, x⟩
- naturality := fun _ _ f => funext fun _ => Eq.symm (Quot.sound ⟨f, rfl⟩) }
+ { app := fun j x => Quot.mk (Quot.Rel F) ⟨j, x⟩
+ naturality := fun _ _ f => funext fun _ => (Quot.sound ⟨f, rfl⟩).symm }
#align category_theory.limits.types.colimit_cocone CategoryTheory.Limits.Types.colimitCocone
---attribute [local elab_with_expected_type] Quot.lift
-
/-- (internal implementation) the fact that the proposed colimit cocone is the colimit -/
def colimitCoconeIsColimit (F : J ⥤ TypeMax.{v, u}) : IsColimit (colimitCocone F) where
desc s :=
@@ -376,63 +512,46 @@ def colimitCoconeIsColimit (F : J ⥤ TypeMax.{v, u}) : IsColimit (colimitCocone
exact congr_fun (hm x.1) x.2
#align category_theory.limits.types.colimit_cocone_is_colimit CategoryTheory.Limits.Types.colimitCoconeIsColimit
-/-- The category of types has all colimits.
-
-See <https://stacks.math.columbia.edu/tag/002U>.
--/
-instance hasColimitsOfSize : HasColimitsOfSize.{w', v} TypeMax.{v, u} where
- has_colimits_of_shape _ :=
- { has_colimit := fun F =>
- HasColimit.mk
- { cocone := colimitCocone.{v, u} F
- isColimit := colimitCoconeIsColimit F } }
-#align category_theory.limits.types.has_colimits_of_size CategoryTheory.Limits.Types.hasColimitsOfSize
-
-instance : HasColimitsOfSize.{w', v} (Type v) := hasColimitsOfSize.{v, v}
-
-instance : HasColimits (Type u) :=
- Types.hasColimitsOfSize.{u, u, u}
-
-instance hasColimit (F : J ⥤ TypeMax.{v, u}) : HasColimit F :=
- (Types.hasColimitsOfSize.has_colimits_of_shape J).has_colimit F
+end TypeMax
-instance hasColimit' (F : J ⥤ Type v) : HasColimit F :=
- hasColimit.{v, v} F
+variable [Small.{u} J]
/-- The equivalence between the abstract colimit of `F` in `Type u`
and the "concrete" definition as a quotient.
-/
-noncomputable def colimitEquivQuot (F : J ⥤ TypeMax.{v, u}) : colimit F ≃ Quot F :=
- (IsColimit.coconePointUniqueUpToIso (colimit.isColimit F) (colimitCoconeIsColimit F)).toEquiv
+noncomputable def colimitEquivQuot (F : J ⥤ Type u) : colimit F ≃ Quot F :=
+ (IsColimit.coconePointUniqueUpToIso
+ (colimit.isColimit F) (colimitCoconeIsColimit F)).toEquiv.trans (equivShrink _).symm
#align category_theory.limits.types.colimit_equiv_quot CategoryTheory.Limits.Types.colimitEquivQuot
@[simp]
-theorem colimitEquivQuot_symm_apply (F : J ⥤ TypeMax.{v, u}) (j : J) (x : F.obj j) :
+theorem colimitEquivQuot_symm_apply (F : J ⥤ Type u) (j : J) (x : F.obj j) :
(colimitEquivQuot F).symm (Quot.mk _ ⟨j, x⟩) = colimit.ι F j x :=
- rfl
+ congrFun (IsColimit.comp_coconePointUniqueUpToIso_inv (colimit.isColimit F) _ _) x
+
#align category_theory.limits.types.colimit_equiv_quot_symm_apply CategoryTheory.Limits.Types.colimitEquivQuot_symm_apply
@[simp]
-theorem colimitEquivQuot_apply (F : J ⥤ TypeMax.{v, u}) (j : J) (x : F.obj j) :
+theorem colimitEquivQuot_apply (F : J ⥤ Type u) (j : J) (x : F.obj j) :
(colimitEquivQuot F) (colimit.ι F j x) = Quot.mk _ ⟨j, x⟩ := by
apply (colimitEquivQuot F).symm.injective
simp
#align category_theory.limits.types.colimit_equiv_quot_apply CategoryTheory.Limits.Types.colimitEquivQuot_apply
-- Porting note (#11119): @[simp] was removed because the linter said it was useless
-theorem Colimit.w_apply {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : F.obj j} (f : j ⟶ j') :
+theorem Colimit.w_apply {F : J ⥤ Type u} {j j' : J} {x : F.obj j} (f : j ⟶ j') :
colimit.ι F j' (F.map f x) = colimit.ι F j x :=
congr_fun (colimit.w F f) x
#align category_theory.limits.types.colimit.w_apply CategoryTheory.Limits.Types.Colimit.w_apply
-- Porting note (#11119): @[simp] was removed because the linter said it was useless
-theorem Colimit.ι_desc_apply (F : J ⥤ TypeMax.{v, u}) (s : Cocone F) (j : J) (x : F.obj j) :
+theorem Colimit.ι_desc_apply (F : J ⥤ Type u) (s : Cocone F) (j : J) (x : F.obj j) :
colimit.desc F s (colimit.ι F j x) = s.ι.app j x :=
congr_fun (colimit.ι_desc s j) x
#align category_theory.limits.types.colimit.ι_desc_apply CategoryTheory.Limits.Types.Colimit.ι_desc_apply
-- Porting note (#11119): @[simp] was removed because the linter said it was useless
-theorem Colimit.ι_map_apply {F G : J ⥤ TypeMax.{v, u}} (α : F ⟶ G) (j : J) (x : F.obj j) :
+theorem Colimit.ι_map_apply {F G : J ⥤ Type u} (α : F ⟶ G) (j : J) (x : F.obj j) :
colim.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
congr_fun (colimit.ι_map α j) x
#align category_theory.limits.types.colimit.ι_map_apply CategoryTheory.Limits.Types.Colimit.ι_map_apply
@@ -455,23 +574,23 @@ theorem Colimit.ι_map_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x) :
congr_fun (colimit.ι_map α j) x
#align category_theory.limits.types.colimit.ι_map_apply' CategoryTheory.Limits.Types.Colimit.ι_map_apply'
-theorem colimit_sound {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : F.obj j} {x' : F.obj j'} (f : j ⟶ j')
+theorem colimit_sound {F : J ⥤ Type u} {j j' : J} {x : F.obj j} {x' : F.obj j'} (f : j ⟶ j')
(w : F.map f x = x') : colimit.ι F j x = colimit.ι F j' x' := by
rw [← w, Colimit.w_apply]
#align category_theory.limits.types.colimit_sound CategoryTheory.Limits.Types.colimit_sound
-theorem colimit_sound' {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : F.obj j} {x' : F.obj j'} {j'' : J}
+theorem colimit_sound' {F : J ⥤ Type u} {j j' : J} {x : F.obj j} {x' : F.obj j'} {j'' : J}
(f : j ⟶ j'') (f' : j' ⟶ j'') (w : F.map f x = F.map f' x') :
colimit.ι F j x = colimit.ι F j' x' := by
rw [← colimit.w _ f, ← colimit.w _ f']
rw [types_comp_apply, types_comp_apply, w]
#align category_theory.limits.types.colimit_sound' CategoryTheory.Limits.Types.colimit_sound'
-theorem colimit_eq {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : F.obj j} {x' : F.obj j'}
+theorem colimit_eq {F : J ⥤ Type u} {j j' : J} {x : F.obj j} {x' : F.obj j'}
(w : colimit.ι F j x = colimit.ι F j' x') :
EqvGen (Quot.Rel F) ⟨j, x⟩ ⟨j', x'⟩ := by
apply Quot.eq.1
- simpa using congr_arg (colimitEquivQuot.{v, u} F) w
+ simpa using congr_arg (colimitEquivQuot F) w
#align category_theory.limits.types.colimit_eq CategoryTheory.Limits.Types.colimit_eq
theorem jointly_surjective_of_isColimit {F : J ⥤ Type u} {t : Cocone F} (h : IsColimit t)
@@ -484,12 +603,12 @@ theorem jointly_surjective_of_isColimit {F : J ⥤ Type u} {t : Cocone F} (h : I
exact (true_iff _).mpr (hx j y)
· exact fun he ↦ of_eq_true (congr_arg ULift.down <| congr_fun he x).symm rfl
-theorem jointly_surjective (F : J ⥤ TypeMax.{v, u}) {t : Cocone F} (h : IsColimit t) (x : t.pt) :
+theorem jointly_surjective (F : J ⥤ Type u) {t : Cocone F} (h : IsColimit t) (x : t.pt) :
∃ j y, t.ι.app j y = x := jointly_surjective_of_isColimit h x
#align category_theory.limits.types.jointly_surjective CategoryTheory.Limits.Types.jointly_surjective
/-- A variant of `jointly_surjective` for `x : colimit F`. -/
-theorem jointly_surjective' {F : J ⥤ TypeMax.{v, u}} (x : colimit F) :
+theorem jointly_surjective' {F : J ⥤ Type u} (x : colimit F) :
∃ j y, colimit.ι F j y = x :=
jointly_surjective F (colimit.isColimit F) x
#align category_theory.limits.types.jointly_surjective' CategoryTheory.Limits.Types.jointly_surjective'
@@ -499,7 +618,7 @@ namespace FilteredColimit
/- For filtered colimits of types, we can give an explicit description
of the equivalence relation generated by the relation used to form
the colimit. -/
-variable (F : J ⥤ TypeMax.{v, u})
+variable (F : J ⥤ Type u)
/-- An alternative relation on `Σ j, F.obj j`,
which generates the same equivalence relation as we use to define the colimit in `Type` above,
@@ -587,20 +706,22 @@ protected theorem rel_eq_eqvGen_quot_rel :
#align category_theory.limits.types.filtered_colimit.rel_eq_eqv_gen_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_eq_eqvGen_quot_rel
theorem colimit_eq_iff_aux {i j : J} {xi : F.obj i} {xj : F.obj j} :
- (colimitCocone.{v, u} F).ι.app i xi = (colimitCocone.{v, u} F).ι.app j xj ↔
+ (colimitCocone F).ι.app i xi = (colimitCocone F).ι.app j xj ↔
FilteredColimit.Rel.{v, u} F ⟨i, xi⟩ ⟨j, xj⟩ := by
- change Quot.mk _ _ = Quot.mk _ _ ↔ _
- rw [Quot.eq, FilteredColimit.rel_eq_eqvGen_quot_rel]
+ dsimp
+ rw [← (equivShrink _).symm.injective.eq_iff, Equiv.symm_apply_apply, Equiv.symm_apply_apply,
+ Quot.eq, FilteredColimit.rel_eq_eqvGen_quot_rel]
#align category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_aux
theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj i} {xj : F.obj j} :
t.ι.app i xi = t.ι.app j xj ↔ ∃ (k : _) (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj := by
- let t' := colimitCocone.{v, u} F
- let e : t' ≅ t := IsColimit.uniqueUpToIso (colimitCoconeIsColimit F) ht
- let e' : t'.pt ≅ t.pt := (Cocones.forget _).mapIso e
refine' Iff.trans _ (colimit_eq_iff_aux F)
- exact @Equiv.apply_eq_iff_eq _ _ e'.toEquiv ((colimitCocone.{v, u} F).ι.app i xi)
- ((colimitCocone.{v, u} F).ι.app j xj)
+ rw [← (IsColimit.coconePointUniqueUpToIso ht (colimitCoconeIsColimit F)).toEquiv.injective.eq_iff]
+ convert Iff.rfl
+ · exact (congrFun
+ (IsColimit.comp_coconePointUniqueUpToIso_hom ht (colimitCoconeIsColimit F) _) xi).symm
+ · exact (congrFun
+ (IsColimit.comp_coconePointUniqueUpToIso_hom ht (colimitCoconeIsColimit F) _) xj).symm
#align category_theory.limits.types.filtered_colimit.is_colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iff
theorem colimit_eq_iff {i j : J} {xi : F.obj i} {xj : F.obj j} :
@@ -226,7 +226,7 @@ theorem limitEquivSections_symm_apply (F : J ⥤ Type u) (x : F.sections) (j : J
-- isLimitEquivSections_symm_apply _ _ _
--#align category_theory.limits.types.limit_equiv_sections_symm_apply' CategoryTheory.Limits.Types.limitEquivSections_symm_apply'
--- Porting note: removed @[ext]
+-- Porting note (#11182): removed @[ext]
/-- Construct a term of `limit F : Type u` from a family of terms `x : Π j, F.obj j`
which are "coherent": `∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j'`.
-/
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -226,7 +226,7 @@ theorem limitEquivSections_symm_apply (F : J ⥤ Type u) (x : F.sections) (j : J
-- isLimitEquivSections_symm_apply _ _ _
--#align category_theory.limits.types.limit_equiv_sections_symm_apply' CategoryTheory.Limits.Types.limitEquivSections_symm_apply'
---porting note: removed @[ext]
+-- Porting note: removed @[ext]
/-- Construct a term of `limit F : Type u` from a family of terms `x : Π j, F.obj j`
which are "coherent": `∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j'`.
-/
@@ -280,20 +280,20 @@ theorem limit_ext_iff' (F : J ⥤ Type v) (x y : limit F) :
-- TODO: are there other limits lemmas that should have `_apply` versions?
-- Can we generate these like with `@[reassoc]`?
-- PROJECT: prove these for any concrete category where the forgetful functor preserves limits?
---porting note: @[simp] was removed because the linter said it was useless
+-- Porting note (#11119): @[simp] was removed because the linter said it was useless
--@[simp]
theorem Limit.w_apply {F : J ⥤ Type u} {j j' : J} {x : limit F} (f : j ⟶ j') :
F.map f (limit.π F j x) = limit.π F j' x :=
congr_fun (limit.w F f) x
#align category_theory.limits.types.limit.w_apply CategoryTheory.Limits.Types.Limit.w_apply
---porting note: @[simp] was removed because the linter said it was useless
+-- Porting note (#11119): @[simp] was removed because the linter said it was useless
theorem Limit.lift_π_apply (F : J ⥤ Type u) (s : Cone F) (j : J) (x : s.pt) :
limit.π F j (limit.lift F s x) = s.π.app j x :=
congr_fun (limit.lift_π s j) x
#align category_theory.limits.types.limit.lift_π_apply CategoryTheory.Limits.Types.Limit.lift_π_apply
---porting note: @[simp] was removed because the linter said it was useless
+-- Porting note (#11119): @[simp] was removed because the linter said it was useless
theorem Limit.map_π_apply {F G : J ⥤ Type u} (α : F ⟶ G) (j : J) (x : limit F) :
limit.π G j (limMap α x) = α.app j (limit.π F j x) :=
congr_fun (limMap_π α j) x
@@ -419,19 +419,19 @@ theorem colimitEquivQuot_apply (F : J ⥤ TypeMax.{v, u}) (j : J) (x : F.obj j)
simp
#align category_theory.limits.types.colimit_equiv_quot_apply CategoryTheory.Limits.Types.colimitEquivQuot_apply
---porting note: @[simp] was removed because the linter said it was useless
+-- Porting note (#11119): @[simp] was removed because the linter said it was useless
theorem Colimit.w_apply {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : F.obj j} (f : j ⟶ j') :
colimit.ι F j' (F.map f x) = colimit.ι F j x :=
congr_fun (colimit.w F f) x
#align category_theory.limits.types.colimit.w_apply CategoryTheory.Limits.Types.Colimit.w_apply
---porting note: @[simp] was removed because the linter said it was useless
+-- Porting note (#11119): @[simp] was removed because the linter said it was useless
theorem Colimit.ι_desc_apply (F : J ⥤ TypeMax.{v, u}) (s : Cocone F) (j : J) (x : F.obj j) :
colimit.desc F s (colimit.ι F j x) = s.ι.app j x :=
congr_fun (colimit.ι_desc s j) x
#align category_theory.limits.types.colimit.ι_desc_apply CategoryTheory.Limits.Types.Colimit.ι_desc_apply
---porting note: @[simp] was removed because the linter said it was useless
+-- Porting note (#11119): @[simp] was removed because the linter said it was useless
theorem Colimit.ι_map_apply {F G : J ⥤ TypeMax.{v, u}} (α : F ⟶ G) (j : J) (x : F.obj j) :
colim.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
congr_fun (colimit.ι_map α j) x
@@ -342,7 +342,7 @@ def Quot.Rel (F : J ⥤ TypeMax.{v, u}) : (Σ j, F.obj j) → (Σ j, F.obj j)
∃ f : p.1 ⟶ p'.1, p'.2 = F.map f p.2
#align category_theory.limits.types.quot.rel CategoryTheory.Limits.Types.Quot.Rel
--- porting note: removed @[nolint has_nonempty_instance]
+-- porting note (#10927): removed @[nolint has_nonempty_instance]
/-- A quotient type implementing the colimit of a functor `F : J ⥤ Type u`,
as pairs `⟨j, x⟩` where `x : F.obj j`, modulo the equivalence relation generated by
`⟨j, x⟩ ~ ⟨j', x'⟩` whenever there is a morphism `f : j ⟶ j'` so `F.map f x = x'`.
In this pull request, I have systematically eliminated the leading whitespace preceding the colon (:
) within all unlabelled or unclassified porting notes. This adjustment facilitates a more efficient review process for the remaining notes by ensuring no entries are overlooked due to formatting inconsistencies.
@@ -218,7 +218,7 @@ theorem limitEquivSections_symm_apply (F : J ⥤ Type u) (x : F.sections) (j : J
isLimitEquivSections_symm_apply _ _ _
#align category_theory.limits.types.limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.limitEquivSections_symm_apply
--- porting note : `limitEquivSections_symm_apply'` was removed because the linter
+-- Porting note: `limitEquivSections_symm_apply'` was removed because the linter
-- complains it is unnecessary
--@[simp]
--theorem limitEquivSections_symm_apply' (F : J ⥤ Type v) (x : F.sections) (j : J) :
@@ -243,7 +243,7 @@ theorem Limit.π_mk (F : J ⥤ Type u) (x : ∀ j, F.obj j)
simp
#align category_theory.limits.types.limit.π_mk CategoryTheory.Limits.Types.Limit.π_mk
--- porting note : `Limit.π_mk'` was removed because the linter complains it is unnecessary
+-- Porting note: `Limit.π_mk'` was removed because the linter complains it is unnecessary
--@[simp]
--theorem Limit.π_mk' (F : J ⥤ Type v) (x : ∀ j, F.obj j)
-- (h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') (j) :
We exhibit the natural isomorphism between cones on F
with cone point X
and the set lim Hom(X, F·)
and similarly the natural isomorphism between cocones on F
with cocone point X
and the set lim Hom(F·, X)
.
@@ -18,8 +18,13 @@ We show that the category of types has all (co)limits, by providing the usual co
We also give a characterisation of filtered colimits in `Type`, via
`colimit.ι F i xi = colimit.ι F j xj ↔ ∃ k (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj`.
-Finally, we prove the category of types has categorical images,
-and that these agree with the range of a function.
+Next, we prove the category of types has categorical images, and that these agree with the range of
+a function.
+
+Finally, we give the natural isomorphism between cones on `F` with cone point `X` and the type
+`lim Hom(X, F·)`, and similarly the natural isomorphism between cocones on `F` with cocone point `X`
+and the type `lim Hom(F·, X)`.
+
-/
set_option autoImplicit true
@@ -29,7 +34,9 @@ open CategoryTheory CategoryTheory.Limits
universe v u w
-namespace CategoryTheory.Limits.Types
+namespace CategoryTheory.Limits
+
+namespace Types
section limit_characterization
@@ -668,4 +675,57 @@ instance : HasImageMaps (Type u) where
simp only [Functor.id_obj, Functor.id_map, types_comp_apply] at p
erw [p, Classical.choose_spec x.2]⟩⟩) rfl
-end CategoryTheory.Limits.Types
+end Types
+
+open Functor Opposite
+
+variable {J : Type v} [SmallCategory J] {C : Type u} [Category.{v} C]
+
+/-- A cone on `F` with cone point `X` is the same as an element of `lim Hom(X, F·)`. -/
+@[simps]
+noncomputable def limitCompCoyonedaIsoCone (F : J ⥤ C) (X : C) :
+ limit (F ⋙ coyoneda.obj (op X)) ≅ ((const J).obj X ⟶ F) where
+ hom := fun x => ⟨fun j => limit.π (F ⋙ coyoneda.obj (op X)) j x,
+ fun j j' f => by simpa using (congrFun (limit.w (F ⋙ coyoneda.obj (op X)) f) x).symm⟩
+ inv := fun ι => Types.Limit.mk _ (fun j => ι.app j)
+ fun j j' f => by simpa using (ι.naturality f).symm
+
+/-- A cone on `F` with cone point `X` is the same as an element of `lim Hom(X, F·)`,
+ naturally in `X`. -/
+@[simps!]
+noncomputable def coyonedaCompLimIsoCones (F : J ⥤ C) :
+ coyoneda ⋙ (whiskeringLeft _ _ _).obj F ⋙ lim ≅ F.cones :=
+ NatIso.ofComponents (fun X => limitCompCoyonedaIsoCone F X.unop)
+
+variable (J) (C) in
+/-- A cone on `F` with cone point `X` is the same as an element of `lim Hom(X, F·)`,
+ naturally in `F` and `X`. -/
+@[simps!]
+noncomputable def whiskeringLimYonedaIsoCones : whiskeringLeft _ _ _ ⋙
+ (whiskeringRight _ _ _).obj lim ⋙ (whiskeringLeft _ _ _).obj coyoneda ≅ cones J C :=
+ NatIso.ofComponents coyonedaCompLimIsoCones
+
+/-- A cocone on `F` with cocone point `X` is the same as an element of `lim Hom(F·, X)`. -/
+@[simps]
+noncomputable def limitCompYonedaIsoCocone (F : J ⥤ C) (X : C) :
+ limit (F.op ⋙ yoneda.obj X) ≅ (F ⟶ (const J).obj X) where
+ hom := fun x => ⟨fun j => limit.π (F.op ⋙ yoneda.obj X) (Opposite.op j) x,
+ fun j j' f => by simpa using congrFun (limit.w (F.op ⋙ yoneda.obj X) f.op) x⟩
+ inv := fun ι => Types.Limit.mk _ (fun j => ι.app j.unop) (by simp)
+
+/-- A cocone on `F` with cocone point `X` is the same as an element of `lim Hom(F·, X)`,
+ naturally in `X`. -/
+@[simps!]
+noncomputable def yonedaCompLimIsoCocones (F : J ⥤ C) :
+ yoneda ⋙ (whiskeringLeft _ _ _).obj F.op ⋙ lim ≅ F.cocones :=
+ NatIso.ofComponents (limitCompYonedaIsoCocone F)
+
+variable (J) (C) in
+/-- A cocone on `F` with cocone point `X` is the same as an element of `lim Hom(F·, X)`,
+ naturally in `F` and `X`. -/
+@[simps!]
+noncomputable def opHomCompWhiskeringLimYonedaIsoCocones : opHom _ _ ⋙ whiskeringLeft _ _ _ ⋙
+ (whiskeringRight _ _ _).obj lim ⋙ (whiskeringLeft _ _ _).obj yoneda ≅ cocones J C :=
+ NatIso.ofComponents (fun F => yonedaCompLimIsoCocones F.unop)
+
+end CategoryTheory.Limits
@@ -27,13 +27,13 @@ set_option autoImplicit true
open CategoryTheory CategoryTheory.Limits
-universe v u
+universe v u w
namespace CategoryTheory.Limits.Types
section limit_characterization
-variable {J : Type v} [Category J] {F : J ⥤ Type u}
+variable {J : Type v} [Category.{w} J] {F : J ⥤ Type u}
/-- Given a section of a functor F into `Type*`,
construct a cone over F with `PUnit` as the cone point. -/
@@ -49,7 +49,7 @@ def sectionOfCone (c : Cone F) (x : c.pt) : F.sections :=
⟨fun j ↦ c.π.app j x, fun f ↦ congr_fun (c.π.naturality f).symm x⟩
theorem isLimit_iff (c : Cone F) :
- Nonempty (IsLimit c) ↔ ∀ s ∈ F.sections, ∃! x : c.pt, ∀ i, c.π.app i x = s i := by
+ Nonempty (IsLimit c) ↔ ∀ s ∈ F.sections, ∃! x : c.pt, ∀ j, c.π.app j x = s j := by
refine ⟨fun ⟨t⟩ s hs ↦ ?_, fun h ↦ ⟨?_⟩⟩
· let cs := coneOfSection hs
exact ⟨t.lift cs ⟨⟩, fun j ↦ congr_fun (t.fac cs j) ⟨⟩,
@@ -59,8 +59,7 @@ theorem isLimit_iff (c : Cone F) :
fun c f hf ↦ funext fun y ↦ (hx c y).2 (f y) (fun j ↦ congr_fun (hf j) y)⟩
/-- The equivalence between a limiting cone of `F` in `Type u` and the "concrete" definition as the
-sections of `F`.
--/
+ sections of `F`. -/
noncomputable def isLimitEquivSections {c : Cone F} (t : IsLimit c) :
c.pt ≃ F.sections where
toFun := sectionOfCone c
@@ -83,7 +82,7 @@ theorem isLimitEquivSections_symm_apply {c : Cone F} (t : IsLimit c)
end limit_characterization
-variable {J : Type v} [SmallCategory J]
+variable {J : Type v} [Category.{w} J]
/-! We now provide two distinct implementations in the category of types.
@@ -151,7 +150,7 @@ noncomputable def limitCone (F : J ⥤ TypeMax.{v, u}) : Cone F where
/-- (internal implementation) the fact that the proposed limit cone is the limit -/
@[simps]
-noncomputable def limitConeIsLimit (F : J ⥤ TypeMax.{v, u}) : IsLimit (limitCone.{v, u} F) where
+noncomputable def limitConeIsLimit (F : J ⥤ TypeMax.{v, u}) : IsLimit (limitCone F) where
lift s v :=
{ val := fun j => s.π.app j v
property := fun f => congr_fun (Cone.w s f) _ }
@@ -187,7 +186,7 @@ More specifically, when `UnivLE.{v, u}`, the category `Type u` has all `v`-small
See <https://stacks.math.columbia.edu/tag/002U>.
-/
-instance (priority := 1300) hasLimitsOfSize [UnivLE.{v, u}] : HasLimitsOfSize.{v} (Type u) where
+instance (priority := 1300) hasLimitsOfSize [UnivLE.{v, u}] : HasLimitsOfSize.{w', v} (Type u) where
has_limits_of_shape _ := { }
#align category_theory.limits.types.has_limits_of_size CategoryTheory.Limits.Types.hasLimitsOfSize
@@ -196,19 +195,19 @@ variable [Small.{u} J]
and the "concrete" definition as the sections of `F`.
-/
noncomputable def limitEquivSections (F : J ⥤ Type u) :
- (@limit _ _ _ _ F (hasLimit.{v, u} F) : Type u) ≃ F.sections :=
- isLimitEquivSections.{v, u} (limit.isLimit F)
+ (@limit _ _ _ _ F (hasLimit F) : Type u) ≃ F.sections :=
+ isLimitEquivSections (limit.isLimit F)
#align category_theory.limits.types.limit_equiv_sections CategoryTheory.Limits.Types.limitEquivSections
@[simp]
theorem limitEquivSections_apply (F : J ⥤ Type u) (x : limit F) (j : J) :
- ((limitEquivSections.{v, u} F) x : ∀ j, F.obj j) j = limit.π F j x :=
+ ((limitEquivSections F) x : ∀ j, F.obj j) j = limit.π F j x :=
isLimitEquivSections_apply _ _ _
#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_apply
@[simp]
theorem limitEquivSections_symm_apply (F : J ⥤ Type u) (x : F.sections) (j : J) :
- limit.π F j ((limitEquivSections.{v, u} F).symm x) = (x : ∀ j, F.obj j) j :=
+ limit.π F j ((limitEquivSections F).symm x) = (x : ∀ j, F.obj j) j :=
isLimitEquivSections_symm_apply _ _ _
#align category_theory.limits.types.limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.limitEquivSections_symm_apply
@@ -226,13 +225,13 @@ which are "coherent": `∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j'`.
-/
noncomputable def Limit.mk (F : J ⥤ Type u) (x : ∀ j, F.obj j)
(h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') : (limit F : Type u) :=
- (limitEquivSections.{v, u} F).symm ⟨x, h _ _⟩
+ (limitEquivSections F).symm ⟨x, h _ _⟩
#align category_theory.limits.types.limit.mk CategoryTheory.Limits.Types.Limit.mk
@[simp]
theorem Limit.π_mk (F : J ⥤ Type u) (x : ∀ j, F.obj j)
(h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') (j) :
- limit.π F j (Limit.mk.{v, u} F x h) = x j := by
+ limit.π F j (Limit.mk F x h) = x j := by
dsimp [Limit.mk]
simp
#align category_theory.limits.types.limit.π_mk CategoryTheory.Limits.Types.Limit.π_mk
@@ -250,7 +249,7 @@ theorem Limit.π_mk (F : J ⥤ Type u) (x : ∀ j, F.obj j)
@[ext]
theorem limit_ext (F : J ⥤ Type u) (x y : limit F)
(w : ∀ j, limit.π F j x = limit.π F j y) : x = y := by
- apply (limitEquivSections.{v, u} F).injective
+ apply (limitEquivSections F).injective
ext j
simp [w j]
#align category_theory.limits.types.limit_ext CategoryTheory.Limits.Types.limit_ext
@@ -258,17 +257,17 @@ theorem limit_ext (F : J ⥤ Type u) (x y : limit F)
@[ext]
theorem limit_ext' (F : J ⥤ Type v) (x y : limit F) (w : ∀ j, limit.π F j x = limit.π F j y) :
x = y :=
- limit_ext.{v, v} F x y w
+ limit_ext F x y w
#align category_theory.limits.types.limit_ext' CategoryTheory.Limits.Types.limit_ext'
theorem limit_ext_iff (F : J ⥤ Type u) (x y : limit F) :
x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
- ⟨fun t _ => t ▸ rfl, limit_ext.{v, u} _ _ _⟩
+ ⟨fun t _ => t ▸ rfl, limit_ext _ _ _⟩
#align category_theory.limits.types.limit_ext_iff CategoryTheory.Limits.Types.limit_ext_iff
theorem limit_ext_iff' (F : J ⥤ Type v) (x y : limit F) :
x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
- ⟨fun t _ => t ▸ rfl, limit_ext'.{v} _ _ _⟩
+ ⟨fun t _ => t ▸ rfl, limit_ext' _ _ _⟩
#align category_theory.limits.types.limit_ext_iff' CategoryTheory.Limits.Types.limit_ext_iff'
-- TODO: are there other limits lemmas that should have `_apply` versions?
@@ -342,14 +341,14 @@ as pairs `⟨j, x⟩` where `x : F.obj j`, modulo the equivalence relation gener
`⟨j, x⟩ ~ ⟨j', x'⟩` whenever there is a morphism `f : j ⟶ j'` so `F.map f x = x'`.
-/
def Quot (F : J ⥤ TypeMax.{v, u}) : TypeMax.{v, u} :=
- _root_.Quot (Quot.Rel.{v, u} F)
+ _root_.Quot (Quot.Rel F)
#align category_theory.limits.types.quot CategoryTheory.Limits.Types.Quot
/-- (internal implementation) the colimit cocone of a functor,
implemented as a quotient of a sigma type
-/
def colimitCocone (F : J ⥤ TypeMax.{v, u}) : Cocone F where
- pt := Quot.{v, u} F
+ pt := Quot F
ι :=
{ app := fun j x => Quot.mk _ ⟨j, x⟩
naturality := fun _ _ f => funext fun _ => Eq.symm (Quot.sound ⟨f, rfl⟩) }
@@ -358,7 +357,7 @@ def colimitCocone (F : J ⥤ TypeMax.{v, u}) : Cocone F where
--attribute [local elab_with_expected_type] Quot.lift
/-- (internal implementation) the fact that the proposed colimit cocone is the colimit -/
-def colimitCoconeIsColimit (F : J ⥤ TypeMax.{v, u}) : IsColimit (colimitCocone.{v, u} F) where
+def colimitCoconeIsColimit (F : J ⥤ TypeMax.{v, u}) : IsColimit (colimitCocone F) where
desc s :=
Quot.lift (fun p : Σj, F.obj j => s.ι.app p.1 p.2) fun ⟨j, x⟩ ⟨j', x'⟩ ⟨f, hf⟩ => by
dsimp at hf
@@ -374,7 +373,7 @@ def colimitCoconeIsColimit (F : J ⥤ TypeMax.{v, u}) : IsColimit (colimitCocone
See <https://stacks.math.columbia.edu/tag/002U>.
-/
-instance hasColimitsOfSize : HasColimitsOfSize.{v} TypeMax.{v, u} where
+instance hasColimitsOfSize : HasColimitsOfSize.{w', v} TypeMax.{v, u} where
has_colimits_of_shape _ :=
{ has_colimit := fun F =>
HasColimit.mk
@@ -382,11 +381,13 @@ instance hasColimitsOfSize : HasColimitsOfSize.{v} TypeMax.{v, u} where
isColimit := colimitCoconeIsColimit F } }
#align category_theory.limits.types.has_colimits_of_size CategoryTheory.Limits.Types.hasColimitsOfSize
+instance : HasColimitsOfSize.{w', v} (Type v) := hasColimitsOfSize.{v, v}
+
instance : HasColimits (Type u) :=
- Types.hasColimitsOfSize.{u, u}
+ Types.hasColimitsOfSize.{u, u, u}
instance hasColimit (F : J ⥤ TypeMax.{v, u}) : HasColimit F :=
- (Types.hasColimitsOfSize.{v, u}.has_colimits_of_shape J).has_colimit F
+ (Types.hasColimitsOfSize.has_colimits_of_shape J).has_colimit F
instance hasColimit' (F : J ⥤ Type v) : HasColimit F :=
hasColimit.{v, v} F
@@ -394,19 +395,19 @@ instance hasColimit' (F : J ⥤ Type v) : HasColimit F :=
/-- The equivalence between the abstract colimit of `F` in `Type u`
and the "concrete" definition as a quotient.
-/
-noncomputable def colimitEquivQuot (F : J ⥤ TypeMax.{v, u}) : colimit F ≃ Quot.{v, u} F :=
+noncomputable def colimitEquivQuot (F : J ⥤ TypeMax.{v, u}) : colimit F ≃ Quot F :=
(IsColimit.coconePointUniqueUpToIso (colimit.isColimit F) (colimitCoconeIsColimit F)).toEquiv
#align category_theory.limits.types.colimit_equiv_quot CategoryTheory.Limits.Types.colimitEquivQuot
@[simp]
theorem colimitEquivQuot_symm_apply (F : J ⥤ TypeMax.{v, u}) (j : J) (x : F.obj j) :
- (colimitEquivQuot.{v, u} F).symm (Quot.mk _ ⟨j, x⟩) = colimit.ι F j x :=
+ (colimitEquivQuot F).symm (Quot.mk _ ⟨j, x⟩) = colimit.ι F j x :=
rfl
#align category_theory.limits.types.colimit_equiv_quot_symm_apply CategoryTheory.Limits.Types.colimitEquivQuot_symm_apply
@[simp]
theorem colimitEquivQuot_apply (F : J ⥤ TypeMax.{v, u}) (j : J) (x : F.obj j) :
- (colimitEquivQuot.{v, u} F) (colimit.ι F j x) = Quot.mk _ ⟨j, x⟩ := by
+ (colimitEquivQuot F) (colimit.ι F j x) = Quot.mk _ ⟨j, x⟩ := by
apply (colimitEquivQuot F).symm.injective
simp
#align category_theory.limits.types.colimit_equiv_quot_apply CategoryTheory.Limits.Types.colimitEquivQuot_apply
@@ -425,7 +426,7 @@ theorem Colimit.ι_desc_apply (F : J ⥤ TypeMax.{v, u}) (s : Cocone F) (j : J)
--porting note: @[simp] was removed because the linter said it was useless
theorem Colimit.ι_map_apply {F G : J ⥤ TypeMax.{v, u}} (α : F ⟶ G) (j : J) (x : F.obj j) :
- colim.{v, v}.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
+ colim.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
congr_fun (colimit.ι_map α j) x
#align category_theory.limits.types.colimit.ι_map_apply CategoryTheory.Limits.Types.Colimit.ι_map_apply
@@ -449,7 +450,7 @@ theorem Colimit.ι_map_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x) :
theorem colimit_sound {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : F.obj j} {x' : F.obj j'} (f : j ⟶ j')
(w : F.map f x = x') : colimit.ι F j x = colimit.ι F j' x' := by
- rw [← w, Colimit.w_apply.{v, u}]
+ rw [← w, Colimit.w_apply]
#align category_theory.limits.types.colimit_sound CategoryTheory.Limits.Types.colimit_sound
theorem colimit_sound' {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : F.obj j} {x' : F.obj j'} {j'' : J}
@@ -461,27 +462,29 @@ theorem colimit_sound' {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : F.obj j} {x' :
theorem colimit_eq {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : F.obj j} {x' : F.obj j'}
(w : colimit.ι F j x = colimit.ι F j' x') :
- EqvGen (Quot.Rel.{v, u} F) ⟨j, x⟩ ⟨j', x'⟩ := by
+ EqvGen (Quot.Rel F) ⟨j, x⟩ ⟨j', x'⟩ := by
apply Quot.eq.1
simpa using congr_arg (colimitEquivQuot.{v, u} F) w
#align category_theory.limits.types.colimit_eq CategoryTheory.Limits.Types.colimit_eq
+theorem jointly_surjective_of_isColimit {F : J ⥤ Type u} {t : Cocone F} (h : IsColimit t)
+ (x : t.pt) : ∃ j y, t.ι.app j y = x := by
+ by_contra hx
+ simp_rw [not_exists] at hx
+ apply (_ : (fun _ ↦ ULift.up True) ≠ (⟨· ≠ x⟩))
+ · refine h.hom_ext fun j ↦ ?_
+ ext y
+ exact (true_iff _).mpr (hx j y)
+ · exact fun he ↦ of_eq_true (congr_arg ULift.down <| congr_fun he x).symm rfl
+
theorem jointly_surjective (F : J ⥤ TypeMax.{v, u}) {t : Cocone F} (h : IsColimit t) (x : t.pt) :
- ∃ j y, t.ι.app j y = x := by
- suffices (fun x : t.pt => ULift.up (∃ j y, t.ι.app j y = x)) = fun _ => ULift.up.{max v u} True by
- have := congr_fun this x
- simpa using congr_arg ULift.down this
- refine' h.hom_ext _
- intro j
- funext y
- simp only [Functor.const_obj_obj, types_comp_apply, ULift.up_inj, eq_iff_iff, iff_true]
- exact ⟨j, y, rfl⟩
+ ∃ j y, t.ι.app j y = x := jointly_surjective_of_isColimit h x
#align category_theory.limits.types.jointly_surjective CategoryTheory.Limits.Types.jointly_surjective
/-- A variant of `jointly_surjective` for `x : colimit F`. -/
theorem jointly_surjective' {F : J ⥤ TypeMax.{v, u}} (x : colimit F) :
- ∃ j y, colimit.ι F j y = x := by
- exact jointly_surjective.{v, u} F (colimit.isColimit F) x
+ ∃ j y, colimit.ι F j y = x :=
+ jointly_surjective F (colimit.isColimit F) x
#align category_theory.limits.types.jointly_surjective' CategoryTheory.Limits.Types.jointly_surjective'
namespace FilteredColimit
@@ -503,12 +506,12 @@ protected def Rel (x y : Σ j, F.obj j) : Prop :=
#align category_theory.limits.types.filtered_colimit.rel CategoryTheory.Limits.Types.FilteredColimit.Rel
theorem rel_of_quot_rel (x y : Σ j, F.obj j) :
- Quot.Rel.{v, u} F x y → FilteredColimit.Rel.{v, u} F x y :=
+ Quot.Rel F x y → FilteredColimit.Rel.{v, u} F x y :=
fun ⟨f, h⟩ => ⟨y.1, f, 𝟙 y.1, by rw [← h, FunctorToTypes.map_id_apply]⟩
#align category_theory.limits.types.filtered_colimit.rel_of_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel
theorem eqvGen_quot_rel_of_rel (x y : Σ j, F.obj j) :
- FilteredColimit.Rel.{v, u} F x y → EqvGen (Quot.Rel.{v, u} F) x y := fun ⟨k, f, g, h⟩ => by
+ FilteredColimit.Rel.{v, u} F x y → EqvGen (Quot.Rel F) x y := fun ⟨k, f, g, h⟩ => by
refine' EqvGen.trans _ ⟨k, F.map f x.2⟩ _ _ _
· exact (EqvGen.rel _ _ ⟨f, rfl⟩)
· exact (EqvGen.symm _ _ (EqvGen.rel _ _ ⟨g, h⟩))
@@ -530,8 +533,8 @@ noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x
· constructor
· show Function.Injective _
intro a b h
- rcases jointly_surjective.{v, u} F (colimit.isColimit F) a with ⟨i, xi, rfl⟩
- rcases jointly_surjective.{v, u} F (colimit.isColimit F) b with ⟨j, xj, rfl⟩
+ rcases jointly_surjective F (colimit.isColimit F) a with ⟨i, xi, rfl⟩
+ rcases jointly_surjective F (colimit.isColimit F) b with ⟨j, xj, rfl⟩
replace h : (colimit.ι F i ≫ colimit.desc F t) xi = (colimit.ι F j ≫ colimit.desc F t) xj := h
rw [colimit.ι_desc, colimit.ι_desc] at h
rcases hinj i j xi xj h with ⟨k, f, g, h'⟩
@@ -543,7 +546,7 @@ noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x
intro x
rcases hsurj x with ⟨i, xi, rfl⟩
use colimit.ι F i xi
- apply Colimit.ι_desc_apply.{v, u}
+ apply Colimit.ι_desc_apply
· intro j
apply colimit.ι_desc
#align category_theory.limits.types.filtered_colimit.is_colimit_of CategoryTheory.Limits.Types.FilteredColimit.isColimitOf
@@ -568,7 +571,7 @@ protected theorem rel_equiv : _root_.Equivalence (FilteredColimit.Rel.{v, u} F)
#align category_theory.limits.types.filtered_colimit.rel_equiv CategoryTheory.Limits.Types.FilteredColimit.rel_equiv
protected theorem rel_eq_eqvGen_quot_rel :
- FilteredColimit.Rel.{v, u} F = EqvGen (Quot.Rel.{v, u} F) := by
+ FilteredColimit.Rel.{v, u} F = EqvGen (Quot.Rel F) := by
ext ⟨j, x⟩ ⟨j', y⟩
constructor
· apply eqvGen_quot_rel_of_rel
@@ -588,7 +591,7 @@ theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj
let t' := colimitCocone.{v, u} F
let e : t' ≅ t := IsColimit.uniqueUpToIso (colimitCoconeIsColimit F) ht
let e' : t'.pt ≅ t.pt := (Cocones.forget _).mapIso e
- refine' Iff.trans _ (colimit_eq_iff_aux.{v, u} F)
+ refine' Iff.trans _ (colimit_eq_iff_aux F)
exact @Equiv.apply_eq_iff_eq _ _ e'.toEquiv ((colimitCocone.{v, u} F).ι.app i xi)
((colimitCocone.{v, u} F).ι.app j xj)
#align category_theory.limits.types.filtered_colimit.is_colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iff
@@ -596,7 +599,7 @@ theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj
theorem colimit_eq_iff {i j : J} {xi : F.obj i} {xj : F.obj j} :
colimit.ι F i xi = colimit.ι F j xj ↔
∃ (k : _) (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj :=
- isColimit_eq_iff.{v, u} _ (colimit.isColimit F)
+ isColimit_eq_iff _ (colimit.isColimit F)
#align category_theory.limits.types.filtered_colimit.colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff
end FilteredColimit
Switch from the strong version of UnivLE ∀ α : Type max u v, Small.{v} α
to the weaker version ∀ α : Type u, Small.{v} α
.
Transfer Has/Preserves/Reflects(Co)limitsOfSize from a larger size (higher universe) to a smaller size.
In a few places it's now necessary to make the type explicit (for Lean to infer the Small
instance, I think).
Also prove a characterization of UnivLE and the totality of the UnivLE relation.
A pared down version of #7695.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
@@ -87,8 +87,8 @@ variable {J : Type v} [SmallCategory J]
/-! We now provide two distinct implementations in the category of types.
-The first, in the `CategoryTheory.Limits.Types.UnivLE` namespace,
-assumes `UnivLE.{v, u}` and constructs `v`-small limits in `Type u`.
+The first, in the `CategoryTheory.Limits.Types.Small` namespace,
+assumes `Small.{u} J` and constructs `J`-indexed limits in `Type u`.
The second, in the `CategoryTheory.Limits.Types.TypeMax` namespace
constructs limits for functors `F : J ⥤ TypeMax.{v, u}`, for `J : Type v`.
@@ -99,9 +99,9 @@ Hopefully we might be able to entirely remove the `TypeMax` constructions,
but for now they are useful glue for the later parts of the library.
-/
-namespace UnivLE
+namespace Small
-variable [UnivLE.{v, u}]
+variable [Small.{u} J]
/-- (internal implementation) the limit cone of a functor,
implemented as flat sections of a pi type
@@ -110,27 +110,27 @@ implemented as flat sections of a pi type
noncomputable def limitCone (F : J ⥤ Type u) : Cone F where
pt := Shrink F.sections
π :=
- { app := fun j u => ((equivShrink _).symm u).val j
+ { app := fun j u => ((equivShrink F.sections).symm u).val j
naturality := fun j j' f => by
funext x
simp }
@[ext]
lemma limitCone_pt_ext (F : J ⥤ Type u) {x y : (limitCone F).pt}
- (w : (equivShrink _).symm x = (equivShrink _).symm y) : x = y := by
+ (w : (equivShrink F.sections).symm x = (equivShrink F.sections).symm y) : x = y := by
aesop
/-- (internal implementation) the fact that the proposed limit cone is the limit -/
@[simps]
noncomputable def limitConeIsLimit (F : J ⥤ Type u) : IsLimit (limitCone.{v, u} F) where
- lift s v := (equivShrink _)
+ lift s v := equivShrink F.sections
{ val := fun j => s.π.app j v
property := fun f => congr_fun (Cone.w s f) _ }
uniq := fun _ _ w => by
ext x j
simpa using congr_fun (w j) x
-end UnivLE
+end Small
-- TODO: If `UnivLE` works out well, we will eventually want to deprecate these
-- definitions, and probably as a first step put them in namespace or otherwise rename them.
@@ -174,7 +174,11 @@ we leave them in the main `CategoryTheory.Limits.Types` namespace.
section UnivLE
open UnivLE
-variable [UnivLE.{v, u}]
+
+instance hasLimit [Small.{u} J] (F : J ⥤ Type u) : HasLimit F :=
+ HasLimit.mk
+ { cone := Small.limitCone.{v, u} F
+ isLimit := Small.limitConeIsLimit F }
/--
The category of types has all limits.
@@ -183,17 +187,11 @@ More specifically, when `UnivLE.{v, u}`, the category `Type u` has all `v`-small
See <https://stacks.math.columbia.edu/tag/002U>.
-/
-instance (priority := 1300) hasLimitsOfSize : HasLimitsOfSize.{v} (Type u) where
- has_limits_of_shape _ :=
- { has_limit := fun F =>
- HasLimit.mk
- { cone := UnivLE.limitCone.{v, u} F
- isLimit := UnivLE.limitConeIsLimit F } }
+instance (priority := 1300) hasLimitsOfSize [UnivLE.{v, u}] : HasLimitsOfSize.{v} (Type u) where
+ has_limits_of_shape _ := { }
#align category_theory.limits.types.has_limits_of_size CategoryTheory.Limits.Types.hasLimitsOfSize
-instance hasLimit (F : J ⥤ Type u) : HasLimit F :=
- (Types.hasLimitsOfSize.{v, u}.has_limits_of_shape J).has_limit F
-
+variable [Small.{u} J]
/-- The equivalence between the abstract limit of `F` in `TypeMax.{v, u}`
and the "concrete" definition as the sections of `F`.
-/
Add a criterion isLimit_iff
for a cone to be a limit in Limits/Types.lean.
Use the criterion to show the equivalence between the UniqueGluing and PairwiseIntersection sheaf conditions without going through EqualizerProducts, thereby generalize the universes.
Remove theorems/def that are now unnecessary. (cc @justus-springer)
Generalize isSheaf_iff_isSheaf_forget
for sheaves on sites using isSheaf_iff_isLimit
; use it to prove and generalize the result on topological spaces, removing a large chunk of code.
Co-authored-by: Junyan Xu <junyanxu.math@gmail.com>
@@ -31,6 +31,58 @@ universe v u
namespace CategoryTheory.Limits.Types
+section limit_characterization
+
+variable {J : Type v} [Category J] {F : J ⥤ Type u}
+
+/-- Given a section of a functor F into `Type*`,
+ construct a cone over F with `PUnit` as the cone point. -/
+def coneOfSection {s} (hs : s ∈ F.sections) : Cone F where
+ pt := PUnit
+ π :=
+ { app := fun j _ ↦ s j,
+ naturality := fun i j f ↦ by ext; exact (hs f).symm }
+
+/-- Given a cone over a functor F into `Type*` and an element in the cone point,
+ construct a section of F. -/
+def sectionOfCone (c : Cone F) (x : c.pt) : F.sections :=
+ ⟨fun j ↦ c.π.app j x, fun f ↦ congr_fun (c.π.naturality f).symm x⟩
+
+theorem isLimit_iff (c : Cone F) :
+ Nonempty (IsLimit c) ↔ ∀ s ∈ F.sections, ∃! x : c.pt, ∀ i, c.π.app i x = s i := by
+ refine ⟨fun ⟨t⟩ s hs ↦ ?_, fun h ↦ ⟨?_⟩⟩
+ · let cs := coneOfSection hs
+ exact ⟨t.lift cs ⟨⟩, fun j ↦ congr_fun (t.fac cs j) ⟨⟩,
+ fun x hx ↦ congr_fun (t.uniq cs (fun _ ↦ x) fun j ↦ funext fun _ ↦ hx j) ⟨⟩⟩
+ · choose x hx using fun c y ↦ h _ (sectionOfCone c y).2
+ exact ⟨x, fun c j ↦ funext fun y ↦ (hx c y).1 j,
+ fun c f hf ↦ funext fun y ↦ (hx c y).2 (f y) (fun j ↦ congr_fun (hf j) y)⟩
+
+/-- The equivalence between a limiting cone of `F` in `Type u` and the "concrete" definition as the
+sections of `F`.
+-/
+noncomputable def isLimitEquivSections {c : Cone F} (t : IsLimit c) :
+ c.pt ≃ F.sections where
+ toFun := sectionOfCone c
+ invFun s := t.lift (coneOfSection s.2) ⟨⟩
+ left_inv x := (congr_fun (t.uniq (coneOfSection _) (fun _ ↦ x) fun _ ↦ rfl) ⟨⟩).symm
+ right_inv s := Subtype.ext (funext fun j ↦ congr_fun (t.fac (coneOfSection s.2) j) ⟨⟩)
+#align category_theory.limits.types.is_limit_equiv_sections CategoryTheory.Limits.Types.isLimitEquivSections
+
+@[simp]
+theorem isLimitEquivSections_apply {c : Cone F} (t : IsLimit c) (j : J)
+ (x : c.pt) : (isLimitEquivSections t x : ∀ j, F.obj j) j = c.π.app j x := rfl
+#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_apply
+
+@[simp]
+theorem isLimitEquivSections_symm_apply {c : Cone F} (t : IsLimit c)
+ (x : F.sections) (j : J) :
+ c.π.app j ((isLimitEquivSections t).symm x) = (x : ∀ j, F.obj j) j := by
+ conv_rhs => rw [← (isLimitEquivSections t).right_inv x]
+#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply
+
+end limit_characterization
+
variable {J : Type v} [SmallCategory J]
/-! We now provide two distinct implementations in the category of types.
@@ -124,29 +176,6 @@ section UnivLE
open UnivLE
variable [UnivLE.{v, u}]
-/-- The equivalence between a limiting cone of `F` in `Type u` and the "concrete" definition as the
-sections of `F`.
--/
-noncomputable def isLimitEquivSections {F : J ⥤ Type u} {c : Cone F} (t : IsLimit c) :
- c.pt ≃ F.sections :=
- (IsLimit.conePointUniqueUpToIso t (UnivLE.limitConeIsLimit.{v, u} F)).toEquiv.trans
- (equivShrink _).symm
-#align category_theory.limits.types.is_limit_equiv_sections CategoryTheory.Limits.Types.isLimitEquivSections
-
-@[simp]
-theorem isLimitEquivSections_apply {F : J ⥤ Type u} {c : Cone F} (t : IsLimit c) (j : J)
- (x : c.pt) : ((isLimitEquivSections.{v, u} t) x : ∀ j, F.obj j) j = c.π.app j x := by
- simp [isLimitEquivSections, IsLimit.conePointUniqueUpToIso]
-#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_apply
-
-@[simp]
-theorem isLimitEquivSections_symm_apply {F : J ⥤ Type u} {c : Cone F} (t : IsLimit c)
- (x : F.sections) (j : J) :
- c.π.app j ((isLimitEquivSections.{v, u} t).symm x) = (x : ∀ j, F.obj j) j := by
- obtain ⟨x, rfl⟩ := (isLimitEquivSections.{v, u} t).surjective x
- simp
-#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply
-
/--
The category of types has all limits.
@@ -175,8 +204,8 @@ noncomputable def limitEquivSections (F : J ⥤ Type u) :
@[simp]
theorem limitEquivSections_apply (F : J ⥤ Type u) (x : limit F) (j : J) :
- ((limitEquivSections.{v, u} F) x : ∀ j, F.obj j) j = limit.π F j x := by
- simp [limitEquivSections, isLimitEquivSections, IsLimit.conePointUniqueUpToIso]
+ ((limitEquivSections.{v, u} F) x : ∀ j, F.obj j) j = limit.π F j x :=
+ isLimitEquivSections_apply _ _ _
#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_apply
@[simp]
@@ -398,7 +398,7 @@ theorem Colimit.ι_desc_apply (F : J ⥤ TypeMax.{v, u}) (s : Cocone F) (j : J)
--porting note: @[simp] was removed because the linter said it was useless
theorem Colimit.ι_map_apply {F G : J ⥤ TypeMax.{v, u}} (α : F ⟶ G) (j : J) (x : F.obj j) :
- colim.{v, v}.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
+ colim.{v, v}.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
congr_fun (colimit.ι_map α j) x
#align category_theory.limits.types.colimit.ι_map_apply CategoryTheory.Limits.Types.Colimit.ι_map_apply
@@ -476,7 +476,7 @@ protected def Rel (x y : Σ j, F.obj j) : Prop :=
#align category_theory.limits.types.filtered_colimit.rel CategoryTheory.Limits.Types.FilteredColimit.Rel
theorem rel_of_quot_rel (x y : Σ j, F.obj j) :
- Quot.Rel.{v, u} F x y → FilteredColimit.Rel.{v, u} F x y :=
+ Quot.Rel.{v, u} F x y → FilteredColimit.Rel.{v, u} F x y :=
fun ⟨f, h⟩ => ⟨y.1, f, 𝟙 y.1, by rw [← h, FunctorToTypes.map_id_apply]⟩
#align category_theory.limits.types.filtered_colimit.rel_of_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel
A linter that throws on seeing a colon at the start of a line, according to the style guideline that says these operators should go before linebreaks.
@@ -505,8 +505,7 @@ noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x
intro a b h
rcases jointly_surjective.{v, u} F (colimit.isColimit F) a with ⟨i, xi, rfl⟩
rcases jointly_surjective.{v, u} F (colimit.isColimit F) b with ⟨j, xj, rfl⟩
- replace h : (colimit.ι F i ≫ colimit.desc F t) xi = (colimit.ι F j ≫ colimit.desc F t) xj
- := h
+ replace h : (colimit.ι F i ≫ colimit.desc F t) xi = (colimit.ι F j ≫ colimit.desc F t) xj := h
rw [colimit.ι_desc, colimit.ι_desc] at h
rcases hinj i j xi xj h with ⟨k, f, g, h'⟩
change colimit.ι F i xi = colimit.ι F j xj
@@ -6,7 +6,7 @@ Authors: Scott Morrison, Reid Barton
import Mathlib.Data.TypeMax
import Mathlib.Logic.UnivLE
import Mathlib.CategoryTheory.Limits.Shapes.Images
-import Mathlib.CategoryTheory.Filtered
+import Mathlib.CategoryTheory.Filtered.Basic
#align_import category_theory.limits.types from "leanprover-community/mathlib"@"4aa2a2e17940311e47007f087c9df229e7f12942"
Autoimplicits are highly controversial and also defeat the performance-improving work in #6474.
The intent of this PR is to make autoImplicit
opt-in on a per-file basis, by disabling it in the lakefile and enabling it again with set_option autoImplicit true
in the few files that rely on it.
That also keeps this PR small, as opposed to attempting to "fix" files to not need it any more.
I claim that many of the uses of autoImplicit
in these files are accidental; situations such as:
variables
are in scope, but pasting the lemma in the wrong sectionHaving set_option autoImplicit false
as the default prevents these types of mistake being made in the 90% of files where autoImplicit
s are not used at all, and causes them to be caught by CI during review.
I think there were various points during the port where we encouraged porters to delete the universes u v
lines; I think having autoparams for universe variables only would cover a lot of the cases we actually use them, while avoiding any real shortcomings.
A Zulip poll (after combining overlapping votes accordingly) was in favor of this change with 5:5:18
as the no:dontcare:yes
vote ratio.
While this PR was being reviewed, a handful of files gained some more likely-accidental autoImplicits. In these places, set_option autoImplicit true
has been placed locally within a section, rather than at the top of the file.
@@ -22,6 +22,8 @@ Finally, we prove the category of types has categorical images,
and that these agree with the range of a function.
-/
+set_option autoImplicit true
+
open CategoryTheory CategoryTheory.Limits
@@ -637,15 +637,4 @@ instance : HasImageMaps (Type u) where
simp only [Functor.id_obj, Functor.id_map, types_comp_apply] at p
erw [p, Classical.choose_spec x.2]⟩⟩) rfl
--- porting note: the following three instances have been added to ease
--- the automation in a definition in `AlgebraicTopology.SimplicialSet`
-noncomputable instance : Inhabited (⊤_ (Type u)) :=
- ⟨@terminal.from (Type u) _ _ (ULift (Fin 1)) (ULift.up 0)⟩
-
-instance : Subsingleton (⊤_ (Type u)) := ⟨fun a b =>
- congr_fun (@Subsingleton.elim (_ ⟶ ⊤_ (Type u)) _
- (fun _ => a) (fun _ => b)) (ULift.up (0 : Fin 1))⟩
-
-noncomputable instance : Unique (⊤_ (Type u)) := Unique.mk' _
-
end CategoryTheory.Limits.Types
@@ -2,17 +2,14 @@
Copyright (c) 2018 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison, Reid Barton
-
-! This file was ported from Lean 3 source module category_theory.limits.types
-! leanprover-community/mathlib commit 4aa2a2e17940311e47007f087c9df229e7f12942
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Data.TypeMax
import Mathlib.Logic.UnivLE
import Mathlib.CategoryTheory.Limits.Shapes.Images
import Mathlib.CategoryTheory.Filtered
+#align_import category_theory.limits.types from "leanprover-community/mathlib"@"4aa2a2e17940311e47007f087c9df229e7f12942"
+
/-!
# Limits in the category of types.
Type
(#5724)
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Apurva <apurvnakade@gmail.com> Co-authored-by: Jon Eugster <eugster.jon@gmail.com> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr> Co-authored-by: Johan Commelin <johan@commelin.net>
@@ -9,6 +9,7 @@ Authors: Scott Morrison, Reid Barton
! if you have ported upstream changes.
-/
import Mathlib.Data.TypeMax
+import Mathlib.Logic.UnivLE
import Mathlib.CategoryTheory.Limits.Shapes.Images
import Mathlib.CategoryTheory.Filtered
@@ -33,10 +34,62 @@ namespace CategoryTheory.Limits.Types
variable {J : Type v} [SmallCategory J]
+/-! We now provide two distinct implementations in the category of types.
+
+The first, in the `CategoryTheory.Limits.Types.UnivLE` namespace,
+assumes `UnivLE.{v, u}` and constructs `v`-small limits in `Type u`.
+
+The second, in the `CategoryTheory.Limits.Types.TypeMax` namespace
+constructs limits for functors `F : J ⥤ TypeMax.{v, u}`, for `J : Type v`.
+This construction is slightly nicer, as the limit is definitionally just `F.sections`,
+rather than `Shrink F.sections`, which makes an arbitrary choice of `u`-small representative.
+
+Hopefully we might be able to entirely remove the `TypeMax` constructions,
+but for now they are useful glue for the later parts of the library.
+-/
+
+namespace UnivLE
+
+variable [UnivLE.{v, u}]
+
+/-- (internal implementation) the limit cone of a functor,
+implemented as flat sections of a pi type
+-/
+@[simps]
+noncomputable def limitCone (F : J ⥤ Type u) : Cone F where
+ pt := Shrink F.sections
+ π :=
+ { app := fun j u => ((equivShrink _).symm u).val j
+ naturality := fun j j' f => by
+ funext x
+ simp }
+
+@[ext]
+lemma limitCone_pt_ext (F : J ⥤ Type u) {x y : (limitCone F).pt}
+ (w : (equivShrink _).symm x = (equivShrink _).symm y) : x = y := by
+ aesop
+
+/-- (internal implementation) the fact that the proposed limit cone is the limit -/
+@[simps]
+noncomputable def limitConeIsLimit (F : J ⥤ Type u) : IsLimit (limitCone.{v, u} F) where
+ lift s v := (equivShrink _)
+ { val := fun j => s.π.app j v
+ property := fun f => congr_fun (Cone.w s f) _ }
+ uniq := fun _ _ w => by
+ ext x j
+ simpa using congr_fun (w j) x
+
+end UnivLE
+
+-- TODO: If `UnivLE` works out well, we will eventually want to deprecate these
+-- definitions, and probably as a first step put them in namespace or otherwise rename them.
+section TypeMax
+
/-- (internal implementation) the limit cone of a functor,
implemented as flat sections of a pi type
-/
-def limitCone (F : J ⥤ TypeMax.{v, u}) : Cone F where
+@[simps]
+noncomputable def limitCone (F : J ⥤ TypeMax.{v, u}) : Cone F where
pt := F.sections
π :=
{ app := fun j u => u.val j
@@ -45,13 +98,12 @@ def limitCone (F : J ⥤ TypeMax.{v, u}) : Cone F where
simp }
#align category_theory.limits.types.limit_cone CategoryTheory.Limits.Types.limitCone
---attribute [local elab_without_expected_type] congr_fun
-
/-- (internal implementation) the fact that the proposed limit cone is the limit -/
-def limitConeIsLimit (F : J ⥤ TypeMax.{v, u}) : IsLimit (limitCone.{v, u} F) where
+@[simps]
+noncomputable def limitConeIsLimit (F : J ⥤ TypeMax.{v, u}) : IsLimit (limitCone.{v, u} F) where
lift s v :=
- { val := fun j => s.π.app j v
- property := fun f => congr_fun (Cone.w s f) _ }
+ { val := fun j => s.π.app j v
+ property := fun f => congr_fun (Cone.w s f) _ }
uniq := fun _ _ w => by
funext x
apply Subtype.ext
@@ -59,89 +111,77 @@ def limitConeIsLimit (F : J ⥤ TypeMax.{v, u}) : IsLimit (limitCone.{v, u} F) w
exact congr_fun (w j) x
#align category_theory.limits.types.limit_cone_is_limit CategoryTheory.Limits.Types.limitConeIsLimit
-/-- The category of types has all limits.
-
-See <https://stacks.math.columbia.edu/tag/002U>.
--/
-instance hasLimitsOfSize : HasLimitsOfSize.{v} TypeMax.{v, u} where
- has_limits_of_shape _ := --J 𝒥 :=
- { has_limit := fun F =>
- HasLimit.mk
- { cone := limitCone.{v, u} F
- isLimit := limitConeIsLimit F } }
-#align category_theory.limits.types.has_limits_of_size CategoryTheory.Limits.Types.hasLimitsOfSize
-
-instance : HasLimits (Type u) :=
- Types.hasLimitsOfSize.{u, u}
-
-instance hasLimit (F : J ⥤ TypeMax.{v, u}) : HasLimit F :=
- (Types.hasLimitsOfSize.{v, u}.has_limits_of_shape J).has_limit F
+end TypeMax
-instance hasLimit' (F : J ⥤ Type v) : HasLimit F :=
- hasLimit.{v, v} F
--- This instance is not necessary, and indeed unhelpful:
--- if it has higher priority than the instance for `TypeMax.{w, v}`,
--- or has the same priority and is defined later,
--- then it blocks successful typeclass search with universe unification errors.
-instance : HasLimitsOfSize.{w, w, max v w, max (v + 1) (w + 1)} (Type max v w) :=
- Types.hasLimitsOfSize.{w, v}
-
--- This either needs to have higher priority (safer) or come after the instance for `Type max v w`.
-instance (priority := 1100) :
- HasLimitsOfSize.{w, w, max v w, max (v + 1) (w + 1)} (TypeMax.{w, v}) :=
- Types.hasLimitsOfSize.{w, v}
-
--- This needs to have priority higher than the instance for `TypeMax.{w, v}`.
-instance (priority := 1200) : HasLimitsOfSize.{v, v, v, v + 1} (Type v) :=
- Types.hasLimitsOfSize.{v, v}
+/-!
+The results in this section have a `UnivLE.{v, u}` hypothesis,
+but as they only use the constructions from the `CategoryTheory.Limits.Types.UnivLE` namespace
+in their definitions (rather than their statements),
+we leave them in the main `CategoryTheory.Limits.Types` namespace.
+-/
+section UnivLE
--- Verify that we can find instances, at least when we ask for `TypeMax.{w, v}`:
-example : HasLimitsOfSize.{w, w, max v w, max (v + 1) (w + 1)} (TypeMax.{w, v}) := inferInstance
-example : HasLimitsOfSize.{0, 0, v, v+1} (Type v) := inferInstance
-example : HasLimitsOfSize.{v, v, v, v+1} (Type v) := inferInstance
--- Note however this fails unless we modify the universe unification algorithm:
--- `stuck at solving universe constraint max (v+1) (w+1) =?= max (w+1) (?u+1)`
--- example : HasLimitsOfSize.{w, w, max v w, max (v + 1) (w + 1)} (Type max v w) := inferInstance
+open UnivLE
+variable [UnivLE.{v, u}]
/-- The equivalence between a limiting cone of `F` in `Type u` and the "concrete" definition as the
sections of `F`.
-/
-def isLimitEquivSections {F : J ⥤ TypeMax.{v, u}} {c : Cone F} (t : IsLimit c) :
+noncomputable def isLimitEquivSections {F : J ⥤ Type u} {c : Cone F} (t : IsLimit c) :
c.pt ≃ F.sections :=
- (IsLimit.conePointUniqueUpToIso t (limitConeIsLimit.{v, u} F)).toEquiv
+ (IsLimit.conePointUniqueUpToIso t (UnivLE.limitConeIsLimit.{v, u} F)).toEquiv.trans
+ (equivShrink _).symm
#align category_theory.limits.types.is_limit_equiv_sections CategoryTheory.Limits.Types.isLimitEquivSections
@[simp]
-theorem isLimitEquivSections_apply {F : J ⥤ TypeMax.{v, u}} {c : Cone F} (t : IsLimit c) (j : J)
- (x : c.pt) : ((isLimitEquivSections.{v, u} t) x : ∀ j, F.obj j) j = c.π.app j x :=
- rfl
+theorem isLimitEquivSections_apply {F : J ⥤ Type u} {c : Cone F} (t : IsLimit c) (j : J)
+ (x : c.pt) : ((isLimitEquivSections.{v, u} t) x : ∀ j, F.obj j) j = c.π.app j x := by
+ simp [isLimitEquivSections, IsLimit.conePointUniqueUpToIso]
#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_apply
@[simp]
-theorem isLimitEquivSections_symm_apply {F : J ⥤ TypeMax.{v, u}} {c : Cone F} (t : IsLimit c)
+theorem isLimitEquivSections_symm_apply {F : J ⥤ Type u} {c : Cone F} (t : IsLimit c)
(x : F.sections) (j : J) :
c.π.app j ((isLimitEquivSections.{v, u} t).symm x) = (x : ∀ j, F.obj j) j := by
obtain ⟨x, rfl⟩ := (isLimitEquivSections.{v, u} t).surjective x
simp
#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply
+/--
+The category of types has all limits.
+
+More specifically, when `UnivLE.{v, u}`, the category `Type u` has all `v`-small limits.
+
+See <https://stacks.math.columbia.edu/tag/002U>.
+-/
+instance (priority := 1300) hasLimitsOfSize : HasLimitsOfSize.{v} (Type u) where
+ has_limits_of_shape _ :=
+ { has_limit := fun F =>
+ HasLimit.mk
+ { cone := UnivLE.limitCone.{v, u} F
+ isLimit := UnivLE.limitConeIsLimit F } }
+#align category_theory.limits.types.has_limits_of_size CategoryTheory.Limits.Types.hasLimitsOfSize
+
+instance hasLimit (F : J ⥤ Type u) : HasLimit F :=
+ (Types.hasLimitsOfSize.{v, u}.has_limits_of_shape J).has_limit F
+
/-- The equivalence between the abstract limit of `F` in `TypeMax.{v, u}`
and the "concrete" definition as the sections of `F`.
-/
-noncomputable def limitEquivSections (F : J ⥤ TypeMax.{v, u}) :
- (@limit _ _ _ _ F (hasLimit.{v, u} F) : TypeMax.{v, u}) ≃ F.sections :=
+noncomputable def limitEquivSections (F : J ⥤ Type u) :
+ (@limit _ _ _ _ F (hasLimit.{v, u} F) : Type u) ≃ F.sections :=
isLimitEquivSections.{v, u} (limit.isLimit F)
#align category_theory.limits.types.limit_equiv_sections CategoryTheory.Limits.Types.limitEquivSections
@[simp]
-theorem limitEquivSections_apply (F : J ⥤ TypeMax.{v, u}) (x : limit F) (j : J) :
- ((limitEquivSections.{v, u} F) x : ∀ j, F.obj j) j = limit.π F j x :=
- rfl
+theorem limitEquivSections_apply (F : J ⥤ Type u) (x : limit F) (j : J) :
+ ((limitEquivSections.{v, u} F) x : ∀ j, F.obj j) j = limit.π F j x := by
+ simp [limitEquivSections, isLimitEquivSections, IsLimit.conePointUniqueUpToIso]
#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_apply
@[simp]
-theorem limitEquivSections_symm_apply (F : J ⥤ TypeMax.{v, u}) (x : F.sections) (j : J) :
+theorem limitEquivSections_symm_apply (F : J ⥤ Type u) (x : F.sections) (j : J) :
limit.π F j ((limitEquivSections.{v, u} F).symm x) = (x : ∀ j, F.obj j) j :=
isLimitEquivSections_symm_apply _ _ _
#align category_theory.limits.types.limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.limitEquivSections_symm_apply
@@ -158,13 +198,13 @@ theorem limitEquivSections_symm_apply (F : J ⥤ TypeMax.{v, u}) (x : F.sections
/-- Construct a term of `limit F : Type u` from a family of terms `x : Π j, F.obj j`
which are "coherent": `∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j'`.
-/
-noncomputable def Limit.mk (F : J ⥤ TypeMax.{v, u}) (x : ∀ j, F.obj j)
- (h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') : (limit F : TypeMax.{v, u}) :=
+noncomputable def Limit.mk (F : J ⥤ Type u) (x : ∀ j, F.obj j)
+ (h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') : (limit F : Type u) :=
(limitEquivSections.{v, u} F).symm ⟨x, h _ _⟩
#align category_theory.limits.types.limit.mk CategoryTheory.Limits.Types.Limit.mk
@[simp]
-theorem Limit.π_mk (F : J ⥤ TypeMax.{v, u}) (x : ∀ j, F.obj j)
+theorem Limit.π_mk (F : J ⥤ Type u) (x : ∀ j, F.obj j)
(h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') (j) :
limit.π F j (Limit.mk.{v, u} F x h) = x j := by
dsimp [Limit.mk]
@@ -182,7 +222,7 @@ theorem Limit.π_mk (F : J ⥤ TypeMax.{v, u}) (x : ∀ j, F.obj j)
-- PROJECT: prove this for concrete categories where the forgetful functor preserves limits
@[ext]
-theorem limit_ext (F : J ⥤ TypeMax.{v, u}) (x y : limit F)
+theorem limit_ext (F : J ⥤ Type u) (x y : limit F)
(w : ∀ j, limit.π F j x = limit.π F j y) : x = y := by
apply (limitEquivSections.{v, u} F).injective
ext j
@@ -195,7 +235,7 @@ theorem limit_ext' (F : J ⥤ Type v) (x y : limit F) (w : ∀ j, limit.π F j x
limit_ext.{v, v} F x y w
#align category_theory.limits.types.limit_ext' CategoryTheory.Limits.Types.limit_ext'
-theorem limit_ext_iff (F : J ⥤ TypeMax.{v, u}) (x y : limit F) :
+theorem limit_ext_iff (F : J ⥤ Type u) (x y : limit F) :
x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
⟨fun t _ => t ▸ rfl, limit_ext.{v, u} _ _ _⟩
#align category_theory.limits.types.limit_ext_iff CategoryTheory.Limits.Types.limit_ext_iff
@@ -210,19 +250,19 @@ theorem limit_ext_iff' (F : J ⥤ Type v) (x y : limit F) :
-- PROJECT: prove these for any concrete category where the forgetful functor preserves limits?
--porting note: @[simp] was removed because the linter said it was useless
--@[simp]
-theorem Limit.w_apply {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : limit F} (f : j ⟶ j') :
+theorem Limit.w_apply {F : J ⥤ Type u} {j j' : J} {x : limit F} (f : j ⟶ j') :
F.map f (limit.π F j x) = limit.π F j' x :=
congr_fun (limit.w F f) x
#align category_theory.limits.types.limit.w_apply CategoryTheory.Limits.Types.Limit.w_apply
--porting note: @[simp] was removed because the linter said it was useless
-theorem Limit.lift_π_apply (F : J ⥤ TypeMax.{v, u}) (s : Cone F) (j : J) (x : s.pt) :
+theorem Limit.lift_π_apply (F : J ⥤ Type u) (s : Cone F) (j : J) (x : s.pt) :
limit.π F j (limit.lift F s x) = s.π.app j x :=
congr_fun (limit.lift_π s j) x
#align category_theory.limits.types.limit.lift_π_apply CategoryTheory.Limits.Types.Limit.lift_π_apply
--porting note: @[simp] was removed because the linter said it was useless
-theorem Limit.map_π_apply {F G : J ⥤ TypeMax.{v, u}} (α : F ⟶ G) (j : J) (x : limit F) :
+theorem Limit.map_π_apply {F G : J ⥤ Type u} (α : F ⟶ G) (j : J) (x : limit F) :
limit.π G j (limMap α x) = α.app j (limit.π F j x) :=
congr_fun (limMap_π α j) x
#align category_theory.limits.types.limit.map_π_apply CategoryTheory.Limits.Types.Limit.map_π_apply
@@ -245,6 +285,23 @@ theorem Limit.map_π_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x : lim
congr_fun (limMap_π α j) x
#align category_theory.limits.types.limit.map_π_apply' CategoryTheory.Limits.Types.Limit.map_π_apply'
+end UnivLE
+
+/-!
+In this section we verify that instances are available as expected.
+-/
+section instances
+
+example : HasLimitsOfSize.{w, w, max v w, max (v + 1) (w + 1)} (TypeMax.{w, v}) := inferInstance
+example : HasLimitsOfSize.{w, w, max v w, max (v + 1) (w + 1)} (Type max v w) := inferInstance
+
+example : HasLimitsOfSize.{0, 0, v, v+1} (Type v) := inferInstance
+example : HasLimitsOfSize.{v, v, v, v+1} (Type v) := inferInstance
+
+example [UnivLE.{v, u}] : HasLimitsOfSize.{v, v, u, u+1} (Type u) := inferInstance
+
+end instances
+
/--
The relation defining the quotient type which implements the colimit of a functor `F : J ⥤ Type u`.
See `CategoryTheory.Limits.Types.Quot`.
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.
@@ -427,8 +427,8 @@ theorem rel_of_quot_rel (x y : Σ j, F.obj j) :
theorem eqvGen_quot_rel_of_rel (x y : Σ j, F.obj j) :
FilteredColimit.Rel.{v, u} F x y → EqvGen (Quot.Rel.{v, u} F) x y := fun ⟨k, f, g, h⟩ => by
refine' EqvGen.trans _ ⟨k, F.map f x.2⟩ _ _ _
- . exact (EqvGen.rel _ _ ⟨f, rfl⟩)
- . exact (EqvGen.symm _ _ (EqvGen.rel _ _ ⟨g, h⟩))
+ · exact (EqvGen.rel _ _ ⟨f, rfl⟩)
+ · exact (EqvGen.symm _ _ (EqvGen.rel _ _ ⟨g, h⟩))
#align category_theory.limits.types.filtered_colimit.eqv_gen_quot_rel_of_rel CategoryTheory.Limits.Types.FilteredColimit.eqvGen_quot_rel_of_rel
--attribute [local elab_without_expected_type] nat_trans.app
@@ -457,12 +457,12 @@ noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x
rw [← colimit.w F f, ← colimit.w F g]
change colimit.ι F k (F.map f xi) = colimit.ι F k (F.map g xj)
rw [h']
- . show Function.Surjective _
+ · show Function.Surjective _
intro x
rcases hsurj x with ⟨i, xi, rfl⟩
use colimit.ι F i xi
apply Colimit.ι_desc_apply.{v, u}
- . intro j
+ · intro j
apply colimit.ι_desc
#align category_theory.limits.types.filtered_colimit.is_colimit_of CategoryTheory.Limits.Types.FilteredColimit.isColimitOf
Preliminary to the full forward port of https://github.com/leanprover-community/mathlib/pull/19153, this is a slight generalization along with explanation of the problem with the instances.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -80,6 +80,30 @@ instance hasLimit (F : J ⥤ TypeMax.{v, u}) : HasLimit F :=
instance hasLimit' (F : J ⥤ Type v) : HasLimit F :=
hasLimit.{v, v} F
+-- This instance is not necessary, and indeed unhelpful:
+-- if it has higher priority than the instance for `TypeMax.{w, v}`,
+-- or has the same priority and is defined later,
+-- then it blocks successful typeclass search with universe unification errors.
+instance : HasLimitsOfSize.{w, w, max v w, max (v + 1) (w + 1)} (Type max v w) :=
+ Types.hasLimitsOfSize.{w, v}
+
+-- This either needs to have higher priority (safer) or come after the instance for `Type max v w`.
+instance (priority := 1100) :
+ HasLimitsOfSize.{w, w, max v w, max (v + 1) (w + 1)} (TypeMax.{w, v}) :=
+ Types.hasLimitsOfSize.{w, v}
+
+-- This needs to have priority higher than the instance for `TypeMax.{w, v}`.
+instance (priority := 1200) : HasLimitsOfSize.{v, v, v, v + 1} (Type v) :=
+ Types.hasLimitsOfSize.{v, v}
+
+-- Verify that we can find instances, at least when we ask for `TypeMax.{w, v}`:
+example : HasLimitsOfSize.{w, w, max v w, max (v + 1) (w + 1)} (TypeMax.{w, v}) := inferInstance
+example : HasLimitsOfSize.{0, 0, v, v+1} (Type v) := inferInstance
+example : HasLimitsOfSize.{v, v, v, v+1} (Type v) := inferInstance
+-- Note however this fails unless we modify the universe unification algorithm:
+-- `stuck at solving universe constraint max (v+1) (w+1) =?= max (w+1) (?u+1)`
+-- example : HasLimitsOfSize.{w, w, max v w, max (v + 1) (w + 1)} (Type max v w) := inferInstance
+
/-- The equivalence between a limiting cone of `F` in `Type u` and the "concrete" definition as the
sections of `F`.
-/
@@ -392,7 +392,7 @@ Elements in `F.obj j` and `F.obj j'` are equivalent if there is some `k : J` to
where their images are equal.
-/
protected def Rel (x y : Σ j, F.obj j) : Prop :=
- ∃ (k : _)(f : x.1 ⟶ k)(g : y.1 ⟶ k), F.map f x.2 = F.map g y.2
+ ∃ (k : _) (f : x.1 ⟶ k) (g : y.1 ⟶ k), F.map f x.2 = F.map g y.2
#align category_theory.limits.types.filtered_colimit.rel CategoryTheory.Limits.Types.FilteredColimit.Rel
theorem rel_of_quot_rel (x y : Σ j, F.obj j) :
@@ -413,7 +413,7 @@ theorem eqvGen_quot_rel_of_rel (x y : Σ j, F.obj j) :
noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x = t.ι.app i xi)
(hinj :
∀ i j xi xj,
- t.ι.app i xi = t.ι.app j xj → ∃ (k : _)(f : i ⟶ k)(g : j ⟶ k), F.map f xi = F.map g xj) :
+ t.ι.app i xi = t.ι.app j xj → ∃ (k : _) (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj) :
IsColimit t := by
-- Strategy: Prove that the map from "the" colimit of F (defined above) to t.X
-- is a bijection.
@@ -478,7 +478,7 @@ theorem colimit_eq_iff_aux {i j : J} {xi : F.obj i} {xj : F.obj j} :
#align category_theory.limits.types.filtered_colimit.colimit_eq_iff_aux CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff_aux
theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj i} {xj : F.obj j} :
- t.ι.app i xi = t.ι.app j xj ↔ ∃ (k : _)(f : i ⟶ k)(g : j ⟶ k), F.map f xi = F.map g xj := by
+ t.ι.app i xi = t.ι.app j xj ↔ ∃ (k : _) (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj := by
let t' := colimitCocone.{v, u} F
let e : t' ≅ t := IsColimit.uniqueUpToIso (colimitCoconeIsColimit F) ht
let e' : t'.pt ≅ t.pt := (Cocones.forget _).mapIso e
@@ -489,7 +489,7 @@ theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj
theorem colimit_eq_iff {i j : J} {xi : F.obj i} {xj : F.obj j} :
colimit.ι F i xi = colimit.ι F j xj ↔
- ∃ (k : _)(f : i ⟶ k)(g : j ⟶ k), F.map f xi = F.map g xj :=
+ ∃ (k : _) (f : i ⟶ k) (g : j ⟶ k), F.map f xi = F.map g xj :=
isColimit_eq_iff.{v, u} _ (colimit.isColimit F)
#align category_theory.limits.types.filtered_colimit.colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff
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".
@@ -361,8 +361,7 @@ theorem colimit_eq {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : F.obj j} {x' : F.o
theorem jointly_surjective (F : J ⥤ TypeMax.{v, u}) {t : Cocone F} (h : IsColimit t) (x : t.pt) :
∃ j y, t.ι.app j y = x := by
- suffices (fun x : t.pt => ULift.up (∃ j y, t.ι.app j y = x)) = fun _ => ULift.up.{max v u} True
- by
+ suffices (fun x : t.pt => ULift.up (∃ j y, t.ι.app j y = x)) = fun _ => ULift.up.{max v u} True by
have := congr_fun this x
simpa using congr_arg ULift.down this
refine' h.hom_ext _
@@ -560,4 +560,15 @@ instance : HasImageMaps (Type u) where
simp only [Functor.id_obj, Functor.id_map, types_comp_apply] at p
erw [p, Classical.choose_spec x.2]⟩⟩) rfl
+-- porting note: the following three instances have been added to ease
+-- the automation in a definition in `AlgebraicTopology.SimplicialSet`
+noncomputable instance : Inhabited (⊤_ (Type u)) :=
+ ⟨@terminal.from (Type u) _ _ (ULift (Fin 1)) (ULift.up 0)⟩
+
+instance : Subsingleton (⊤_ (Type u)) := ⟨fun a b =>
+ congr_fun (@Subsingleton.elim (_ ⟶ ⊤_ (Type u)) _
+ (fun _ => a) (fun _ => b)) (ULift.up (0 : Fin 1))⟩
+
+noncomputable instance : Unique (⊤_ (Type u)) := Unique.mk' _
+
end CategoryTheory.Limits.Types
Per discussion at https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/!4.233463.20universe.20constraint.20issues
Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Matthew Ballard <matt@mrb.email>
@@ -8,6 +8,7 @@ Authors: Scott Morrison, Reid Barton
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
+import Mathlib.Data.TypeMax
import Mathlib.CategoryTheory.Limits.Shapes.Images
import Mathlib.CategoryTheory.Filtered
@@ -24,10 +25,10 @@ and that these agree with the range of a function.
-/
-universe v u
-
open CategoryTheory CategoryTheory.Limits
+universe v u
+
namespace CategoryTheory.Limits.Types
variable {J : Type v} [SmallCategory J]
@@ -35,7 +36,7 @@ variable {J : Type v} [SmallCategory J]
/-- (internal implementation) the limit cone of a functor,
implemented as flat sections of a pi type
-/
-def limitCone (F : J ⥤ Type max v u) : Cone F where
+def limitCone (F : J ⥤ TypeMax.{v, u}) : Cone F where
pt := F.sections
π :=
{ app := fun j u => u.val j
@@ -47,7 +48,7 @@ def limitCone (F : J ⥤ Type max v u) : Cone F where
--attribute [local elab_without_expected_type] congr_fun
/-- (internal implementation) the fact that the proposed limit cone is the limit -/
-def limitConeIsLimit (F : J ⥤ Type max v u) : IsLimit (limitCone.{v, u} F) where
+def limitConeIsLimit (F : J ⥤ TypeMax.{v, u}) : IsLimit (limitCone.{v, u} F) where
lift s v :=
{ val := fun j => s.π.app j v
property := fun f => congr_fun (Cone.w s f) _ }
@@ -62,7 +63,7 @@ def limitConeIsLimit (F : J ⥤ Type max v u) : IsLimit (limitCone.{v, u} F) whe
See <https://stacks.math.columbia.edu/tag/002U>.
-/
-instance hasLimitsOfSize : HasLimitsOfSize.{v} (Type max v u) where
+instance hasLimitsOfSize : HasLimitsOfSize.{v} TypeMax.{v, u} where
has_limits_of_shape _ := --J 𝒥 :=
{ has_limit := fun F =>
HasLimit.mk
@@ -73,7 +74,7 @@ instance hasLimitsOfSize : HasLimitsOfSize.{v} (Type max v u) where
instance : HasLimits (Type u) :=
Types.hasLimitsOfSize.{u, u}
-instance hasLimit (F : J ⥤ Type max v u) : HasLimit F :=
+instance hasLimit (F : J ⥤ TypeMax.{v, u}) : HasLimit F :=
(Types.hasLimitsOfSize.{v, u}.has_limits_of_shape J).has_limit F
instance hasLimit' (F : J ⥤ Type v) : HasLimit F :=
@@ -82,44 +83,41 @@ instance hasLimit' (F : J ⥤ Type v) : HasLimit F :=
/-- The equivalence between a limiting cone of `F` in `Type u` and the "concrete" definition as the
sections of `F`.
-/
-def isLimitEquivSections {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) : c.pt ≃ F.sections :=
+def isLimitEquivSections {F : J ⥤ TypeMax.{v, u}} {c : Cone F} (t : IsLimit c) :
+ c.pt ≃ F.sections :=
(IsLimit.conePointUniqueUpToIso t (limitConeIsLimit.{v, u} F)).toEquiv
#align category_theory.limits.types.is_limit_equiv_sections CategoryTheory.Limits.Types.isLimitEquivSections
@[simp]
-theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c) (j : J)
+theorem isLimitEquivSections_apply {F : J ⥤ TypeMax.{v, u}} {c : Cone F} (t : IsLimit c) (j : J)
(x : c.pt) : ((isLimitEquivSections.{v, u} t) x : ∀ j, F.obj j) j = c.π.app j x :=
rfl
#align category_theory.limits.types.is_limit_equiv_sections_apply CategoryTheory.Limits.Types.isLimitEquivSections_apply
@[simp]
-theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c)
+theorem isLimitEquivSections_symm_apply {F : J ⥤ TypeMax.{v, u}} {c : Cone F} (t : IsLimit c)
(x : F.sections) (j : J) :
c.π.app j ((isLimitEquivSections.{v, u} t).symm x) = (x : ∀ j, F.obj j) j := by
obtain ⟨x, rfl⟩ := (isLimitEquivSections.{v, u} t).surjective x
simp
#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply
--- porting note: many `haveI` have been introduced so that the `HasLimit F` instance is found
-/-- The equivalence between the abstract limit of `F` in `Type max v u`
+/-- The equivalence between the abstract limit of `F` in `TypeMax.{v, u}`
and the "concrete" definition as the sections of `F`.
-/
-noncomputable def limitEquivSections (F : J ⥤ Type max v u) :
- (@limit _ _ _ _ F (hasLimit.{v, u} F) : Type max v u) ≃ F.sections :=
- haveI := hasLimit.{v, u} F; isLimitEquivSections.{v, u} (limit.isLimit F)
+noncomputable def limitEquivSections (F : J ⥤ TypeMax.{v, u}) :
+ (@limit _ _ _ _ F (hasLimit.{v, u} F) : TypeMax.{v, u}) ≃ F.sections :=
+ isLimitEquivSections.{v, u} (limit.isLimit F)
#align category_theory.limits.types.limit_equiv_sections CategoryTheory.Limits.Types.limitEquivSections
@[simp]
-theorem limitEquivSections_apply (F : J ⥤ Type max v u)
- (x : haveI := hasLimit.{v, u} F; limit F) (j : J) :
- haveI := hasLimit.{v, u} F;
+theorem limitEquivSections_apply (F : J ⥤ TypeMax.{v, u}) (x : limit F) (j : J) :
((limitEquivSections.{v, u} F) x : ∀ j, F.obj j) j = limit.π F j x :=
rfl
#align category_theory.limits.types.limit_equiv_sections_apply CategoryTheory.Limits.Types.limitEquivSections_apply
@[simp]
-theorem limitEquivSections_symm_apply (F : J ⥤ Type max v u) (x : F.sections) (j : J) :
- haveI := hasLimit.{v, u} F;
+theorem limitEquivSections_symm_apply (F : J ⥤ TypeMax.{v, u}) (x : F.sections) (j : J) :
limit.π F j ((limitEquivSections.{v, u} F).symm x) = (x : ∀ j, F.obj j) j :=
isLimitEquivSections_symm_apply _ _ _
#align category_theory.limits.types.limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.limitEquivSections_symm_apply
@@ -128,7 +126,6 @@ theorem limitEquivSections_symm_apply (F : J ⥤ Type max v u) (x : F.sections)
-- complains it is unnecessary
--@[simp]
--theorem limitEquivSections_symm_apply' (F : J ⥤ Type v) (x : F.sections) (j : J) :
--- haveI := hasLimit.{v, v} F;
-- limit.π F j ((limitEquivSections.{v, v} F).symm x) = (x : ∀ j, F.obj j) j :=
-- isLimitEquivSections_symm_apply _ _ _
--#align category_theory.limits.types.limit_equiv_sections_symm_apply' CategoryTheory.Limits.Types.limitEquivSections_symm_apply'
@@ -137,16 +134,14 @@ theorem limitEquivSections_symm_apply (F : J ⥤ Type max v u) (x : F.sections)
/-- Construct a term of `limit F : Type u` from a family of terms `x : Π j, F.obj j`
which are "coherent": `∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j'`.
-/
-noncomputable def Limit.mk (F : J ⥤ Type max v u) (x : ∀ j, F.obj j)
- (h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') :
- haveI := hasLimit.{v, u} F; (limit F : Type max v u) :=
+noncomputable def Limit.mk (F : J ⥤ TypeMax.{v, u}) (x : ∀ j, F.obj j)
+ (h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') : (limit F : TypeMax.{v, u}) :=
(limitEquivSections.{v, u} F).symm ⟨x, h _ _⟩
#align category_theory.limits.types.limit.mk CategoryTheory.Limits.Types.Limit.mk
@[simp]
-theorem Limit.π_mk (F : J ⥤ Type max v u) (x : ∀ j, F.obj j)
+theorem Limit.π_mk (F : J ⥤ TypeMax.{v, u}) (x : ∀ j, F.obj j)
(h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') (j) :
- haveI := hasLimit.{v, u} F;
limit.π F j (Limit.mk.{v, u} F x h) = x j := by
dsimp [Limit.mk]
simp
@@ -156,7 +151,6 @@ theorem Limit.π_mk (F : J ⥤ Type max v u) (x : ∀ j, F.obj j)
--@[simp]
--theorem Limit.π_mk' (F : J ⥤ Type v) (x : ∀ j, F.obj j)
-- (h : ∀ (j j') (f : j ⟶ j'), F.map f (x j) = x j') (j) :
--- haveI := hasLimit.{v, v} F;
-- limit.π F j (Limit.mk.{v, v} F x h) = x j := by
-- dsimp [Limit.mk]
-- simp
@@ -164,27 +158,26 @@ theorem Limit.π_mk (F : J ⥤ Type max v u) (x : ∀ j, F.obj j)
-- PROJECT: prove this for concrete categories where the forgetful functor preserves limits
@[ext]
-theorem limit_ext (F : J ⥤ Type max v u) (x y : (haveI := hasLimit.{v, u} F; limit F))
- (w : haveI := hasLimit.{v, u} F; ∀ j, limit.π F j x = limit.π F j y) :
- x = y := by
+theorem limit_ext (F : J ⥤ TypeMax.{v, u}) (x y : limit F)
+ (w : ∀ j, limit.π F j x = limit.π F j y) : x = y := by
apply (limitEquivSections.{v, u} F).injective
ext j
simp [w j]
#align category_theory.limits.types.limit_ext CategoryTheory.Limits.Types.limit_ext
@[ext]
-theorem limit_ext' (F : J ⥤ Type v) (x y : (haveI := hasLimit.{v, v} F; limit F))
- (w : haveI := hasLimit.{v, v} F; ∀ j, limit.π F j x = limit.π F j y) :
- x = y := limit_ext.{v, v} F x y w
+theorem limit_ext' (F : J ⥤ Type v) (x y : limit F) (w : ∀ j, limit.π F j x = limit.π F j y) :
+ x = y :=
+ limit_ext.{v, v} F x y w
#align category_theory.limits.types.limit_ext' CategoryTheory.Limits.Types.limit_ext'
-theorem limit_ext_iff (F : J ⥤ Type max v u) (x y : (haveI := hasLimit.{v, u} F; limit F)) :
- x = y ↔ haveI := hasLimit.{v, u} F; ∀ j, limit.π F j x = limit.π F j y :=
+theorem limit_ext_iff (F : J ⥤ TypeMax.{v, u}) (x y : limit F) :
+ x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
⟨fun t _ => t ▸ rfl, limit_ext.{v, u} _ _ _⟩
#align category_theory.limits.types.limit_ext_iff CategoryTheory.Limits.Types.limit_ext_iff
-theorem limit_ext_iff' (F : J ⥤ Type v) (x y : (haveI := hasLimit.{v, v} F; limit F)) :
- x = y ↔ haveI := hasLimit.{v, v} F; ∀ j, limit.π F j x = limit.π F j y :=
+theorem limit_ext_iff' (F : J ⥤ Type v) (x y : limit F) :
+ x = y ↔ ∀ j, limit.π F j x = limit.π F j y :=
⟨fun t _ => t ▸ rfl, limit_ext'.{v} _ _ _⟩
#align category_theory.limits.types.limit_ext_iff' CategoryTheory.Limits.Types.limit_ext_iff'
@@ -193,51 +186,38 @@ theorem limit_ext_iff' (F : J ⥤ Type v) (x y : (haveI := hasLimit.{v, v} F; li
-- PROJECT: prove these for any concrete category where the forgetful functor preserves limits?
--porting note: @[simp] was removed because the linter said it was useless
--@[simp]
-theorem Limit.w_apply {F : J ⥤ Type max v u} {j j' : J}
- {x : haveI := hasLimit.{v, u} F; limit F} (f : j ⟶ j') :
- haveI := hasLimit.{v, u} F; F.map f (limit.π F j x) = limit.π F j' x :=
- haveI := hasLimit.{v, u} F; congr_fun (limit.w F f) x
+theorem Limit.w_apply {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : limit F} (f : j ⟶ j') :
+ F.map f (limit.π F j x) = limit.π F j' x :=
+ congr_fun (limit.w F f) x
#align category_theory.limits.types.limit.w_apply CategoryTheory.Limits.Types.Limit.w_apply
--porting note: @[simp] was removed because the linter said it was useless
-theorem Limit.lift_π_apply (F : J ⥤ Type max v u) (s : Cone F) (j : J) (x : s.pt) :
- haveI := hasLimit.{v, u} F;
+theorem Limit.lift_π_apply (F : J ⥤ TypeMax.{v, u}) (s : Cone F) (j : J) (x : s.pt) :
limit.π F j (limit.lift F s x) = s.π.app j x :=
- haveI := hasLimit.{v, u} F; congr_fun (limit.lift_π s j) x
+ congr_fun (limit.lift_π s j) x
#align category_theory.limits.types.limit.lift_π_apply CategoryTheory.Limits.Types.Limit.lift_π_apply
--porting note: @[simp] was removed because the linter said it was useless
-theorem Limit.map_π_apply {F G : J ⥤ Type max v u} (α : F ⟶ G) (j : J)
- (x : haveI := hasLimit.{v, u} F; limit F) :
- haveI := hasLimit.{v, u} F;
- haveI := hasLimit.{v, u} G;
+theorem Limit.map_π_apply {F G : J ⥤ TypeMax.{v, u}} (α : F ⟶ G) (j : J) (x : limit F) :
limit.π G j (limMap α x) = α.app j (limit.π F j x) :=
- haveI := hasLimit.{v, u} F;
- haveI := hasLimit.{v, u} G;
congr_fun (limMap_π α j) x
#align category_theory.limits.types.limit.map_π_apply CategoryTheory.Limits.Types.Limit.map_π_apply
@[simp]
-theorem Limit.w_apply' {F : J ⥤ Type v} {j j' : J} {x : haveI := hasLimit.{v, v} F; limit F}
- (f : j ⟶ j') :
- haveI := hasLimit.{v, v} F; F.map f (limit.π F j x) = limit.π F j' x :=
- haveI := hasLimit.{v, v} F; congr_fun (limit.w F f) x
+theorem Limit.w_apply' {F : J ⥤ Type v} {j j' : J} {x : limit F} (f : j ⟶ j') :
+ F.map f (limit.π F j x) = limit.π F j' x :=
+ congr_fun (limit.w F f) x
#align category_theory.limits.types.limit.w_apply' CategoryTheory.Limits.Types.Limit.w_apply'
@[simp]
theorem Limit.lift_π_apply' (F : J ⥤ Type v) (s : Cone F) (j : J) (x : s.pt) :
- haveI := hasLimit.{v, v} F; limit.π F j (limit.lift F s x) = s.π.app j x :=
- haveI := hasLimit.{v, v} F; congr_fun (limit.lift_π s j) x
+ limit.π F j (limit.lift F s x) = s.π.app j x :=
+ congr_fun (limit.lift_π s j) x
#align category_theory.limits.types.limit.lift_π_apply' CategoryTheory.Limits.Types.Limit.lift_π_apply'
@[simp]
-theorem Limit.map_π_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J)
- (x : haveI := hasLimit.{v, v} F; limit F) :
- haveI := hasLimit.{v, v} F;
- haveI := hasLimit.{v, v} G;
+theorem Limit.map_π_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x : limit F) :
limit.π G j (limMap α x) = α.app j (limit.π F j x) :=
- haveI := hasLimit.{v, v} F;
- haveI := hasLimit.{v, v} G;
congr_fun (limMap_π α j) x
#align category_theory.limits.types.limit.map_π_apply' CategoryTheory.Limits.Types.Limit.map_π_apply'
@@ -245,7 +225,7 @@ theorem Limit.map_π_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J)
The relation defining the quotient type which implements the colimit of a functor `F : J ⥤ Type u`.
See `CategoryTheory.Limits.Types.Quot`.
-/
-def Quot.Rel (F : J ⥤ Type max v u) : (Σ j, F.obj j) → (Σ j, F.obj j) → Prop := fun p p' =>
+def Quot.Rel (F : J ⥤ TypeMax.{v, u}) : (Σ j, F.obj j) → (Σ j, F.obj j) → Prop := fun p p' =>
∃ f : p.1 ⟶ p'.1, p'.2 = F.map f p.2
#align category_theory.limits.types.quot.rel CategoryTheory.Limits.Types.Quot.Rel
@@ -254,14 +234,14 @@ def Quot.Rel (F : J ⥤ Type max v u) : (Σ j, F.obj j) → (Σ j, F.obj j) →
as pairs `⟨j, x⟩` where `x : F.obj j`, modulo the equivalence relation generated by
`⟨j, x⟩ ~ ⟨j', x'⟩` whenever there is a morphism `f : j ⟶ j'` so `F.map f x = x'`.
-/
-def Quot (F : J ⥤ Type max v u) : Type max v u :=
+def Quot (F : J ⥤ TypeMax.{v, u}) : TypeMax.{v, u} :=
_root_.Quot (Quot.Rel.{v, u} F)
#align category_theory.limits.types.quot CategoryTheory.Limits.Types.Quot
/-- (internal implementation) the colimit cocone of a functor,
implemented as a quotient of a sigma type
-/
-def colimitCocone (F : J ⥤ Type max v u) : Cocone F where
+def colimitCocone (F : J ⥤ TypeMax.{v, u}) : Cocone F where
pt := Quot.{v, u} F
ι :=
{ app := fun j x => Quot.mk _ ⟨j, x⟩
@@ -271,7 +251,7 @@ def colimitCocone (F : J ⥤ Type max v u) : Cocone F where
--attribute [local elab_with_expected_type] Quot.lift
/-- (internal implementation) the fact that the proposed colimit cocone is the colimit -/
-def colimitCoconeIsColimit (F : J ⥤ Type max v u) : IsColimit (colimitCocone.{v, u} F) where
+def colimitCoconeIsColimit (F : J ⥤ TypeMax.{v, u}) : IsColimit (colimitCocone.{v, u} F) where
desc s :=
Quot.lift (fun p : Σj, F.obj j => s.ι.app p.1 p.2) fun ⟨j, x⟩ ⟨j', x'⟩ ⟨f, hf⟩ => by
dsimp at hf
@@ -287,7 +267,7 @@ def colimitCoconeIsColimit (F : J ⥤ Type max v u) : IsColimit (colimitCocone.{
See <https://stacks.math.columbia.edu/tag/002U>.
-/
-instance hasColimitsOfSize : HasColimitsOfSize.{v} (Type max v u) where
+instance hasColimitsOfSize : HasColimitsOfSize.{v} TypeMax.{v, u} where
has_colimits_of_shape _ :=
{ has_colimit := fun F =>
HasColimit.mk
@@ -298,57 +278,47 @@ instance hasColimitsOfSize : HasColimitsOfSize.{v} (Type max v u) where
instance : HasColimits (Type u) :=
Types.hasColimitsOfSize.{u, u}
-instance hasColimit (F : J ⥤ Type max v u) : HasColimit F :=
+instance hasColimit (F : J ⥤ TypeMax.{v, u}) : HasColimit F :=
(Types.hasColimitsOfSize.{v, u}.has_colimits_of_shape J).has_colimit F
-instance hasColimit' (F : J ⥤ Type max v) : HasColimit F :=
+instance hasColimit' (F : J ⥤ Type v) : HasColimit F :=
hasColimit.{v, v} F
/-- The equivalence between the abstract colimit of `F` in `Type u`
and the "concrete" definition as a quotient.
-/
-noncomputable def colimitEquivQuot (F : J ⥤ Type max v u) :
- haveI := hasColimit.{v, u} F; colimit F ≃ Quot.{v, u} F :=
- haveI := hasColimit.{v, u} F;
+noncomputable def colimitEquivQuot (F : J ⥤ TypeMax.{v, u}) : colimit F ≃ Quot.{v, u} F :=
(IsColimit.coconePointUniqueUpToIso (colimit.isColimit F) (colimitCoconeIsColimit F)).toEquiv
#align category_theory.limits.types.colimit_equiv_quot CategoryTheory.Limits.Types.colimitEquivQuot
@[simp]
-theorem colimitEquivQuot_symm_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
- haveI := hasColimit.{v, u} F;
+theorem colimitEquivQuot_symm_apply (F : J ⥤ TypeMax.{v, u}) (j : J) (x : F.obj j) :
(colimitEquivQuot.{v, u} F).symm (Quot.mk _ ⟨j, x⟩) = colimit.ι F j x :=
rfl
#align category_theory.limits.types.colimit_equiv_quot_symm_apply CategoryTheory.Limits.Types.colimitEquivQuot_symm_apply
@[simp]
-theorem colimitEquivQuot_apply (F : J ⥤ Type max v u) (j : J) (x : F.obj j) :
- haveI := hasColimit.{v, u} F;
+theorem colimitEquivQuot_apply (F : J ⥤ TypeMax.{v, u}) (j : J) (x : F.obj j) :
(colimitEquivQuot.{v, u} F) (colimit.ι F j x) = Quot.mk _ ⟨j, x⟩ := by
apply (colimitEquivQuot F).symm.injective
simp
#align category_theory.limits.types.colimit_equiv_quot_apply CategoryTheory.Limits.Types.colimitEquivQuot_apply
--porting note: @[simp] was removed because the linter said it was useless
-theorem Colimit.w_apply {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} (f : j ⟶ j') :
- haveI := hasColimit.{v, u} F;
+theorem Colimit.w_apply {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : F.obj j} (f : j ⟶ j') :
colimit.ι F j' (F.map f x) = colimit.ι F j x :=
- haveI := hasColimit.{v, u} F; congr_fun (colimit.w F f) x
+ congr_fun (colimit.w F f) x
#align category_theory.limits.types.colimit.w_apply CategoryTheory.Limits.Types.Colimit.w_apply
--porting note: @[simp] was removed because the linter said it was useless
-theorem Colimit.ι_desc_apply (F : J ⥤ Type max v u) (s : Cocone F) (j : J) (x : F.obj j) :
- haveI := hasColimit.{v, u} F;
+theorem Colimit.ι_desc_apply (F : J ⥤ TypeMax.{v, u}) (s : Cocone F) (j : J) (x : F.obj j) :
colimit.desc F s (colimit.ι F j x) = s.ι.app j x :=
- haveI := hasColimit.{v, u} F; congr_fun (colimit.ι_desc s j) x
+ congr_fun (colimit.ι_desc s j) x
#align category_theory.limits.types.colimit.ι_desc_apply CategoryTheory.Limits.Types.Colimit.ι_desc_apply
--porting note: @[simp] was removed because the linter said it was useless
-theorem Colimit.ι_map_apply {F G : J ⥤ Type max v u} (α : F ⟶ G) (j : J) (x : F.obj j) :
- haveI := hasColimit.{v, u} F; haveI := hasColimit.{v, u} G;
- haveI := (Types.hasColimitsOfSize.{v, u}.has_colimits_of_shape J);
+theorem Colimit.ι_map_apply {F G : J ⥤ TypeMax.{v, u}} (α : F ⟶ G) (j : J) (x : F.obj j) :
colim.{v, v}.map α (colimit.ι F j x) = colimit.ι G j (α.app j x) :=
- haveI := hasColimit.{v, u} F; haveI := hasColimit.{v, u} G;
- haveI := (Types.hasColimitsOfSize.{v, u}.has_colimits_of_shape J);
congr_fun (colimit.ι_map α j) x
#align category_theory.limits.types.colimit.ι_map_apply CategoryTheory.Limits.Types.Colimit.ι_map_apply
@@ -370,27 +340,26 @@ theorem Colimit.ι_map_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J) (x) :
congr_fun (colimit.ι_map α j) x
#align category_theory.limits.types.colimit.ι_map_apply' CategoryTheory.Limits.Types.Colimit.ι_map_apply'
-theorem colimit_sound {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'} (f : j ⟶ j')
- (w : F.map f x = x') : haveI := hasColimit.{v, u} F; colimit.ι F j x = colimit.ι F j' x' := by
+theorem colimit_sound {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : F.obj j} {x' : F.obj j'} (f : j ⟶ j')
+ (w : F.map f x = x') : colimit.ι F j x = colimit.ι F j' x' := by
rw [← w, Colimit.w_apply.{v, u}]
#align category_theory.limits.types.colimit_sound CategoryTheory.Limits.Types.colimit_sound
-theorem colimit_sound' {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'} {j'' : J}
+theorem colimit_sound' {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : F.obj j} {x' : F.obj j'} {j'' : J}
(f : j ⟶ j'') (f' : j' ⟶ j'') (w : F.map f x = F.map f' x') :
- haveI := hasColimit.{v, u} F; colimit.ι F j x = colimit.ι F j' x' := by
- haveI := hasColimit.{v, u} F
+ colimit.ι F j x = colimit.ι F j' x' := by
rw [← colimit.w _ f, ← colimit.w _ f']
rw [types_comp_apply, types_comp_apply, w]
#align category_theory.limits.types.colimit_sound' CategoryTheory.Limits.Types.colimit_sound'
-theorem colimit_eq {F : J ⥤ Type max v u} {j j' : J} {x : F.obj j} {x' : F.obj j'}
- (w : haveI := hasColimit.{v, u} F; colimit.ι F j x = colimit.ι F j' x') :
+theorem colimit_eq {F : J ⥤ TypeMax.{v, u}} {j j' : J} {x : F.obj j} {x' : F.obj j'}
+ (w : colimit.ι F j x = colimit.ι F j' x') :
EqvGen (Quot.Rel.{v, u} F) ⟨j, x⟩ ⟨j', x'⟩ := by
apply Quot.eq.1
simpa using congr_arg (colimitEquivQuot.{v, u} F) w
#align category_theory.limits.types.colimit_eq CategoryTheory.Limits.Types.colimit_eq
-theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimit t) (x : t.pt) :
+theorem jointly_surjective (F : J ⥤ TypeMax.{v, u}) {t : Cocone F} (h : IsColimit t) (x : t.pt) :
∃ j y, t.ι.app j y = x := by
suffices (fun x : t.pt => ULift.up (∃ j y, t.ι.app j y = x)) = fun _ => ULift.up.{max v u} True
by
@@ -404,9 +373,8 @@ theorem jointly_surjective (F : J ⥤ Type max v u) {t : Cocone F} (h : IsColimi
#align category_theory.limits.types.jointly_surjective CategoryTheory.Limits.Types.jointly_surjective
/-- A variant of `jointly_surjective` for `x : colimit F`. -/
-theorem jointly_surjective' {F : J ⥤ Type max v u} (x : haveI := hasColimit.{v, u} F; colimit F) :
- haveI := hasColimit.{v, u} F; ∃ j y, colimit.ι F j y = x := by
- haveI := hasColimit.{v, u} F
+theorem jointly_surjective' {F : J ⥤ TypeMax.{v, u}} (x : colimit F) :
+ ∃ j y, colimit.ι F j y = x := by
exact jointly_surjective.{v, u} F (colimit.isColimit F) x
#align category_theory.limits.types.jointly_surjective' CategoryTheory.Limits.Types.jointly_surjective'
@@ -415,7 +383,7 @@ namespace FilteredColimit
/- For filtered colimits of types, we can give an explicit description
of the equivalence relation generated by the relation used to form
the colimit. -/
-variable (F : J ⥤ Type max v u)
+variable (F : J ⥤ TypeMax.{v, u})
/-- An alternative relation on `Σ j, F.obj j`,
which generates the same equivalence relation as we use to define the colimit in `Type` above,
@@ -424,17 +392,17 @@ but that is more convenient when working with filtered colimits.
Elements in `F.obj j` and `F.obj j'` are equivalent if there is some `k : J` to the right
where their images are equal.
-/
-protected def Rel (x y : Σj, F.obj j) : Prop :=
+protected def Rel (x y : Σ j, F.obj j) : Prop :=
∃ (k : _)(f : x.1 ⟶ k)(g : y.1 ⟶ k), F.map f x.2 = F.map g y.2
#align category_theory.limits.types.filtered_colimit.rel CategoryTheory.Limits.Types.FilteredColimit.Rel
-theorem rel_of_quot_rel (x y : Σj, F.obj j) :
+theorem rel_of_quot_rel (x y : Σ j, F.obj j) :
Quot.Rel.{v, u} F x y → FilteredColimit.Rel.{v, u} F x y :=
fun ⟨f, h⟩ => ⟨y.1, f, 𝟙 y.1, by rw [← h, FunctorToTypes.map_id_apply]⟩
#align category_theory.limits.types.filtered_colimit.rel_of_quot_rel CategoryTheory.Limits.Types.FilteredColimit.rel_of_quot_rel
-theorem eqvGen_quot_rel_of_rel (x y : Σj, F.obj j) :
- FilteredColimit.Rel.{v, u} F x y → EqvGen (Quot.Rel.{v, u} F) x y := fun ⟨k, f, g, h⟩ => by
+theorem eqvGen_quot_rel_of_rel (x y : Σ j, F.obj j) :
+ FilteredColimit.Rel.{v, u} F x y → EqvGen (Quot.Rel.{v, u} F) x y := fun ⟨k, f, g, h⟩ => by
refine' EqvGen.trans _ ⟨k, F.map f x.2⟩ _ _ _
. exact (EqvGen.rel _ _ ⟨f, rfl⟩)
. exact (EqvGen.symm _ _ (EqvGen.rel _ _ ⟨g, h⟩))
@@ -450,7 +418,6 @@ noncomputable def isColimitOf (t : Cocone F) (hsurj : ∀ x : t.pt, ∃ i xi, x
IsColimit t := by
-- Strategy: Prove that the map from "the" colimit of F (defined above) to t.X
-- is a bijection.
- haveI := hasColimit.{v, u} F
apply IsColimit.ofIsoColimit (colimit.isColimit F)
refine' Cocones.ext (Equiv.toIso (Equiv.ofBijective _ _)) _
· exact colimit.desc F t
@@ -522,10 +489,8 @@ theorem isColimit_eq_iff {t : Cocone F} (ht : IsColimit t) {i j : J} {xi : F.obj
#align category_theory.limits.types.filtered_colimit.is_colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.isColimit_eq_iff
theorem colimit_eq_iff {i j : J} {xi : F.obj i} {xj : F.obj j} :
- haveI := hasColimit.{v, u} F;
colimit.ι F i xi = colimit.ι F j xj ↔
∃ (k : _)(f : i ⟶ k)(g : j ⟶ k), F.map f xi = F.map g xj :=
- haveI := hasColimit.{v, u} F;
isColimit_eq_iff.{v, u} _ (colimit.isColimit F)
#align category_theory.limits.types.filtered_colimit.colimit_eq_iff CategoryTheory.Limits.Types.FilteredColimit.colimit_eq_iff
@@ -26,9 +26,7 @@ and that these agree with the range of a function.
universe v u
-open CategoryTheory
-
-open CategoryTheory.Limits
+open CategoryTheory CategoryTheory.Limits
namespace CategoryTheory.Limits.Types
@@ -37,8 +35,7 @@ variable {J : Type v} [SmallCategory J]
/-- (internal implementation) the limit cone of a functor,
implemented as flat sections of a pi type
-/
-def limitCone (F : J ⥤ Type max v u) : Cone F
- where
+def limitCone (F : J ⥤ Type max v u) : Cone F where
pt := F.sections
π :=
{ app := fun j u => u.val j
@@ -65,8 +62,8 @@ def limitConeIsLimit (F : J ⥤ Type max v u) : IsLimit (limitCone.{v, u} F) whe
See <https://stacks.math.columbia.edu/tag/002U>.
-/
-instance hasLimitsOfSize : HasLimitsOfSize.{v} (Type max v u)
- where has_limits_of_shape _ := --J 𝒥 :=
+instance hasLimitsOfSize : HasLimitsOfSize.{v} (Type max v u) where
+ has_limits_of_shape _ := --J 𝒥 :=
{ has_limit := fun F =>
HasLimit.mk
{ cone := limitCone.{v, u} F
@@ -99,7 +96,7 @@ theorem isLimitEquivSections_apply {F : J ⥤ Type max v u} {c : Cone F} (t : Is
theorem isLimitEquivSections_symm_apply {F : J ⥤ Type max v u} {c : Cone F} (t : IsLimit c)
(x : F.sections) (j : J) :
c.π.app j ((isLimitEquivSections.{v, u} t).symm x) = (x : ∀ j, F.obj j) j := by
- obtain ⟨x, rfl⟩ :=(isLimitEquivSections.{v, u} t).surjective x
+ obtain ⟨x, rfl⟩ := (isLimitEquivSections.{v, u} t).surjective x
simp
#align category_theory.limits.types.is_limit_equiv_sections_symm_apply CategoryTheory.Limits.Types.isLimitEquivSections_symm_apply
@@ -246,7 +243,7 @@ theorem Limit.map_π_apply' {F G : J ⥤ Type v} (α : F ⟶ G) (j : J)
/--
The relation defining the quotient type which implements the colimit of a functor `F : J ⥤ Type u`.
-See `category_theory.limits.types.quot`.
+See `CategoryTheory.Limits.Types.Quot`.
-/
def Quot.Rel (F : J ⥤ Type max v u) : (Σ j, F.obj j) → (Σ j, F.obj j) → Prop := fun p p' =>
∃ f : p.1 ⟶ p'.1, p'.2 = F.map f p.2
@@ -264,8 +261,7 @@ def Quot (F : J ⥤ Type max v u) : Type max v u :=
/-- (internal implementation) the colimit cocone of a functor,
implemented as a quotient of a sigma type
-/
-def colimitCocone (F : J ⥤ Type max v u) : Cocone F
- where
+def colimitCocone (F : J ⥤ Type max v u) : Cocone F where
pt := Quot.{v, u} F
ι :=
{ app := fun j x => Quot.mk _ ⟨j, x⟩
@@ -291,10 +287,9 @@ def colimitCoconeIsColimit (F : J ⥤ Type max v u) : IsColimit (colimitCocone.{
See <https://stacks.math.columbia.edu/tag/002U>.
-/
-instance hasColimitsOfSize : HasColimitsOfSize.{v} (Type max v u)
- where has_colimits_of_shape _ :=
- {
- has_colimit := fun F =>
+instance hasColimitsOfSize : HasColimitsOfSize.{v} (Type max v u) where
+ has_colimits_of_shape _ :=
+ { has_colimit := fun F =>
HasColimit.mk
{ cocone := colimitCocone.{v, u} F
isColimit := colimitCoconeIsColimit F } }
@@ -573,16 +568,14 @@ theorem Image.lift_fac (F' : MonoFactorisation f) : Image.lift F' ≫ F'.m = Ima
end
/-- the factorisation of any morphism in Type through a mono. -/
-def monoFactorisation : MonoFactorisation f
- where
+def monoFactorisation : MonoFactorisation f where
I := Image f
m := Image.ι f
e := Set.rangeFactorization f
#align category_theory.limits.types.mono_factorisation CategoryTheory.Limits.Types.monoFactorisation
/-- the factorisation through a mono has the universal property of the image. -/
-noncomputable def isImage : IsImage (monoFactorisation f)
- where
+noncomputable def isImage : IsImage (monoFactorisation f) where
lift := Image.lift
lift_fac := Image.lift_fac
#align category_theory.limits.types.is_image CategoryTheory.Limits.Types.isImage
@@ -590,7 +583,8 @@ noncomputable def isImage : IsImage (monoFactorisation f)
instance : HasImage f :=
HasImage.mk ⟨_, isImage f⟩
-instance : HasImages (Type u) where has_image := by infer_instance
+instance : HasImages (Type u) where
+ has_image := by infer_instance
instance : HasImageMaps (Type u) where
has_image_map {f g} st :=
@@ -79,6 +79,9 @@ instance : HasLimits (Type u) :=
instance hasLimit (F : J ⥤ Type max v u) : HasLimit F :=
(Types.hasLimitsOfSize.{v, u}.has_limits_of_shape J).has_limit F
+instance hasLimit' (F : J ⥤ Type v) : HasLimit F :=
+ hasLimit.{v, v} F
+
/-- The equivalence between a limiting cone of `F` in `Type u` and the "concrete" definition as the
sections of `F`.
-/
@@ -304,7 +307,7 @@ instance hasColimit (F : J ⥤ Type max v u) : HasColimit F :=
(Types.hasColimitsOfSize.{v, u}.has_colimits_of_shape J).has_colimit F
instance hasColimit' (F : J ⥤ Type max v) : HasColimit F :=
- (Types.hasColimitsOfSize.{v, v}.has_colimits_of_shape J).has_colimit F
+ hasColimit.{v, v} F
/-- The equivalence between the abstract colimit of `F` in `Type u`
and the "concrete" definition as a quotient.
The unported dependencies are