algebra.category.GroupWithZero
⟷
Mathlib.Algebra.Category.GroupWithZeroCat
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yaël Dillies
-/
import CategoryTheory.Category.Bipointed
-import Algebra.Category.Mon.Basic
+import Algebra.Category.MonCat.Basic
#align_import algebra.category.GroupWithZero from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -59,7 +59,7 @@ instance : LargeCategory.{u} GroupWithZeroCat
instance : ConcreteCategory GroupWithZeroCat
where
forget := ⟨coeSort, fun X Y => coeFn, fun X => rfl, fun X Y Z f g => rfl⟩
- forget_faithful := ⟨fun X Y f g h => FunLike.coe_injective h⟩
+ forget_faithful := ⟨fun X Y f g h => DFunLike.coe_injective h⟩
#print GroupWithZeroCat.hasForgetToBipointed /-
instance hasForgetToBipointed : HasForget₂ GroupWithZeroCat Bipointed
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2022 Yaël Dillies. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yaël Dillies
-/
-import Mathbin.CategoryTheory.Category.Bipointed
-import Mathbin.Algebra.Category.Mon.Basic
+import CategoryTheory.Category.Bipointed
+import Algebra.Category.Mon.Basic
#align_import algebra.category.GroupWithZero from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2022 Yaël Dillies. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yaël Dillies
-
-! This file was ported from Lean 3 source module algebra.category.GroupWithZero
-! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.Category.Bipointed
import Mathbin.Algebra.Category.Mon.Basic
+#align_import algebra.category.GroupWithZero from "leanprover-community/mathlib"@"38df578a6450a8c5142b3727e3ae894c2300cae0"
+
/-!
# The category of groups with zero
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -64,18 +64,23 @@ instance : ConcreteCategory GroupWithZeroCat
forget := ⟨coeSort, fun X Y => coeFn, fun X => rfl, fun X Y Z f g => rfl⟩
forget_faithful := ⟨fun X Y f g h => FunLike.coe_injective h⟩
+#print GroupWithZeroCat.hasForgetToBipointed /-
instance hasForgetToBipointed : HasForget₂ GroupWithZeroCat Bipointed
where forget₂ :=
{ obj := fun X => ⟨X, 0, 1⟩
map := fun X Y f => ⟨f, f.map_zero', f.map_one'⟩ }
#align GroupWithZero.has_forget_to_Bipointed GroupWithZeroCat.hasForgetToBipointed
+-/
+#print GroupWithZeroCat.hasForgetToMon /-
instance hasForgetToMon : HasForget₂ GroupWithZeroCat MonCat
where forget₂ :=
{ obj := fun X => ⟨X⟩
map := fun X Y => MonoidWithZeroHom.toMonoidHom }
#align GroupWithZero.has_forget_to_Mon GroupWithZeroCat.hasForgetToMon
+-/
+#print GroupWithZeroCat.Iso.mk /-
/-- Constructs an isomorphism of groups with zero from a group isomorphism between them. -/
@[simps]
def Iso.mk {α β : GroupWithZeroCat.{u}} (e : α ≃* β) : α ≅ β
@@ -85,6 +90,7 @@ def Iso.mk {α β : GroupWithZeroCat.{u}} (e : α ≃* β) : α ≅ β
hom_inv_id' := by ext; exact e.symm_apply_apply _
inv_hom_id' := by ext; exact e.apply_symm_apply _
#align GroupWithZero.iso.mk GroupWithZeroCat.Iso.mk
+-/
end GroupWithZeroCat
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -64,36 +64,18 @@ instance : ConcreteCategory GroupWithZeroCat
forget := ⟨coeSort, fun X Y => coeFn, fun X => rfl, fun X Y Z f g => rfl⟩
forget_faithful := ⟨fun X Y f g h => FunLike.coe_injective h⟩
-/- warning: GroupWithZero.has_forget_to_Bipointed -> GroupWithZeroCat.hasForgetToBipointed is a dubious translation:
-lean 3 declaration is
- CategoryTheory.HasForget₂.{succ u1, succ u1, u1, u1, u1} GroupWithZeroCat.{u1} Bipointed.{u1} GroupWithZeroCat.CategoryTheory.largeCategory.{u1} GroupWithZeroCat.CategoryTheory.concreteCategory.{u1} Bipointed.largeCategory.{u1} Bipointed.concreteCategory.{u1}
-but is expected to have type
- CategoryTheory.HasForget₂.{succ u1, succ u1, u1, u1, u1} GroupWithZeroCat.{u1} Bipointed.{u1} GroupWithZeroCat.instLargeCategoryGroupWithZeroCat.{u1} GroupWithZeroCat.groupWithZeroConcreteCategory.{u1} Bipointed.largeCategory.{u1} Bipointed.concreteCategory.{u1}
-Case conversion may be inaccurate. Consider using '#align GroupWithZero.has_forget_to_Bipointed GroupWithZeroCat.hasForgetToBipointedₓ'. -/
instance hasForgetToBipointed : HasForget₂ GroupWithZeroCat Bipointed
where forget₂ :=
{ obj := fun X => ⟨X, 0, 1⟩
map := fun X Y f => ⟨f, f.map_zero', f.map_one'⟩ }
#align GroupWithZero.has_forget_to_Bipointed GroupWithZeroCat.hasForgetToBipointed
-/- warning: GroupWithZero.has_forget_to_Mon -> GroupWithZeroCat.hasForgetToMon is a dubious translation:
-lean 3 declaration is
- CategoryTheory.HasForget₂.{succ u1, succ u1, u1, u1, u1} GroupWithZeroCat.{u1} MonCat.{u1} GroupWithZeroCat.CategoryTheory.largeCategory.{u1} GroupWithZeroCat.CategoryTheory.concreteCategory.{u1} MonCat.largeCategory.{u1} MonCat.concreteCategory.{u1}
-but is expected to have type
- CategoryTheory.HasForget₂.{succ u1, succ u1, u1, u1, u1} GroupWithZeroCat.{u1} MonCat.{u1} GroupWithZeroCat.instLargeCategoryGroupWithZeroCat.{u1} GroupWithZeroCat.groupWithZeroConcreteCategory.{u1} instMonCatLargeCategory.{u1} MonCat.concreteCategory.{u1}
-Case conversion may be inaccurate. Consider using '#align GroupWithZero.has_forget_to_Mon GroupWithZeroCat.hasForgetToMonₓ'. -/
instance hasForgetToMon : HasForget₂ GroupWithZeroCat MonCat
where forget₂ :=
{ obj := fun X => ⟨X⟩
map := fun X Y => MonoidWithZeroHom.toMonoidHom }
#align GroupWithZero.has_forget_to_Mon GroupWithZeroCat.hasForgetToMon
-/- warning: GroupWithZero.iso.mk -> GroupWithZeroCat.Iso.mk is a dubious translation:
-lean 3 declaration is
- forall {α : GroupWithZeroCat.{u1}} {β : GroupWithZeroCat.{u1}}, (MulEquiv.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} α) (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} β) (MulZeroClass.toHasMul.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} α) (MulZeroOneClass.toMulZeroClass.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} α) (MonoidWithZero.toMulZeroOneClass.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} α) (GroupWithZero.toMonoidWithZero.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} α) (GroupWithZeroCat.groupWithZero.{u1} α))))) (MulZeroClass.toHasMul.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} β) (MulZeroOneClass.toMulZeroClass.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} β) (MonoidWithZero.toMulZeroOneClass.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} β) (GroupWithZero.toMonoidWithZero.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} β) (GroupWithZeroCat.groupWithZero.{u1} β)))))) -> (CategoryTheory.Iso.{u1, succ u1} GroupWithZeroCat.{u1} GroupWithZeroCat.CategoryTheory.largeCategory.{u1} α β)
-but is expected to have type
- forall {α : GroupWithZeroCat.{u1}} {β : GroupWithZeroCat.{u1}}, (MulEquiv.{u1, u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} α) (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} β) (MulZeroClass.toMul.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} α) (MulZeroOneClass.toMulZeroClass.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} α) (MonoidWithZero.toMulZeroOneClass.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} α) (GroupWithZero.toMonoidWithZero.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} α) (GroupWithZeroCat.instGroupWithZeroα.{u1} α))))) (MulZeroClass.toMul.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} β) (MulZeroOneClass.toMulZeroClass.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} β) (MonoidWithZero.toMulZeroOneClass.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} β) (GroupWithZero.toMonoidWithZero.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} β) (GroupWithZeroCat.instGroupWithZeroα.{u1} β)))))) -> (CategoryTheory.Iso.{u1, succ u1} GroupWithZeroCat.{u1} GroupWithZeroCat.instLargeCategoryGroupWithZeroCat.{u1} α β)
-Case conversion may be inaccurate. Consider using '#align GroupWithZero.iso.mk GroupWithZeroCat.Iso.mkₓ'. -/
/-- Constructs an isomorphism of groups with zero from a group isomorphism between them. -/
@[simps]
def Iso.mk {α β : GroupWithZeroCat.{u}} (e : α ≃* β) : α ≅ β
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -100,12 +100,8 @@ def Iso.mk {α β : GroupWithZeroCat.{u}} (e : α ≃* β) : α ≅ β
where
Hom := e
inv := e.symm
- hom_inv_id' := by
- ext
- exact e.symm_apply_apply _
- inv_hom_id' := by
- ext
- exact e.apply_symm_apply _
+ hom_inv_id' := by ext; exact e.symm_apply_apply _
+ inv_hom_id' := by ext; exact e.apply_symm_apply _
#align GroupWithZero.iso.mk GroupWithZeroCat.Iso.mk
end GroupWithZeroCat
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yaël Dillies
! This file was ported from Lean 3 source module algebra.category.GroupWithZero
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit 38df578a6450a8c5142b3727e3ae894c2300cae0
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.Algebra.Category.Mon.Basic
/-!
# The category of groups with zero
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
This file defines `GroupWithZero`, the category of groups with zero.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -22,10 +22,12 @@ universe u
open CategoryTheory Order
+#print GroupWithZeroCat /-
/-- The category of groups with zero. -/
def GroupWithZeroCat :=
Bundled GroupWithZero
#align GroupWithZero GroupWithZeroCat
+-/
namespace GroupWithZeroCat
@@ -35,10 +37,12 @@ instance : CoeSort GroupWithZeroCat (Type _) :=
instance (X : GroupWithZeroCat) : GroupWithZero X :=
X.str
+#print GroupWithZeroCat.of /-
/-- Construct a bundled `GroupWithZero` from a `group_with_zero`. -/
def of (α : Type _) [GroupWithZero α] : GroupWithZeroCat :=
Bundled.of α
#align GroupWithZero.of GroupWithZeroCat.of
+-/
instance : Inhabited GroupWithZeroCat :=
⟨of (WithZero PUnit)⟩
@@ -57,18 +61,36 @@ instance : ConcreteCategory GroupWithZeroCat
forget := ⟨coeSort, fun X Y => coeFn, fun X => rfl, fun X Y Z f g => rfl⟩
forget_faithful := ⟨fun X Y f g h => FunLike.coe_injective h⟩
+/- warning: GroupWithZero.has_forget_to_Bipointed -> GroupWithZeroCat.hasForgetToBipointed is a dubious translation:
+lean 3 declaration is
+ CategoryTheory.HasForget₂.{succ u1, succ u1, u1, u1, u1} GroupWithZeroCat.{u1} Bipointed.{u1} GroupWithZeroCat.CategoryTheory.largeCategory.{u1} GroupWithZeroCat.CategoryTheory.concreteCategory.{u1} Bipointed.largeCategory.{u1} Bipointed.concreteCategory.{u1}
+but is expected to have type
+ CategoryTheory.HasForget₂.{succ u1, succ u1, u1, u1, u1} GroupWithZeroCat.{u1} Bipointed.{u1} GroupWithZeroCat.instLargeCategoryGroupWithZeroCat.{u1} GroupWithZeroCat.groupWithZeroConcreteCategory.{u1} Bipointed.largeCategory.{u1} Bipointed.concreteCategory.{u1}
+Case conversion may be inaccurate. Consider using '#align GroupWithZero.has_forget_to_Bipointed GroupWithZeroCat.hasForgetToBipointedₓ'. -/
instance hasForgetToBipointed : HasForget₂ GroupWithZeroCat Bipointed
where forget₂ :=
{ obj := fun X => ⟨X, 0, 1⟩
map := fun X Y f => ⟨f, f.map_zero', f.map_one'⟩ }
#align GroupWithZero.has_forget_to_Bipointed GroupWithZeroCat.hasForgetToBipointed
+/- warning: GroupWithZero.has_forget_to_Mon -> GroupWithZeroCat.hasForgetToMon is a dubious translation:
+lean 3 declaration is
+ CategoryTheory.HasForget₂.{succ u1, succ u1, u1, u1, u1} GroupWithZeroCat.{u1} MonCat.{u1} GroupWithZeroCat.CategoryTheory.largeCategory.{u1} GroupWithZeroCat.CategoryTheory.concreteCategory.{u1} MonCat.largeCategory.{u1} MonCat.concreteCategory.{u1}
+but is expected to have type
+ CategoryTheory.HasForget₂.{succ u1, succ u1, u1, u1, u1} GroupWithZeroCat.{u1} MonCat.{u1} GroupWithZeroCat.instLargeCategoryGroupWithZeroCat.{u1} GroupWithZeroCat.groupWithZeroConcreteCategory.{u1} instMonCatLargeCategory.{u1} MonCat.concreteCategory.{u1}
+Case conversion may be inaccurate. Consider using '#align GroupWithZero.has_forget_to_Mon GroupWithZeroCat.hasForgetToMonₓ'. -/
instance hasForgetToMon : HasForget₂ GroupWithZeroCat MonCat
where forget₂ :=
{ obj := fun X => ⟨X⟩
map := fun X Y => MonoidWithZeroHom.toMonoidHom }
#align GroupWithZero.has_forget_to_Mon GroupWithZeroCat.hasForgetToMon
+/- warning: GroupWithZero.iso.mk -> GroupWithZeroCat.Iso.mk is a dubious translation:
+lean 3 declaration is
+ forall {α : GroupWithZeroCat.{u1}} {β : GroupWithZeroCat.{u1}}, (MulEquiv.{u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} α) (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} β) (MulZeroClass.toHasMul.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} α) (MulZeroOneClass.toMulZeroClass.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} α) (MonoidWithZero.toMulZeroOneClass.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} α) (GroupWithZero.toMonoidWithZero.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} α) (GroupWithZeroCat.groupWithZero.{u1} α))))) (MulZeroClass.toHasMul.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} β) (MulZeroOneClass.toMulZeroClass.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} β) (MonoidWithZero.toMulZeroOneClass.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} β) (GroupWithZero.toMonoidWithZero.{u1} (coeSort.{succ (succ u1), succ (succ u1)} GroupWithZeroCat.{u1} Type.{u1} GroupWithZeroCat.hasCoeToSort.{u1} β) (GroupWithZeroCat.groupWithZero.{u1} β)))))) -> (CategoryTheory.Iso.{u1, succ u1} GroupWithZeroCat.{u1} GroupWithZeroCat.CategoryTheory.largeCategory.{u1} α β)
+but is expected to have type
+ forall {α : GroupWithZeroCat.{u1}} {β : GroupWithZeroCat.{u1}}, (MulEquiv.{u1, u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} α) (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} β) (MulZeroClass.toMul.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} α) (MulZeroOneClass.toMulZeroClass.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} α) (MonoidWithZero.toMulZeroOneClass.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} α) (GroupWithZero.toMonoidWithZero.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} α) (GroupWithZeroCat.instGroupWithZeroα.{u1} α))))) (MulZeroClass.toMul.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} β) (MulZeroOneClass.toMulZeroClass.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} β) (MonoidWithZero.toMulZeroOneClass.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} β) (GroupWithZero.toMonoidWithZero.{u1} (CategoryTheory.Bundled.α.{u1, u1} GroupWithZero.{u1} β) (GroupWithZeroCat.instGroupWithZeroα.{u1} β)))))) -> (CategoryTheory.Iso.{u1, succ u1} GroupWithZeroCat.{u1} GroupWithZeroCat.instLargeCategoryGroupWithZeroCat.{u1} α β)
+Case conversion may be inaccurate. Consider using '#align GroupWithZero.iso.mk GroupWithZeroCat.Iso.mkₓ'. -/
/-- Constructs an isomorphism of groups with zero from a group isomorphism between them. -/
@[simps]
def Iso.mk {α β : GroupWithZeroCat.{u}} (e : α ≃* β) : α ≅ β
mathlib commit https://github.com/leanprover-community/mathlib/commit/290a7ba01fbcab1b64757bdaa270d28f4dcede35
@@ -63,7 +63,7 @@ instance hasForgetToBipointed : HasForget₂ GroupWithZeroCat Bipointed
map := fun X Y f => ⟨f, f.map_zero', f.map_one'⟩ }
#align GroupWithZero.has_forget_to_Bipointed GroupWithZeroCat.hasForgetToBipointed
-instance hasForgetToMon : HasForget₂ GroupWithZeroCat Mon
+instance hasForgetToMon : HasForget₂ GroupWithZeroCat MonCat
where forget₂ :=
{ obj := fun X => ⟨X⟩
map := fun X Y => MonoidWithZeroHom.toMonoidHom }
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
... or reduce its scope (the full removal is not as obvious).
@@ -14,9 +14,6 @@ import Mathlib.Algebra.Category.MonCat.Basic
This file defines `GroupWithZeroCat`, the category of groups with zero.
-/
-set_option autoImplicit true
-
-
universe u
open CategoryTheory Order
@@ -73,7 +70,9 @@ instance groupWithZeroConcreteCategory : ConcreteCategory GroupWithZeroCat where
forget_faithful := ⟨fun h => DFunLike.coe_injective h⟩
-- porting note (#10756): added lemma
-@[simp] lemma forget_map (f : X ⟶ Y) : (forget GroupWithZeroCat).map f = f := rfl
+@[simp] lemma forget_map {X Y : GroupWithZeroCat} (f : X ⟶ Y) :
+ (forget GroupWithZeroCat).map f = f := rfl
+
instance hasForgetToBipointed : HasForget₂ GroupWithZeroCat Bipointed where
forget₂ :=
{ obj := fun X => ⟨X, 0, 1⟩
@@ -72,7 +72,7 @@ instance groupWithZeroConcreteCategory : ConcreteCategory GroupWithZeroCat where
map := fun f => f.toFun }
forget_faithful := ⟨fun h => DFunLike.coe_injective h⟩
--- porting note: added
+-- porting note (#10756): added lemma
@[simp] lemma forget_map (f : X ⟶ Y) : (forget GroupWithZeroCat).map f = f := rfl
instance hasForgetToBipointed : HasForget₂ GroupWithZeroCat Bipointed where
forget₂ :=
@@ -60,10 +60,10 @@ instance {M N : GroupWithZeroCat} : FunLike (M ⟶ N) M N :=
apply DFunLike.coe_injective'
exact h⟩
--- porting note: added
+-- Porting note (#10756): added lemma
lemma coe_id {X : GroupWithZeroCat} : (𝟙 X : X → X) = id := rfl
--- porting note: added
+-- Porting note (#10756): added lemma
lemma coe_comp {X Y Z : GroupWithZeroCat} {f : X ⟶ Y} {g : Y ⟶ Z} : (f ≫ g : X → Z) = g ∘ f := rfl
instance groupWithZeroConcreteCategory : ConcreteCategory GroupWithZeroCat where
was not necessary in mathlib
(#10646)
was not necessary in mathlib
seems to mean that Lean 4 does less work to see through definitional equalities when looking for instances.
I've commented the first instance out and it seems to be really needed since it returns errors, while the second one doesn't give any error when commented out.
In this PR I've removed the porting note comment for the first instance and removed the whole second instance.
Here is the associated comment on Zulip: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Addressing.20porting.20notes.3F/near/421930836.
@@ -52,7 +52,6 @@ instance : LargeCategory.{u} GroupWithZeroCat where
comp_id := MonoidWithZeroHom.id_comp
assoc _ _ _ := MonoidWithZeroHom.comp_assoc _ _ _
--- porting note: was not necessary in mathlib
instance {M N : GroupWithZeroCat} : FunLike (M ⟶ N) M N :=
⟨fun f => f.toFun, fun f g h => by
cases f
@@ -89,10 +88,6 @@ instance hasForgetToMon : HasForget₂ GroupWithZeroCat MonCat where
set_option linter.uppercaseLean3 false in
#align GroupWithZero.has_forget_to_Mon GroupWithZeroCat.hasForgetToMon
--- porting note: this instance was not necessary in mathlib
-instance {X Y : GroupWithZeroCat} : CoeFun (X ⟶ Y) fun _ => X → Y where
- coe (f : X →*₀ Y) := f
-
/-- Constructs an isomorphism of groups with zero from a group isomorphism between them. -/
@[simps]
def Iso.mk {α β : GroupWithZeroCat.{u}} (e : α ≃* β) : α ≅ β where
FunLike
(#9833)
This follows up from #9785, which renamed FunLike
to DFunLike
, by introducing a new abbreviation FunLike F α β := DFunLike F α (fun _ => β)
, to make the non-dependent use of FunLike
easier.
I searched for the pattern DFunLike.*fun
and DFunLike.*λ
in all files to replace expressions of the form DFunLike F α (fun _ => β)
with FunLike F α β
. I did this everywhere except for extends
clauses for two reasons: it would conflict with #8386, and more importantly extends
must directly refer to a structure with no unfolding of def
s or abbrev
s.
@@ -53,7 +53,7 @@ instance : LargeCategory.{u} GroupWithZeroCat where
assoc _ _ _ := MonoidWithZeroHom.comp_assoc _ _ _
-- porting note: was not necessary in mathlib
-instance {M N : GroupWithZeroCat} : DFunLike (M ⟶ N) M (fun _ => N) :=
+instance {M N : GroupWithZeroCat} : FunLike (M ⟶ N) M N :=
⟨fun f => f.toFun, fun f g h => by
cases f
cases g
FunLike
to DFunLike
(#9785)
This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.
This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:
sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>
@@ -53,12 +53,12 @@ instance : LargeCategory.{u} GroupWithZeroCat where
assoc _ _ _ := MonoidWithZeroHom.comp_assoc _ _ _
-- porting note: was not necessary in mathlib
-instance {M N : GroupWithZeroCat} : FunLike (M ⟶ N) M (fun _ => N) :=
+instance {M N : GroupWithZeroCat} : DFunLike (M ⟶ N) M (fun _ => N) :=
⟨fun f => f.toFun, fun f g h => by
cases f
cases g
congr
- apply FunLike.coe_injective'
+ apply DFunLike.coe_injective'
exact h⟩
-- porting note: added
@@ -71,7 +71,7 @@ instance groupWithZeroConcreteCategory : ConcreteCategory GroupWithZeroCat where
forget :=
{ obj := fun G => G
map := fun f => f.toFun }
- forget_faithful := ⟨fun h => FunLike.coe_injective h⟩
+ forget_faithful := ⟨fun h => DFunLike.coe_injective h⟩
-- porting note: added
@[simp] lemma forget_map (f : X ⟶ Y) : (forget GroupWithZeroCat).map f = f := rfl
@@ -75,15 +75,15 @@ instance groupWithZeroConcreteCategory : ConcreteCategory GroupWithZeroCat where
-- porting note: added
@[simp] lemma forget_map (f : X ⟶ Y) : (forget GroupWithZeroCat).map f = f := rfl
-instance hasForgetToBipointed : HasForget₂ GroupWithZeroCat Bipointed
- where forget₂ :=
+instance hasForgetToBipointed : HasForget₂ GroupWithZeroCat Bipointed where
+ forget₂ :=
{ obj := fun X => ⟨X, 0, 1⟩
map := fun f => ⟨f, f.map_zero', f.map_one'⟩ }
set_option linter.uppercaseLean3 false in
#align GroupWithZero.has_forget_to_Bipointed GroupWithZeroCat.hasForgetToBipointed
-instance hasForgetToMon : HasForget₂ GroupWithZeroCat MonCat
- where forget₂ :=
+instance hasForgetToMon : HasForget₂ GroupWithZeroCat MonCat where
+ forget₂ :=
{ obj := fun X => ⟨ X , _ ⟩
map := fun f => f.toMonoidHom }
set_option linter.uppercaseLean3 false in
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.
@@ -14,6 +14,8 @@ import Mathlib.Algebra.Category.MonCat.Basic
This file defines `GroupWithZeroCat`, the category of groups with zero.
-/
+set_option autoImplicit true
+
universe u
Type _
and Sort _
(#6499)
We remove all possible occurences of Type _
and Sort _
in favor of Type*
and Sort*
.
This has nice performance benefits.
@@ -27,14 +27,14 @@ set_option linter.uppercaseLean3 false in
namespace GroupWithZeroCat
-instance : CoeSort GroupWithZeroCat (Type _) :=
+instance : CoeSort GroupWithZeroCat (Type*) :=
Bundled.coeSort
instance (X : GroupWithZeroCat) : GroupWithZero X :=
X.str
/-- Construct a bundled `GroupWithZeroCat` from a `GroupWithZero`. -/
-def of (α : Type _) [GroupWithZero α] : GroupWithZeroCat :=
+def of (α : Type*) [GroupWithZero α] : GroupWithZeroCat :=
Bundled.of α
set_option linter.uppercaseLean3 false in
#align GroupWithZero.of GroupWithZeroCat.of
@@ -2,15 +2,12 @@
Copyright (c) 2022 Yaël Dillies. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yaël Dillies
-
-! This file was ported from Lean 3 source module algebra.category.GroupWithZero
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.Category.Bipointed
import Mathlib.Algebra.Category.MonCat.Basic
+#align_import algebra.category.GroupWithZero from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
+
/-!
# The category of groups with zero
The unported dependencies are