category_theory.limits.shapes.finite_limits
⟷
Mathlib.CategoryTheory.Limits.Shapes.FiniteLimits
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)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,7 +3,7 @@ Copyright (c) 2019 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
-/
-import CategoryTheory.FinCategory
+import CategoryTheory.FinCategory.Basic
import CategoryTheory.Limits.Shapes.BinaryProducts
import CategoryTheory.Limits.Shapes.Equalizers
import CategoryTheory.Limits.Shapes.WidePullbacks
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -111,7 +111,7 @@ instance (priority := 100) hasColimitsOfShape_of_hasFiniteColimits (J : Type w)
instance (priority := 100) hasFiniteColimits_of_hasColimitsOfSize [HasColimitsOfSize.{v', u'} C] :
HasFiniteColimits C :=
⟨fun J hJ hJ' =>
- haveI := hasColimitsOfSize_shrink.{0, 0} C
+ haveI := hasColimitsOfSizeShrink.{0, 0} C
has_colimits_of_shape_of_equivalence (fin_category.equiv_as_type J)⟩
#align category_theory.limits.has_finite_colimits_of_has_colimits_of_size CategoryTheory.Limits.hasFiniteColimits_of_hasColimitsOfSize
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,12 +3,12 @@ Copyright (c) 2019 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
-/
-import Mathbin.CategoryTheory.FinCategory
-import Mathbin.CategoryTheory.Limits.Shapes.BinaryProducts
-import Mathbin.CategoryTheory.Limits.Shapes.Equalizers
-import Mathbin.CategoryTheory.Limits.Shapes.WidePullbacks
-import Mathbin.CategoryTheory.Limits.Shapes.Pullbacks
-import Mathbin.Data.Fintype.Option
+import CategoryTheory.FinCategory
+import CategoryTheory.Limits.Shapes.BinaryProducts
+import CategoryTheory.Limits.Shapes.Equalizers
+import CategoryTheory.Limits.Shapes.WidePullbacks
+import CategoryTheory.Limits.Shapes.Pullbacks
+import Data.Fintype.Option
#align_import category_theory.limits.shapes.finite_limits from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,11 +2,6 @@
Copyright (c) 2019 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.limits.shapes.finite_limits
-! leanprover-community/mathlib commit f47581155c818e6361af4e4fda60d27d020c226b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.FinCategory
import Mathbin.CategoryTheory.Limits.Shapes.BinaryProducts
@@ -15,6 +10,8 @@ import Mathbin.CategoryTheory.Limits.Shapes.WidePullbacks
import Mathbin.CategoryTheory.Limits.Shapes.Pullbacks
import Mathbin.Data.Fintype.Option
+#align_import category_theory.limits.shapes.finite_limits from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
+
/-!
# Categories with finite limits.
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -83,7 +83,7 @@ theorem hasFiniteLimits_of_hasFiniteLimits_of_size
HasFiniteLimits C :=
⟨fun J hJ hhJ => by
skip
- let this : Category.{w, w} (ULiftHom.{w} (ULift.{w, 0} J)) := by apply ULiftHom.category.{0};
+ let this.1 : Category.{w, w} (ULiftHom.{w} (ULift.{w, 0} J)) := by apply ULiftHom.category.{0};
exact CategoryTheory.uliftCategory J
haveI := h (ULiftHom.{w} (ULift.{w} J)) CategoryTheory.finCategoryUlift
exact has_limits_of_shape_of_equivalence (ULiftHomULiftCategory.equiv.{w, w} J).symm⟩
@@ -129,7 +129,7 @@ theorem hasFiniteColimits_of_hasFiniteColimits_of_size
HasFiniteColimits C :=
⟨fun J hJ hhJ => by
skip
- let this : Category.{w, w} (ULiftHom.{w} (ULift.{w, 0} J)) := by apply ULiftHom.category.{0};
+ let this.1 : Category.{w, w} (ULiftHom.{w} (ULift.{w, 0} J)) := by apply ULiftHom.category.{0};
exact CategoryTheory.uliftCategory J
haveI := h (ULiftHom.{w} (ULift.{w} J)) CategoryTheory.finCategoryUlift
exact has_colimits_of_shape_of_equivalence (ULiftHomULiftCategory.equiv.{w, w} J).symm⟩
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -78,16 +78,12 @@ instance (priority := 100) hasFiniteLimits_of_hasLimits [HasLimits C] : HasFinit
arbitrary universe. -/
theorem hasFiniteLimits_of_hasFiniteLimits_of_size
(h :
- ∀ (J : Type w) {𝒥 : SmallCategory J} (hJ : @FinCategory J 𝒥),
- by
- skip
+ ∀ (J : Type w) {𝒥 : SmallCategory J} (hJ : @FinCategory J 𝒥), by skip;
exact has_limits_of_shape J C) :
HasFiniteLimits C :=
⟨fun J hJ hhJ => by
skip
- let this : Category.{w, w} (ULiftHom.{w} (ULift.{w, 0} J)) :=
- by
- apply ULiftHom.category.{0}
+ let this : Category.{w, w} (ULiftHom.{w} (ULift.{w, 0} J)) := by apply ULiftHom.category.{0};
exact CategoryTheory.uliftCategory J
haveI := h (ULiftHom.{w} (ULift.{w} J)) CategoryTheory.finCategoryUlift
exact has_limits_of_shape_of_equivalence (ULiftHomULiftCategory.equiv.{w, w} J).symm⟩
@@ -128,16 +124,12 @@ instance (priority := 100) hasFiniteColimits_of_hasColimitsOfSize [HasColimitsOf
arbitrary universe. -/
theorem hasFiniteColimits_of_hasFiniteColimits_of_size
(h :
- ∀ (J : Type w) {𝒥 : SmallCategory J} (hJ : @FinCategory J 𝒥),
- by
- skip
+ ∀ (J : Type w) {𝒥 : SmallCategory J} (hJ : @FinCategory J 𝒥), by skip;
exact has_colimits_of_shape J C) :
HasFiniteColimits C :=
⟨fun J hJ hhJ => by
skip
- let this : Category.{w, w} (ULiftHom.{w} (ULift.{w, 0} J)) :=
- by
- apply ULiftHom.category.{0}
+ let this : Category.{w, w} (ULiftHom.{w} (ULift.{w, 0} J)) := by apply ULiftHom.category.{0};
exact CategoryTheory.uliftCategory J
haveI := h (ULiftHom.{w} (ULift.{w} J)) CategoryTheory.finCategoryUlift
exact has_colimits_of_shape_of_equivalence (ULiftHomULiftCategory.equiv.{w, w} J).symm⟩
@@ -185,9 +177,7 @@ attribute [local tidy] tactic.case_bash
namespace WidePullbackShape
#print CategoryTheory.Limits.WidePullbackShape.fintypeObj /-
-instance fintypeObj [Fintype J] : Fintype (WidePullbackShape J) :=
- by
- rw [wide_pullback_shape]
+instance fintypeObj [Fintype J] : Fintype (WidePullbackShape J) := by rw [wide_pullback_shape];
infer_instance
#align category_theory.limits.wide_pullback_shape.fintype_obj CategoryTheory.Limits.WidePullbackShape.fintypeObj
-/
@@ -213,9 +203,7 @@ end WidePullbackShape
namespace WidePushoutShape
#print CategoryTheory.Limits.WidePushoutShape.fintypeObj /-
-instance fintypeObj [Fintype J] : Fintype (WidePushoutShape J) :=
- by
- rw [wide_pushout_shape]
+instance fintypeObj [Fintype J] : Fintype (WidePushoutShape J) := by rw [wide_pushout_shape];
infer_instance
#align category_theory.limits.wide_pushout_shape.fintype_obj CategoryTheory.Limits.WidePushoutShape.fintypeObj
-/
@@ -263,11 +251,8 @@ class HasFiniteWidePullbacks : Prop where
#print CategoryTheory.Limits.hasLimitsOfShape_widePullbackShape /-
instance hasLimitsOfShape_widePullbackShape (J : Type) [Finite J] [HasFiniteWidePullbacks C] :
- HasLimitsOfShape (WidePullbackShape J) C :=
- by
- cases nonempty_fintype J
- haveI := @has_finite_wide_pullbacks.out C _ _ J
- infer_instance
+ HasLimitsOfShape (WidePullbackShape J) C := by cases nonempty_fintype J;
+ haveI := @has_finite_wide_pullbacks.out C _ _ J; infer_instance
#align category_theory.limits.has_limits_of_shape_wide_pullback_shape CategoryTheory.Limits.hasLimitsOfShape_widePullbackShape
-/
@@ -282,11 +267,8 @@ class HasFiniteWidePushouts : Prop where
#print CategoryTheory.Limits.hasColimitsOfShape_widePushoutShape /-
instance hasColimitsOfShape_widePushoutShape (J : Type) [Finite J] [HasFiniteWidePushouts C] :
- HasColimitsOfShape (WidePushoutShape J) C :=
- by
- cases nonempty_fintype J
- haveI := @has_finite_wide_pushouts.out C _ _ J
- infer_instance
+ HasColimitsOfShape (WidePushoutShape J) C := by cases nonempty_fintype J;
+ haveI := @has_finite_wide_pushouts.out C _ _ J; infer_instance
#align category_theory.limits.has_colimits_of_shape_wide_pushout_shape CategoryTheory.Limits.hasColimitsOfShape_widePushoutShape
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/21e3562c5e12d846c7def5eff8cdbc520d7d4936
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
! This file was ported from Lean 3 source module category_theory.limits.shapes.finite_limits
-! leanprover-community/mathlib commit c3019c79074b0619edb4b27553a91b2e82242395
+! leanprover-community/mathlib commit f47581155c818e6361af4e4fda60d27d020c226b
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -18,6 +18,9 @@ import Mathbin.Data.Fintype.Option
/-!
# Categories with finite limits.
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
A typeclass for categories with all finite (co)limits.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/3b267e70a936eebb21ab546f49a8df34dd300b25
@@ -32,6 +32,7 @@ namespace CategoryTheory.Limits
variable (C : Type u) [Category.{v} C]
+#print CategoryTheory.Limits.HasFiniteLimits /-
-- We can't just made this an `abbreviation`
-- because of https://github.com/leanprover-community/lean/issues/429
/-- A category has all finite limits if every functor `J ⥤ C` with a `fin_category J`
@@ -42,26 +43,34 @@ This is often called 'finitely complete'.
class HasFiniteLimits : Prop where
out (J : Type) [𝒥 : SmallCategory J] [@FinCategory J 𝒥] : @HasLimitsOfShape J 𝒥 C _
#align category_theory.limits.has_finite_limits CategoryTheory.Limits.HasFiniteLimits
+-/
+#print CategoryTheory.Limits.hasLimitsOfShape_of_hasFiniteLimits /-
instance (priority := 100) hasLimitsOfShape_of_hasFiniteLimits (J : Type w) [SmallCategory J]
[FinCategory J] [HasFiniteLimits C] : HasLimitsOfShape J C :=
by
apply has_limits_of_shape_of_equivalence (fin_category.equiv_as_type J)
apply has_finite_limits.out
#align category_theory.limits.has_limits_of_shape_of_has_finite_limits CategoryTheory.Limits.hasLimitsOfShape_of_hasFiniteLimits
+-/
+#print CategoryTheory.Limits.hasFiniteLimits_of_hasLimitsOfSize /-
instance (priority := 100) hasFiniteLimits_of_hasLimitsOfSize [HasLimitsOfSize.{v', u'} C] :
HasFiniteLimits C :=
⟨fun J hJ hJ' =>
haveI := hasLimitsOfSizeShrink.{0, 0} C
has_limits_of_shape_of_equivalence (fin_category.equiv_as_type J)⟩
#align category_theory.limits.has_finite_limits_of_has_limits_of_size CategoryTheory.Limits.hasFiniteLimits_of_hasLimitsOfSize
+-/
+#print CategoryTheory.Limits.hasFiniteLimits_of_hasLimits /-
/-- If `C` has all limits, it has finite limits. -/
instance (priority := 100) hasFiniteLimits_of_hasLimits [HasLimits C] : HasFiniteLimits C :=
inferInstance
#align category_theory.limits.has_finite_limits_of_has_limits CategoryTheory.Limits.hasFiniteLimits_of_hasLimits
+-/
+#print CategoryTheory.Limits.hasFiniteLimits_of_hasFiniteLimits_of_size /-
/-- We can always derive `has_finite_limits C` by providing limits at an
arbitrary universe. -/
theorem hasFiniteLimits_of_hasFiniteLimits_of_size
@@ -80,7 +89,9 @@ theorem hasFiniteLimits_of_hasFiniteLimits_of_size
haveI := h (ULiftHom.{w} (ULift.{w} J)) CategoryTheory.finCategoryUlift
exact has_limits_of_shape_of_equivalence (ULiftHomULiftCategory.equiv.{w, w} J).symm⟩
#align category_theory.limits.has_finite_limits_of_has_finite_limits_of_size CategoryTheory.Limits.hasFiniteLimits_of_hasFiniteLimits_of_size
+-/
+#print CategoryTheory.Limits.HasFiniteColimits /-
/-- A category has all finite colimits if every functor `J ⥤ C` with a `fin_category J`
instance and `J : Type` has a colimit.
@@ -89,21 +100,27 @@ This is often called 'finitely cocomplete'.
class HasFiniteColimits : Prop where
out (J : Type) [𝒥 : SmallCategory J] [@FinCategory J 𝒥] : @HasColimitsOfShape J 𝒥 C _
#align category_theory.limits.has_finite_colimits CategoryTheory.Limits.HasFiniteColimits
+-/
+#print CategoryTheory.Limits.hasColimitsOfShape_of_hasFiniteColimits /-
instance (priority := 100) hasColimitsOfShape_of_hasFiniteColimits (J : Type w) [SmallCategory J]
[FinCategory J] [HasFiniteColimits C] : HasColimitsOfShape J C :=
by
apply has_colimits_of_shape_of_equivalence (fin_category.equiv_as_type J)
apply has_finite_colimits.out
#align category_theory.limits.has_colimits_of_shape_of_has_finite_colimits CategoryTheory.Limits.hasColimitsOfShape_of_hasFiniteColimits
+-/
+#print CategoryTheory.Limits.hasFiniteColimits_of_hasColimitsOfSize /-
instance (priority := 100) hasFiniteColimits_of_hasColimitsOfSize [HasColimitsOfSize.{v', u'} C] :
HasFiniteColimits C :=
⟨fun J hJ hJ' =>
haveI := hasColimitsOfSize_shrink.{0, 0} C
has_colimits_of_shape_of_equivalence (fin_category.equiv_as_type J)⟩
#align category_theory.limits.has_finite_colimits_of_has_colimits_of_size CategoryTheory.Limits.hasFiniteColimits_of_hasColimitsOfSize
+-/
+#print CategoryTheory.Limits.hasFiniteColimits_of_hasFiniteColimits_of_size /-
/-- We can always derive `has_finite_colimits C` by providing colimits at an
arbitrary universe. -/
theorem hasFiniteColimits_of_hasFiniteColimits_of_size
@@ -122,16 +139,19 @@ theorem hasFiniteColimits_of_hasFiniteColimits_of_size
haveI := h (ULiftHom.{w} (ULift.{w} J)) CategoryTheory.finCategoryUlift
exact has_colimits_of_shape_of_equivalence (ULiftHomULiftCategory.equiv.{w, w} J).symm⟩
#align category_theory.limits.has_finite_colimits_of_has_finite_colimits_of_size CategoryTheory.Limits.hasFiniteColimits_of_hasFiniteColimits_of_size
+-/
section
open WalkingParallelPair WalkingParallelPairHom
+#print CategoryTheory.Limits.fintypeWalkingParallelPair /-
instance fintypeWalkingParallelPair : Fintype WalkingParallelPair
where
elems := [WalkingParallelPair.zero, WalkingParallelPair.one].toFinset
complete x := by cases x <;> simp
#align category_theory.limits.fintype_walking_parallel_pair CategoryTheory.Limits.fintypeWalkingParallelPair
+-/
attribute [local tidy] tactic.case_bash
@@ -161,12 +181,15 @@ attribute [local tidy] tactic.case_bash
namespace WidePullbackShape
+#print CategoryTheory.Limits.WidePullbackShape.fintypeObj /-
instance fintypeObj [Fintype J] : Fintype (WidePullbackShape J) :=
by
rw [wide_pullback_shape]
infer_instance
#align category_theory.limits.wide_pullback_shape.fintype_obj CategoryTheory.Limits.WidePullbackShape.fintypeObj
+-/
+#print CategoryTheory.Limits.WidePullbackShape.fintypeHom /-
instance fintypeHom (j j' : WidePullbackShape J) : Fintype (j ⟶ j')
where
elems := by
@@ -180,17 +203,21 @@ instance fintypeHom (j j' : WidePullbackShape J) : Fintype (j ⟶ j')
· exact ∅
complete := by tidy
#align category_theory.limits.wide_pullback_shape.fintype_hom CategoryTheory.Limits.WidePullbackShape.fintypeHom
+-/
end WidePullbackShape
namespace WidePushoutShape
+#print CategoryTheory.Limits.WidePushoutShape.fintypeObj /-
instance fintypeObj [Fintype J] : Fintype (WidePushoutShape J) :=
by
rw [wide_pushout_shape]
infer_instance
#align category_theory.limits.wide_pushout_shape.fintype_obj CategoryTheory.Limits.WidePushoutShape.fintypeObj
+-/
+#print CategoryTheory.Limits.WidePushoutShape.fintypeHom /-
instance fintypeHom (j j' : WidePushoutShape J) : Fintype (j ⟶ j')
where
elems := by
@@ -204,17 +231,23 @@ instance fintypeHom (j j' : WidePushoutShape J) : Fintype (j ⟶ j')
· exact ∅
complete := by tidy
#align category_theory.limits.wide_pushout_shape.fintype_hom CategoryTheory.Limits.WidePushoutShape.fintypeHom
+-/
end WidePushoutShape
+#print CategoryTheory.Limits.finCategoryWidePullback /-
instance finCategoryWidePullback [Fintype J] : FinCategory (WidePullbackShape J)
where fintypeHom := WidePullbackShape.fintypeHom
#align category_theory.limits.fin_category_wide_pullback CategoryTheory.Limits.finCategoryWidePullback
+-/
+#print CategoryTheory.Limits.finCategoryWidePushout /-
instance finCategoryWidePushout [Fintype J] : FinCategory (WidePushoutShape J)
where fintypeHom := WidePushoutShape.fintypeHom
#align category_theory.limits.fin_category_wide_pushout CategoryTheory.Limits.finCategoryWidePushout
+-/
+#print CategoryTheory.Limits.HasFiniteWidePullbacks /-
-- We can't just made this an `abbreviation`
-- because of https://github.com/leanprover-community/lean/issues/429
/-- `has_finite_wide_pullbacks` represents a choice of wide pullback
@@ -223,7 +256,9 @@ for every finite collection of morphisms
class HasFiniteWidePullbacks : Prop where
out (J : Type) [Fintype J] : HasLimitsOfShape (WidePullbackShape J) C
#align category_theory.limits.has_finite_wide_pullbacks CategoryTheory.Limits.HasFiniteWidePullbacks
+-/
+#print CategoryTheory.Limits.hasLimitsOfShape_widePullbackShape /-
instance hasLimitsOfShape_widePullbackShape (J : Type) [Finite J] [HasFiniteWidePullbacks C] :
HasLimitsOfShape (WidePullbackShape J) C :=
by
@@ -231,14 +266,18 @@ instance hasLimitsOfShape_widePullbackShape (J : Type) [Finite J] [HasFiniteWide
haveI := @has_finite_wide_pullbacks.out C _ _ J
infer_instance
#align category_theory.limits.has_limits_of_shape_wide_pullback_shape CategoryTheory.Limits.hasLimitsOfShape_widePullbackShape
+-/
+#print CategoryTheory.Limits.HasFiniteWidePushouts /-
/-- `has_finite_wide_pushouts` represents a choice of wide pushout
for every finite collection of morphisms
-/
class HasFiniteWidePushouts : Prop where
out (J : Type) [Fintype J] : HasColimitsOfShape (WidePushoutShape J) C
#align category_theory.limits.has_finite_wide_pushouts CategoryTheory.Limits.HasFiniteWidePushouts
+-/
+#print CategoryTheory.Limits.hasColimitsOfShape_widePushoutShape /-
instance hasColimitsOfShape_widePushoutShape (J : Type) [Finite J] [HasFiniteWidePushouts C] :
HasColimitsOfShape (WidePushoutShape J) C :=
by
@@ -246,14 +285,18 @@ instance hasColimitsOfShape_widePushoutShape (J : Type) [Finite J] [HasFiniteWid
haveI := @has_finite_wide_pushouts.out C _ _ J
infer_instance
#align category_theory.limits.has_colimits_of_shape_wide_pushout_shape CategoryTheory.Limits.hasColimitsOfShape_widePushoutShape
+-/
+#print CategoryTheory.Limits.hasFiniteWidePullbacks_of_hasFiniteLimits /-
/-- Finite wide pullbacks are finite limits, so if `C` has all finite limits,
it also has finite wide pullbacks
-/
theorem hasFiniteWidePullbacks_of_hasFiniteLimits [HasFiniteLimits C] : HasFiniteWidePullbacks C :=
⟨fun J _ => has_finite_limits.out _⟩
#align category_theory.limits.has_finite_wide_pullbacks_of_has_finite_limits CategoryTheory.Limits.hasFiniteWidePullbacks_of_hasFiniteLimits
+-/
+#print CategoryTheory.Limits.hasFiniteWidePushouts_of_has_finite_limits /-
/-- Finite wide pushouts are finite colimits, so if `C` has all finite colimits,
it also has finite wide pushouts
-/
@@ -261,12 +304,15 @@ theorem hasFiniteWidePushouts_of_has_finite_limits [HasFiniteColimits C] :
HasFiniteWidePushouts C :=
⟨fun J _ => has_finite_colimits.out _⟩
#align category_theory.limits.has_finite_wide_pushouts_of_has_finite_limits CategoryTheory.Limits.hasFiniteWidePushouts_of_has_finite_limits
+-/
+#print CategoryTheory.Limits.fintypeWalkingPair /-
instance fintypeWalkingPair : Fintype WalkingPair
where
elems := {WalkingPair.left, WalkingPair.right}
complete x := by cases x <;> simp
#align category_theory.limits.fintype_walking_pair CategoryTheory.Limits.fintypeWalkingPair
+-/
/-- Pullbacks are finite limits, so if `C` has all finite limits, it also has all pullbacks -/
example [HasFiniteWidePullbacks C] : HasPullbacks C := by infer_instance
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -53,7 +53,7 @@ instance (priority := 100) hasLimitsOfShape_of_hasFiniteLimits (J : Type w) [Sma
instance (priority := 100) hasFiniteLimits_of_hasLimitsOfSize [HasLimitsOfSize.{v', u'} C] :
HasFiniteLimits C :=
⟨fun J hJ hJ' =>
- haveI := hasLimitsOfSize_shrink.{0, 0} C
+ haveI := hasLimitsOfSizeShrink.{0, 0} C
has_limits_of_shape_of_equivalence (fin_category.equiv_as_type J)⟩
#align category_theory.limits.has_finite_limits_of_has_limits_of_size CategoryTheory.Limits.hasFiniteLimits_of_hasLimitsOfSize
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -43,28 +43,28 @@ class HasFiniteLimits : Prop where
out (J : Type) [𝒥 : SmallCategory J] [@FinCategory J 𝒥] : @HasLimitsOfShape J 𝒥 C _
#align category_theory.limits.has_finite_limits CategoryTheory.Limits.HasFiniteLimits
-instance (priority := 100) hasLimitsOfShapeOfHasFiniteLimits (J : Type w) [SmallCategory J]
+instance (priority := 100) hasLimitsOfShape_of_hasFiniteLimits (J : Type w) [SmallCategory J]
[FinCategory J] [HasFiniteLimits C] : HasLimitsOfShape J C :=
by
apply has_limits_of_shape_of_equivalence (fin_category.equiv_as_type J)
apply has_finite_limits.out
-#align category_theory.limits.has_limits_of_shape_of_has_finite_limits CategoryTheory.Limits.hasLimitsOfShapeOfHasFiniteLimits
+#align category_theory.limits.has_limits_of_shape_of_has_finite_limits CategoryTheory.Limits.hasLimitsOfShape_of_hasFiniteLimits
-instance (priority := 100) hasFiniteLimitsOfHasLimitsOfSize [HasLimitsOfSize.{v', u'} C] :
+instance (priority := 100) hasFiniteLimits_of_hasLimitsOfSize [HasLimitsOfSize.{v', u'} C] :
HasFiniteLimits C :=
⟨fun J hJ hJ' =>
- haveI := hasLimitsOfSizeShrink.{0, 0} C
+ haveI := hasLimitsOfSize_shrink.{0, 0} C
has_limits_of_shape_of_equivalence (fin_category.equiv_as_type J)⟩
-#align category_theory.limits.has_finite_limits_of_has_limits_of_size CategoryTheory.Limits.hasFiniteLimitsOfHasLimitsOfSize
+#align category_theory.limits.has_finite_limits_of_has_limits_of_size CategoryTheory.Limits.hasFiniteLimits_of_hasLimitsOfSize
/-- If `C` has all limits, it has finite limits. -/
-instance (priority := 100) hasFiniteLimitsOfHasLimits [HasLimits C] : HasFiniteLimits C :=
+instance (priority := 100) hasFiniteLimits_of_hasLimits [HasLimits C] : HasFiniteLimits C :=
inferInstance
-#align category_theory.limits.has_finite_limits_of_has_limits CategoryTheory.Limits.hasFiniteLimitsOfHasLimits
+#align category_theory.limits.has_finite_limits_of_has_limits CategoryTheory.Limits.hasFiniteLimits_of_hasLimits
/-- We can always derive `has_finite_limits C` by providing limits at an
arbitrary universe. -/
-theorem hasFiniteLimitsOfHasFiniteLimitsOfSize
+theorem hasFiniteLimits_of_hasFiniteLimits_of_size
(h :
∀ (J : Type w) {𝒥 : SmallCategory J} (hJ : @FinCategory J 𝒥),
by
@@ -79,7 +79,7 @@ theorem hasFiniteLimitsOfHasFiniteLimitsOfSize
exact CategoryTheory.uliftCategory J
haveI := h (ULiftHom.{w} (ULift.{w} J)) CategoryTheory.finCategoryUlift
exact has_limits_of_shape_of_equivalence (ULiftHomULiftCategory.equiv.{w, w} J).symm⟩
-#align category_theory.limits.has_finite_limits_of_has_finite_limits_of_size CategoryTheory.Limits.hasFiniteLimitsOfHasFiniteLimitsOfSize
+#align category_theory.limits.has_finite_limits_of_has_finite_limits_of_size CategoryTheory.Limits.hasFiniteLimits_of_hasFiniteLimits_of_size
/-- A category has all finite colimits if every functor `J ⥤ C` with a `fin_category J`
instance and `J : Type` has a colimit.
@@ -90,23 +90,23 @@ class HasFiniteColimits : Prop where
out (J : Type) [𝒥 : SmallCategory J] [@FinCategory J 𝒥] : @HasColimitsOfShape J 𝒥 C _
#align category_theory.limits.has_finite_colimits CategoryTheory.Limits.HasFiniteColimits
-instance (priority := 100) hasColimitsOfShapeOfHasFiniteColimits (J : Type w) [SmallCategory J]
+instance (priority := 100) hasColimitsOfShape_of_hasFiniteColimits (J : Type w) [SmallCategory J]
[FinCategory J] [HasFiniteColimits C] : HasColimitsOfShape J C :=
by
apply has_colimits_of_shape_of_equivalence (fin_category.equiv_as_type J)
apply has_finite_colimits.out
-#align category_theory.limits.has_colimits_of_shape_of_has_finite_colimits CategoryTheory.Limits.hasColimitsOfShapeOfHasFiniteColimits
+#align category_theory.limits.has_colimits_of_shape_of_has_finite_colimits CategoryTheory.Limits.hasColimitsOfShape_of_hasFiniteColimits
-instance (priority := 100) hasFiniteColimitsOfHasColimitsOfSize [HasColimitsOfSize.{v', u'} C] :
+instance (priority := 100) hasFiniteColimits_of_hasColimitsOfSize [HasColimitsOfSize.{v', u'} C] :
HasFiniteColimits C :=
⟨fun J hJ hJ' =>
- haveI := hasColimitsOfSizeShrink.{0, 0} C
+ haveI := hasColimitsOfSize_shrink.{0, 0} C
has_colimits_of_shape_of_equivalence (fin_category.equiv_as_type J)⟩
-#align category_theory.limits.has_finite_colimits_of_has_colimits_of_size CategoryTheory.Limits.hasFiniteColimitsOfHasColimitsOfSize
+#align category_theory.limits.has_finite_colimits_of_has_colimits_of_size CategoryTheory.Limits.hasFiniteColimits_of_hasColimitsOfSize
/-- We can always derive `has_finite_colimits C` by providing colimits at an
arbitrary universe. -/
-theorem hasFiniteColimitsOfHasFiniteColimitsOfSize
+theorem hasFiniteColimits_of_hasFiniteColimits_of_size
(h :
∀ (J : Type w) {𝒥 : SmallCategory J} (hJ : @FinCategory J 𝒥),
by
@@ -121,7 +121,7 @@ theorem hasFiniteColimitsOfHasFiniteColimitsOfSize
exact CategoryTheory.uliftCategory J
haveI := h (ULiftHom.{w} (ULift.{w} J)) CategoryTheory.finCategoryUlift
exact has_colimits_of_shape_of_equivalence (ULiftHomULiftCategory.equiv.{w, w} J).symm⟩
-#align category_theory.limits.has_finite_colimits_of_has_finite_colimits_of_size CategoryTheory.Limits.hasFiniteColimitsOfHasFiniteColimitsOfSize
+#align category_theory.limits.has_finite_colimits_of_has_finite_colimits_of_size CategoryTheory.Limits.hasFiniteColimits_of_hasFiniteColimits_of_size
section
@@ -224,13 +224,13 @@ class HasFiniteWidePullbacks : Prop where
out (J : Type) [Fintype J] : HasLimitsOfShape (WidePullbackShape J) C
#align category_theory.limits.has_finite_wide_pullbacks CategoryTheory.Limits.HasFiniteWidePullbacks
-instance hasLimitsOfShapeWidePullbackShape (J : Type) [Finite J] [HasFiniteWidePullbacks C] :
+instance hasLimitsOfShape_widePullbackShape (J : Type) [Finite J] [HasFiniteWidePullbacks C] :
HasLimitsOfShape (WidePullbackShape J) C :=
by
cases nonempty_fintype J
haveI := @has_finite_wide_pullbacks.out C _ _ J
infer_instance
-#align category_theory.limits.has_limits_of_shape_wide_pullback_shape CategoryTheory.Limits.hasLimitsOfShapeWidePullbackShape
+#align category_theory.limits.has_limits_of_shape_wide_pullback_shape CategoryTheory.Limits.hasLimitsOfShape_widePullbackShape
/-- `has_finite_wide_pushouts` represents a choice of wide pushout
for every finite collection of morphisms
@@ -239,27 +239,28 @@ class HasFiniteWidePushouts : Prop where
out (J : Type) [Fintype J] : HasColimitsOfShape (WidePushoutShape J) C
#align category_theory.limits.has_finite_wide_pushouts CategoryTheory.Limits.HasFiniteWidePushouts
-instance hasColimitsOfShapeWidePushoutShape (J : Type) [Finite J] [HasFiniteWidePushouts C] :
+instance hasColimitsOfShape_widePushoutShape (J : Type) [Finite J] [HasFiniteWidePushouts C] :
HasColimitsOfShape (WidePushoutShape J) C :=
by
cases nonempty_fintype J
haveI := @has_finite_wide_pushouts.out C _ _ J
infer_instance
-#align category_theory.limits.has_colimits_of_shape_wide_pushout_shape CategoryTheory.Limits.hasColimitsOfShapeWidePushoutShape
+#align category_theory.limits.has_colimits_of_shape_wide_pushout_shape CategoryTheory.Limits.hasColimitsOfShape_widePushoutShape
/-- Finite wide pullbacks are finite limits, so if `C` has all finite limits,
it also has finite wide pullbacks
-/
-theorem hasFiniteWidePullbacksOfHasFiniteLimits [HasFiniteLimits C] : HasFiniteWidePullbacks C :=
+theorem hasFiniteWidePullbacks_of_hasFiniteLimits [HasFiniteLimits C] : HasFiniteWidePullbacks C :=
⟨fun J _ => has_finite_limits.out _⟩
-#align category_theory.limits.has_finite_wide_pullbacks_of_has_finite_limits CategoryTheory.Limits.hasFiniteWidePullbacksOfHasFiniteLimits
+#align category_theory.limits.has_finite_wide_pullbacks_of_has_finite_limits CategoryTheory.Limits.hasFiniteWidePullbacks_of_hasFiniteLimits
/-- Finite wide pushouts are finite colimits, so if `C` has all finite colimits,
it also has finite wide pushouts
-/
-theorem hasFiniteWidePushoutsOfHasFiniteLimits [HasFiniteColimits C] : HasFiniteWidePushouts C :=
+theorem hasFiniteWidePushouts_of_has_finite_limits [HasFiniteColimits C] :
+ HasFiniteWidePushouts C :=
⟨fun J _ => has_finite_colimits.out _⟩
-#align category_theory.limits.has_finite_wide_pushouts_of_has_finite_limits CategoryTheory.Limits.hasFiniteWidePushoutsOfHasFiniteLimits
+#align category_theory.limits.has_finite_wide_pushouts_of_has_finite_limits CategoryTheory.Limits.hasFiniteWidePushouts_of_has_finite_limits
instance fintypeWalkingPair : Fintype WalkingPair
where
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -146,7 +146,7 @@ instance instFintypeWalkingParallelPairHom (j j' : WalkingParallelPair) :
(WalkingParallelPair.recOn j' ∅ [WalkingParallelPairHom.id one].toFinset)
complete := by
rintro (_|_) <;> simp
- · cases j <;> simp
+ cases j <;> simp
end
instance : FinCategory WalkingParallelPair where
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>
@@ -107,6 +107,9 @@ instance (priority := 100) hasFiniteColimits_of_hasColimitsOfSize [HasColimitsOf
(@FinCategory.categoryAsType J (@FinCategory.fintypeObj J hJ hJ') hJ hJ') _ _ J hJ F _
#align category_theory.limits.has_finite_colimits_of_has_colimits_of_size CategoryTheory.Limits.hasFiniteColimits_of_hasColimitsOfSize
+instance (priority := 100) hasFiniteColimits_of_hasColimits [HasColimits C] : HasFiniteColimits C :=
+ inferInstance
+
/-- We can always derive `HasFiniteColimits C` by providing colimits at an
arbitrary universe. -/
theorem hasFiniteColimits_of_hasFiniteColimits_of_size
Minor clean up of imports, getting ready to minimize the heartbeats variation observed/reduced in #9732.
This has the effect of slightly (although not enough) delaying the import of positivity
(which in turn imports the kitchen sink) into the category theory development.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -3,7 +3,7 @@ Copyright (c) 2019 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
-/
-import Mathlib.CategoryTheory.FinCategory
+import Mathlib.CategoryTheory.FinCategory.AsType
import Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts
import Mathlib.CategoryTheory.Limits.Shapes.Equalizers
import Mathlib.CategoryTheory.Limits.Shapes.WidePullbacks
@@ -163,13 +163,11 @@ variable {J : Type v}
namespace WidePullbackShape
-instance fintypeObj [Fintype J] : Fintype (WidePullbackShape J) := by
- rw [WidePullbackShape]
- infer_instance
+instance fintypeObj [Fintype J] : Fintype (WidePullbackShape J) :=
+ instFintypeOption
#align category_theory.limits.wide_pullback_shape.fintype_obj CategoryTheory.Limits.WidePullbackShape.fintypeObj
-instance fintypeHom (j j' : WidePullbackShape J) : Fintype (j ⟶ j')
- where
+instance fintypeHom (j j' : WidePullbackShape J) : Fintype (j ⟶ j') where
elems := by
cases' j' with j'
· cases' j with j
@@ -226,12 +224,11 @@ for every finite collection of morphisms
-/
class HasFiniteWidePullbacks : Prop where
/-- `C` has all wide pullbacks any Fintype `J`-/
- out (J : Type) [Fintype J] : HasLimitsOfShape (WidePullbackShape J) C
+ out (J : Type) [Finite J] : HasLimitsOfShape (WidePullbackShape J) C
#align category_theory.limits.has_finite_wide_pullbacks CategoryTheory.Limits.HasFiniteWidePullbacks
instance hasLimitsOfShape_widePullbackShape (J : Type) [Finite J] [HasFiniteWidePullbacks C] :
HasLimitsOfShape (WidePullbackShape J) C := by
- cases nonempty_fintype J
haveI := @HasFiniteWidePullbacks.out C _ _ J
infer_instance
#align category_theory.limits.has_limits_of_shape_wide_pullback_shape CategoryTheory.Limits.hasLimitsOfShape_widePullbackShape
@@ -241,12 +238,11 @@ for every finite collection of morphisms
-/
class HasFiniteWidePushouts : Prop where
/-- `C` has all wide pushouts any Fintype `J`-/
- out (J : Type) [Fintype J] : HasColimitsOfShape (WidePushoutShape J) C
+ out (J : Type) [Finite J] : HasColimitsOfShape (WidePushoutShape J) C
#align category_theory.limits.has_finite_wide_pushouts CategoryTheory.Limits.HasFiniteWidePushouts
instance hasColimitsOfShape_widePushoutShape (J : Type) [Finite J] [HasFiniteWidePushouts C] :
HasColimitsOfShape (WidePushoutShape J) C := by
- cases nonempty_fintype J
haveI := @HasFiniteWidePushouts.out C _ _ J
infer_instance
#align category_theory.limits.has_colimits_of_shape_wide_pushout_shape CategoryTheory.Limits.hasColimitsOfShape_widePushoutShape
@@ -255,7 +251,7 @@ instance hasColimitsOfShape_widePushoutShape (J : Type) [Finite J] [HasFiniteWid
it also has finite wide pullbacks
-/
theorem hasFiniteWidePullbacks_of_hasFiniteLimits [HasFiniteLimits C] : HasFiniteWidePullbacks C :=
- ⟨fun _ _ => HasFiniteLimits.out _⟩
+ ⟨fun J _ => by cases nonempty_fintype J; exact HasFiniteLimits.out _⟩
#align category_theory.limits.has_finite_wide_pullbacks_of_has_finite_limits CategoryTheory.Limits.hasFiniteWidePullbacks_of_hasFiniteLimits
/-- Finite wide pushouts are finite colimits, so if `C` has all finite colimits,
@@ -263,7 +259,7 @@ it also has finite wide pushouts
-/
theorem hasFiniteWidePushouts_of_has_finite_limits [HasFiniteColimits C] :
HasFiniteWidePushouts C :=
- ⟨fun _ _ => HasFiniteColimits.out _⟩
+ ⟨fun J _ => by cases nonempty_fintype J; exact HasFiniteColimits.out _⟩
#align category_theory.limits.has_finite_wide_pushouts_of_has_finite_limits CategoryTheory.Limits.hasFiniteWidePushouts_of_has_finite_limits
instance fintypeWalkingPair : Fintype WalkingPair where
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>
@@ -101,7 +101,7 @@ instance (priority := 100) hasColimitsOfShape_of_hasFiniteColimits (J : Type w)
instance (priority := 100) hasFiniteColimits_of_hasColimitsOfSize [HasColimitsOfSize.{v', u'} C] :
HasFiniteColimits C where
out := fun J hJ hJ' =>
- haveI := hasColimitsOfSize_shrink.{0, 0} C
+ haveI := hasColimitsOfSizeShrink.{0, 0} C
let F := @FinCategory.equivAsType J (@FinCategory.fintypeObj J hJ hJ') hJ hJ'
@hasColimitsOfShape_of_equivalence (@FinCategory.AsType J (@FinCategory.fintypeObj J hJ hJ'))
(@FinCategory.categoryAsType J (@FinCategory.fintypeObj J hJ hJ') hJ hJ') _ _ J hJ F _
I've also got a change to make this required, but I'd like to land this first.
@@ -175,7 +175,7 @@ instance fintypeHom (j j' : WidePullbackShape J) : Fintype (j ⟶ j')
· cases' j with j
· exact {Hom.id none}
· exact {Hom.term j}
- · by_cases some j' = j
+ · by_cases h : some j' = j
· rw [h]
exact {Hom.id j}
· exact ∅
@@ -199,7 +199,7 @@ instance fintypeHom (j j' : WidePushoutShape J) : Fintype (j ⟶ j') where
· cases' j' with j'
· exact {Hom.id none}
· exact {Hom.init j'}
- · by_cases some j = j'
+ · by_cases h : some j = j'
· rw [h]
exact {Hom.id j'}
· exact ∅
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.
@@ -69,9 +69,9 @@ theorem hasFiniteLimits_of_hasFiniteLimits_of_size
HasFiniteLimits C where
out := fun J hJ hhJ => by
haveI := h (ULiftHom.{w} (ULift.{w} J)) <| @CategoryTheory.finCategoryUlift J hJ hhJ
- have l :
- @Equivalence J (ULiftHom (ULift J)) hJ (@ULiftHom.category (ULift J) (@uliftCategory J hJ))
- := @ULiftHomULiftCategory.equiv J hJ
+ have l : @Equivalence J (ULiftHom (ULift J)) hJ
+ (@ULiftHom.category (ULift J) (@uliftCategory J hJ)) :=
+ @ULiftHomULiftCategory.equiv J hJ
apply @hasLimitsOfShape_of_equivalence (ULiftHom (ULift J))
(@ULiftHom.category (ULift J) (@uliftCategory J hJ)) C _ J hJ
(@Equivalence.symm J hJ (ULiftHom (ULift J))
@@ -114,9 +114,9 @@ theorem hasFiniteColimits_of_hasFiniteColimits_of_size
HasFiniteColimits C where
out := fun J hJ hhJ => by
haveI := h (ULiftHom.{w} (ULift.{w} J)) <| @CategoryTheory.finCategoryUlift J hJ hhJ
- have l :
- @Equivalence J (ULiftHom (ULift J)) hJ (@ULiftHom.category (ULift J) (@uliftCategory J hJ))
- := @ULiftHomULiftCategory.equiv J hJ
+ have l : @Equivalence J (ULiftHom (ULift J)) hJ
+ (@ULiftHom.category (ULift J) (@uliftCategory J hJ)) :=
+ @ULiftHomULiftCategory.equiv J hJ
apply @hasColimitsOfShape_of_equivalence (ULiftHom (ULift J))
(@ULiftHom.category (ULift J) (@uliftCategory J hJ)) C _ J hJ
(@Equivalence.symm J hJ (ULiftHom (ULift J))
Per https://github.com/leanprover/lean4/issues/2343, we are going to need to change the automatic generation of instance names, as they become too long.
This PR ensures that everywhere in Mathlib that refers to an instance by name, that name is given explicitly, rather than being automatically generated.
There are four exceptions, which are now commented, with links to https://github.com/leanprover/lean4/issues/2343.
This was implemented by running Mathlib against a modified Lean that appended _ᾰ
to all automatically generated names, and fixing everything.
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -134,7 +134,8 @@ instance fintypeWalkingParallelPair : Fintype WalkingParallelPair where
-- attribute [local tidy] tactic.case_bash Porting note: no tidy; no case_bash
-instance (j j' : WalkingParallelPair) : Fintype (WalkingParallelPairHom j j') where
+instance instFintypeWalkingParallelPairHom (j j' : WalkingParallelPair) :
+ Fintype (WalkingParallelPairHom j j') where
elems :=
WalkingParallelPair.recOn j
(WalkingParallelPair.recOn j' [WalkingParallelPairHom.id zero].toFinset
@@ -78,7 +78,7 @@ theorem hasFiniteLimits_of_hasFiniteLimits_of_size
(@ULiftHom.category (ULift J) (@uliftCategory J hJ)) l) _
/- Porting note: tried to factor out (@instCategoryULiftHom (ULift J) (@uliftCategory J hJ)
but when doing that would then find the instance and say it was not definitionally equal to
- to the provide one (the same thing factored out) -/
+ the provided one (the same thing factored out) -/
#align category_theory.limits.has_finite_limits_of_has_finite_limits_of_size CategoryTheory.Limits.hasFiniteLimits_of_hasFiniteLimits_of_size
/-- A category has all finite colimits if every functor `J ⥤ C` with a `FinCategory J`
@@ -2,11 +2,6 @@
Copyright (c) 2019 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.limits.shapes.finite_limits
-! leanprover-community/mathlib commit c3019c79074b0619edb4b27553a91b2e82242395
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.FinCategory
import Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts
@@ -15,6 +10,8 @@ import Mathlib.CategoryTheory.Limits.Shapes.WidePullbacks
import Mathlib.CategoryTheory.Limits.Shapes.Pullbacks
import Mathlib.Data.Fintype.Option
+#align_import category_theory.limits.shapes.finite_limits from "leanprover-community/mathlib"@"c3019c79074b0619edb4b27553a91b2e82242395"
+
/-!
# Categories with finite limits.
@@ -91,7 +91,7 @@ This is often called 'finitely cocomplete'.
-/
class HasFiniteColimits : Prop where
/-- `C` has all colimits over any type `J` whose objects and morphisms lie in the same universe
- and which has `FinType` objects and morphisms-/
+ and which has `Fintype` objects and morphisms-/
out (J : Type) [𝒥 : SmallCategory J] [@FinCategory J 𝒥] : @HasColimitsOfShape J 𝒥 C _
#align category_theory.limits.has_finite_colimits CategoryTheory.Limits.HasFiniteColimits
@@ -213,12 +213,12 @@ instance fintypeHom (j j' : WidePushoutShape J) : Fintype (j ⟶ j') where
end WidePushoutShape
-instance finCategoryWidePullback [Fintype J] : FinCategory (WidePullbackShape J)
- where fintypeHom := WidePullbackShape.fintypeHom
+instance finCategoryWidePullback [Fintype J] : FinCategory (WidePullbackShape J) where
+ fintypeHom := WidePullbackShape.fintypeHom
#align category_theory.limits.fin_category_wide_pullback CategoryTheory.Limits.finCategoryWidePullback
-instance finCategoryWidePushout [Fintype J] : FinCategory (WidePushoutShape J)
- where fintypeHom := WidePushoutShape.fintypeHom
+instance finCategoryWidePushout [Fintype J] : FinCategory (WidePushoutShape J) where
+ fintypeHom := WidePushoutShape.fintypeHom
#align category_theory.limits.fin_category_wide_pushout CategoryTheory.Limits.finCategoryWidePushout
-- We can't just made this an `abbreviation`
@@ -40,23 +40,23 @@ instance and `J : Type` has a limit.
This is often called 'finitely complete'.
-/
class HasFiniteLimits : Prop where
- /-- `C` has all limits over any type `J` whose objects and morphisms lie in the same universe
+ /-- `C` has all limits over any type `J` whose objects and morphisms lie in the same universe
and which has `FinType` objects and morphisms-/
out (J : Type) [𝒥 : SmallCategory J] [@FinCategory J 𝒥] : @HasLimitsOfShape J 𝒥 C _
#align category_theory.limits.has_finite_limits CategoryTheory.Limits.HasFiniteLimits
instance (priority := 100) hasLimitsOfShape_of_hasFiniteLimits (J : Type w) [SmallCategory J]
[FinCategory J] [HasFiniteLimits C] : HasLimitsOfShape J C := by
- apply @hasLimitsOfShapeOfEquivalence _ _ _ _ _ _ (FinCategory.equivAsType J) ?_
+ apply @hasLimitsOfShape_of_equivalence _ _ _ _ _ _ (FinCategory.equivAsType J) ?_
apply HasFiniteLimits.out
#align category_theory.limits.has_limits_of_shape_of_has_finite_limits CategoryTheory.Limits.hasLimitsOfShape_of_hasFiniteLimits
instance (priority := 100) hasFiniteLimits_of_hasLimitsOfSize [HasLimitsOfSize.{v', u'} C] :
- HasFiniteLimits C where
- out := fun J hJ hJ' =>
+ HasFiniteLimits C where
+ out := fun J hJ hJ' =>
haveI := hasLimitsOfSizeShrink.{0, 0} C
let F := @FinCategory.equivAsType J (@FinCategory.fintypeObj J hJ hJ') hJ hJ'
- @hasLimitsOfShapeOfEquivalence (@FinCategory.AsType J (@FinCategory.fintypeObj J hJ hJ'))
+ @hasLimitsOfShape_of_equivalence (@FinCategory.AsType J (@FinCategory.fintypeObj J hJ hJ'))
(@FinCategory.categoryAsType J (@FinCategory.fintypeObj J hJ hJ') hJ hJ') _ _ J hJ F _
#align category_theory.limits.has_finite_limits_of_has_limits_of_size CategoryTheory.Limits.hasFiniteLimits_of_hasLimitsOfSize
@@ -69,18 +69,18 @@ instance (priority := 100) hasFiniteLimits_of_hasLimits [HasLimits C] : HasFinit
arbitrary universe. -/
theorem hasFiniteLimits_of_hasFiniteLimits_of_size
(h : ∀ (J : Type w) {𝒥 : SmallCategory J} (_ : @FinCategory J 𝒥), HasLimitsOfShape J C) :
- HasFiniteLimits C where
+ HasFiniteLimits C where
out := fun J hJ hhJ => by
haveI := h (ULiftHom.{w} (ULift.{w} J)) <| @CategoryTheory.finCategoryUlift J hJ hhJ
- have l :
+ have l :
@Equivalence J (ULiftHom (ULift J)) hJ (@ULiftHom.category (ULift J) (@uliftCategory J hJ))
:= @ULiftHomULiftCategory.equiv J hJ
- apply @hasLimitsOfShapeOfEquivalence (ULiftHom (ULift J))
- (@ULiftHom.category (ULift J) (@uliftCategory J hJ)) C _ J hJ
- (@Equivalence.symm J hJ (ULiftHom (ULift J))
+ apply @hasLimitsOfShape_of_equivalence (ULiftHom (ULift J))
+ (@ULiftHom.category (ULift J) (@uliftCategory J hJ)) C _ J hJ
+ (@Equivalence.symm J hJ (ULiftHom (ULift J))
(@ULiftHom.category (ULift J) (@uliftCategory J hJ)) l) _
- /- Porting note: tried to factor out (@instCategoryULiftHom (ULift J) (@uliftCategory J hJ)
- but when doing that would then find the instance and say it was not definitionally equal to
+ /- Porting note: tried to factor out (@instCategoryULiftHom (ULift J) (@uliftCategory J hJ)
+ but when doing that would then find the instance and say it was not definitionally equal to
to the provide one (the same thing factored out) -/
#align category_theory.limits.has_finite_limits_of_has_finite_limits_of_size CategoryTheory.Limits.hasFiniteLimits_of_hasFiniteLimits_of_size
@@ -90,7 +90,7 @@ instance and `J : Type` has a colimit.
This is often called 'finitely cocomplete'.
-/
class HasFiniteColimits : Prop where
- /-- `C` has all colimits over any type `J` whose objects and morphisms lie in the same universe
+ /-- `C` has all colimits over any type `J` whose objects and morphisms lie in the same universe
and which has `FinType` objects and morphisms-/
out (J : Type) [𝒥 : SmallCategory J] [@FinCategory J 𝒥] : @HasColimitsOfShape J 𝒥 C _
#align category_theory.limits.has_finite_colimits CategoryTheory.Limits.HasFiniteColimits
@@ -106,7 +106,7 @@ instance (priority := 100) hasFiniteColimits_of_hasColimitsOfSize [HasColimitsOf
out := fun J hJ hJ' =>
haveI := hasColimitsOfSize_shrink.{0, 0} C
let F := @FinCategory.equivAsType J (@FinCategory.fintypeObj J hJ hJ') hJ hJ'
- @hasColimitsOfShape_of_equivalence (@FinCategory.AsType J (@FinCategory.fintypeObj J hJ hJ'))
+ @hasColimitsOfShape_of_equivalence (@FinCategory.AsType J (@FinCategory.fintypeObj J hJ hJ'))
(@FinCategory.categoryAsType J (@FinCategory.fintypeObj J hJ hJ') hJ hJ') _ _ J hJ F _
#align category_theory.limits.has_finite_colimits_of_has_colimits_of_size CategoryTheory.Limits.hasFiniteColimits_of_hasColimitsOfSize
@@ -114,15 +114,15 @@ instance (priority := 100) hasFiniteColimits_of_hasColimitsOfSize [HasColimitsOf
arbitrary universe. -/
theorem hasFiniteColimits_of_hasFiniteColimits_of_size
(h : ∀ (J : Type w) {𝒥 : SmallCategory J} (_ : @FinCategory J 𝒥), HasColimitsOfShape J C) :
- HasFiniteColimits C where
+ HasFiniteColimits C where
out := fun J hJ hhJ => by
haveI := h (ULiftHom.{w} (ULift.{w} J)) <| @CategoryTheory.finCategoryUlift J hJ hhJ
- have l :
+ have l :
@Equivalence J (ULiftHom (ULift J)) hJ (@ULiftHom.category (ULift J) (@uliftCategory J hJ))
:= @ULiftHomULiftCategory.equiv J hJ
- apply @hasColimitsOfShape_of_equivalence (ULiftHom (ULift J))
- (@ULiftHom.category (ULift J) (@uliftCategory J hJ)) C _ J hJ
- (@Equivalence.symm J hJ (ULiftHom (ULift J))
+ apply @hasColimitsOfShape_of_equivalence (ULiftHom (ULift J))
+ (@ULiftHom.category (ULift J) (@uliftCategory J hJ)) C _ J hJ
+ (@Equivalence.symm J hJ (ULiftHom (ULift J))
(@ULiftHom.category (ULift J) (@uliftCategory J hJ)) l) _
#align category_theory.limits.has_finite_colimits_of_has_finite_colimits_of_size CategoryTheory.Limits.hasFiniteColimits_of_hasFiniteColimits_of_size
@@ -143,14 +143,14 @@ instance (j j' : WalkingParallelPair) : Fintype (WalkingParallelPairHom j j') wh
(WalkingParallelPair.recOn j' [WalkingParallelPairHom.id zero].toFinset
[left, right].toFinset)
(WalkingParallelPair.recOn j' ∅ [WalkingParallelPairHom.id one].toFinset)
- complete := by
+ complete := by
rintro (_|_) <;> simp
· cases j <;> simp
end
instance : FinCategory WalkingParallelPair where
fintypeObj := fintypeWalkingParallelPair
- fintypeHom := instFintypeWalkingParallelPairHom -- Porting note: could not be inferred
+ fintypeHom := instFintypeWalkingParallelPairHom -- Porting note: could not be inferred
/-- Equalizers are finite limits, so if `C` has all finite limits, it also has all equalizers -/
example [HasFiniteLimits C] : HasEqualizers C := by infer_instance
@@ -181,9 +181,9 @@ instance fintypeHom (j j' : WidePullbackShape J) : Fintype (j ⟶ j')
· rw [h]
exact {Hom.id j}
· exact ∅
- complete := by
+ complete := by
rintro (_|_)
- · cases j <;> simp
+ · cases j <;> simp
· simp
#align category_theory.limits.wide_pullback_shape.fintype_hom CategoryTheory.Limits.WidePullbackShape.fintypeHom
@@ -205,10 +205,10 @@ instance fintypeHom (j j' : WidePushoutShape J) : Fintype (j ⟶ j') where
· rw [h]
exact {Hom.id j'}
· exact ∅
- complete := by
- rintro (_|_)
- · cases j <;> simp
- · simp
+ complete := by
+ rintro (_|_)
+ · cases j <;> simp
+ · simp
#align category_theory.limits.wide_pushout_shape.fintype_hom CategoryTheory.Limits.WidePushoutShape.fintypeHom
end WidePushoutShape
@@ -280,4 +280,3 @@ example [HasFiniteWidePullbacks C] : HasPullbacks C := by infer_instance
example [HasFiniteWidePushouts C] : HasPushouts C := by infer_instance
end CategoryTheory.Limits
-
The unported dependencies are