algebra.category.GroupWithZeroMathlib.Algebra.Category.GroupWithZeroCat

This file has been ported!

Changes since the initial port

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.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(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)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -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"
 
Diff
@@ -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
Diff
@@ -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"
 
Diff
@@ -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
 
Diff
@@ -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
 
Diff
@@ -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 : α ≃* β) : α ≅ β
Diff
@@ -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
Diff
@@ -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.
 -/
 
Diff
@@ -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 : α ≃* β) : α ≅ β
Diff
@@ -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 }

Changes in mathlib4

mathlib3
mathlib4
chore: remove more autoImplicit (#11336)

... or reduce its scope (the full removal is not as obvious).

Diff
@@ -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⟩
chore: classify added lemma porting notes (#10791)

Classifies by adding number (#10756) to porting notes claiming added lemma.

Diff
@@ -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₂ :=
chore: classify added lemma porting notes (#10757)

Classifies by adding issue number (#10756) to porting notes claiming added lemma.

Diff
@@ -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
chore(Algebra/Category): resolve porting notes was not necessary in mathlib (#10646)

In this case https://github.com/leanprover-community/mathlib4/blob/4b36afcf085586739aa4e59d507a7d01d9a2dbbf/Mathlib/Algebra/Category/GroupWithZeroCat.lean#L55-L62

and this case https://github.com/leanprover-community/mathlib4/blob/4b36afcf085586739aa4e59d507a7d01d9a2dbbf/Mathlib/Algebra/Category/GroupWithZeroCat.lean#L92-L94

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.

Diff
@@ -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
refactor(*): abbreviation for non-dependent 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 defs or abbrevs.

Diff
@@ -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
chore(*): rename 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>

Diff
@@ -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
style: fix wrapping of where (#7149)
Diff
@@ -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
fix: disable autoImplicit globally (#6528)

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:

  • Assuming variables are in scope, but pasting the lemma in the wrong section
  • Pasting in a lemma from a scratch file without checking to see if the variable names are consistent with the rest of the file
  • Making a copy-paste error between lemmas and forgetting to add an explicit arguments.

Having set_option autoImplicit false as the default prevents these types of mistake being made in the 90% of files where autoImplicits 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.

Diff
@@ -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
 
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -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
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -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
 
feat: port Algebra.Category.GroupWithZero (#3962)

Dependencies 3 + 230

231 files ported (98.7%)
85459 lines ported (98.8%)
Show graph

The unported dependencies are