algebra.category.Group.imagesMathlib.Algebra.Category.GroupCat.Images

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
@@ -3,7 +3,7 @@ Copyright (c) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 -/
-import Algebra.Category.Group.Abelian
+import Algebra.Category.GroupCat.Abelian
 import CategoryTheory.Limits.Shapes.Images
 
 #align_import algebra.category.Group.images from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 -/
-import Mathbin.Algebra.Category.Group.Abelian
-import Mathbin.CategoryTheory.Limits.Shapes.Images
+import Algebra.Category.Group.Abelian
+import CategoryTheory.Limits.Shapes.Images
 
 #align_import algebra.category.Group.images from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module algebra.category.Group.images
-! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Algebra.Category.Group.Abelian
 import Mathbin.CategoryTheory.Limits.Shapes.Images
 
+#align_import algebra.category.Group.images from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
+
 /-!
 # The category of commutative additive groups has images.
 
Diff
@@ -129,6 +129,7 @@ noncomputable def isImage : IsImage (monoFactorisation f)
 #align AddCommGroup.is_image AddCommGroupCat.isImage
 -/
 
+#print AddCommGroupCat.imageIsoRange /-
 /-- The categorical image of a morphism in `AddCommGroup`
 agrees with the usual group-theoretical range.
 -/
@@ -136,6 +137,7 @@ noncomputable def imageIsoRange {G H : AddCommGroupCat.{0}} (f : G ⟶ H) :
     Limits.image f ≅ AddCommGroupCat.of f.range :=
   IsImage.isoExt (Image.isImage f) (isImage f)
 #align AddCommGroup.image_iso_range AddCommGroupCat.imageIsoRange
+-/
 
 end AddCommGroupCat
 
Diff
@@ -129,12 +129,6 @@ noncomputable def isImage : IsImage (monoFactorisation f)
 #align AddCommGroup.is_image AddCommGroupCat.isImage
 -/
 
-/- warning: AddCommGroup.image_iso_range -> AddCommGroupCat.imageIsoRange is a dubious translation:
-lean 3 declaration is
-  forall {G : AddCommGroupCat.{0}} {H : AddCommGroupCat.{0}} (f : Quiver.Hom.{1, 1} AddCommGroupCat.{0} (CategoryTheory.CategoryStruct.toQuiver.{0, 1} AddCommGroupCat.{0} (CategoryTheory.Category.toCategoryStruct.{0, 1} AddCommGroupCat.{0} AddCommGroupCat.largeCategory.{0})) G H), CategoryTheory.Iso.{0, 1} AddCommGroupCat.{0} AddCommGroupCat.largeCategory.{0} (CategoryTheory.Limits.image.{0, 1} AddCommGroupCat.{0} AddCommGroupCat.largeCategory.{0} G H f (AddCommGroupCat.imageIsoRange._proof_1 G H f)) (AddCommGroupCat.of.{0} (coeSort.{1, 2} (AddSubgroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroup.toAddGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroupCat.addCommGroupInstance.{0} H))) Type (SetLike.hasCoeToSort.{0, 0} (AddSubgroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroup.toAddGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroupCat.addCommGroupInstance.{0} H))) (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddSubgroup.setLike.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroup.toAddGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroupCat.addCommGroupInstance.{0} H)))) (AddMonoidHom.range.{0, 0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) G) (AddCommGroup.toAddGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) G) (AddCommGroupCat.addCommGroupInstance.{0} G)) (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroup.toAddGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroupCat.addCommGroupInstance.{0} H)) f)) (AddSubgroup.toAddCommGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroupCat.addCommGroupInstance.{0} H) (AddMonoidHom.range.{0, 0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) G) (AddCommGroup.toAddGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) G) (AddCommGroupCat.addCommGroupInstance.{0} G)) (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroup.toAddGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroupCat.addCommGroupInstance.{0} H)) f)))
-but is expected to have type
-  forall {G : AddCommGroupCat.{0}} {H : AddCommGroupCat.{0}} (f : Quiver.Hom.{1, 1} AddCommGroupCat.{0} (CategoryTheory.CategoryStruct.toQuiver.{0, 1} AddCommGroupCat.{0} (CategoryTheory.Category.toCategoryStruct.{0, 1} AddCommGroupCat.{0} instAddCommGroupCatLargeCategory.{0})) G H), CategoryTheory.Iso.{0, 1} AddCommGroupCat.{0} instAddCommGroupCatLargeCategory.{0} (CategoryTheory.Limits.image.{0, 1} AddCommGroupCat.{0} instAddCommGroupCatLargeCategory.{0} G H f (CategoryTheory.Limits.HasImages.has_image.{0, 1} AddCommGroupCat.{0} instAddCommGroupCatLargeCategory.{0} (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{0, 1} AddCommGroupCat.{0} instAddCommGroupCatLargeCategory.{0} (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{0, 1} AddCommGroupCat.{0} instAddCommGroupCatLargeCategory.{0} AddCommGroupCat.instAbelianAddCommGroupCatInstAddCommGroupCatLargeCategory.{0})) G H f)) (AddCommGroupCat.of.{0} (Subtype.{1} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (fun (x : CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) => Membership.mem.{0, 0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddSubgroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroup.toAddGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroupCat.addCommGroupInstance.{0} H))) (SetLike.instMembership.{0, 0} (AddSubgroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroup.toAddGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroupCat.addCommGroupInstance.{0} H))) (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddSubgroup.instSetLikeAddSubgroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroup.toAddGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroupCat.addCommGroupInstance.{0} H)))) x (AddMonoidHom.range.{0, 0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} G) (AddCommGroup.toAddGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} G) (AddCommGroupCat.addCommGroupInstance.{0} G)) (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroup.toAddGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroupCat.addCommGroupInstance.{0} H)) f))) (AddSubgroup.toAddCommGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroupCat.addCommGroupInstance.{0} H) (AddMonoidHom.range.{0, 0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} G) (AddCommGroup.toAddGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} G) (AddCommGroupCat.addCommGroupInstance.{0} G)) (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroup.toAddGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroupCat.addCommGroupInstance.{0} H)) f)))
-Case conversion may be inaccurate. Consider using '#align AddCommGroup.image_iso_range AddCommGroupCat.imageIsoRangeₓ'. -/
 /-- The categorical image of a morphism in `AddCommGroup`
 agrees with the usual group-theoretical range.
 -/
Diff
@@ -64,10 +64,7 @@ def factorThruImage : G ⟶ image f :=
 -/
 
 #print AddCommGroupCat.image.fac /-
-theorem image.fac : factorThruImage f ≫ image.ι f = f :=
-  by
-  ext
-  rfl
+theorem image.fac : factorThruImage f ≫ image.ι f = f := by ext; rfl
 #align AddCommGroup.image.fac AddCommGroupCat.image.fac
 -/
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 
 ! This file was ported from Lean 3 source module algebra.category.Group.images
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -14,6 +14,9 @@ import Mathbin.CategoryTheory.Limits.Shapes.Images
 /-!
 # The category of commutative additive groups has images.
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 Note that we don't need to register any of the constructions here as instances, because we get them
 from the fact that `AddCommGroup` is an abelian category.
 -/
@@ -35,35 +38,44 @@ attribute [local ext] Subtype.ext_val
 
 section
 
+#print AddCommGroupCat.image /-
 -- implementation details of `has_image` for AddCommGroup; use the API, not these
 /-- the image of a morphism in AddCommGroup is just the bundling of `add_monoid_hom.range f` -/
 def image : AddCommGroupCat :=
   AddCommGroupCat.of (AddMonoidHom.range f)
 #align AddCommGroup.image AddCommGroupCat.image
+-/
 
+#print AddCommGroupCat.image.ι /-
 /-- the inclusion of `image f` into the target -/
 def image.ι : image f ⟶ H :=
   f.range.Subtype
 #align AddCommGroup.image.ι AddCommGroupCat.image.ι
+-/
 
 instance : Mono (image.ι f) :=
   ConcreteCategory.mono_of_injective (image.ι f) Subtype.val_injective
 
+#print AddCommGroupCat.factorThruImage /-
 /-- the corestriction map to the image -/
 def factorThruImage : G ⟶ image f :=
   f.range_restrict
 #align AddCommGroup.factor_thru_image AddCommGroupCat.factorThruImage
+-/
 
+#print AddCommGroupCat.image.fac /-
 theorem image.fac : factorThruImage f ≫ image.ι f = f :=
   by
   ext
   rfl
 #align AddCommGroup.image.fac AddCommGroupCat.image.fac
+-/
 
 attribute [local simp] image.fac
 
 variable {f}
 
+#print AddCommGroupCat.image.lift /-
 /-- the universal property for the image factorisation -/
 noncomputable def image.lift (F' : MonoFactorisation f) : image f ⟶ F'.i
     where
@@ -86,7 +98,9 @@ noncomputable def image.lift (F' : MonoFactorisation f) : image f ⟶ F'.i
     rw [(Classical.indefiniteDescription (fun z => f z = _) _).2]
     rfl
 #align AddCommGroup.image.lift AddCommGroupCat.image.lift
+-/
 
+#print AddCommGroupCat.image.lift_fac /-
 theorem image.lift_fac (F' : MonoFactorisation f) : image.lift F' ≫ F'.m = image.ι f :=
   by
   ext x
@@ -94,9 +108,11 @@ theorem image.lift_fac (F' : MonoFactorisation f) : image.lift F' ≫ F'.m = ima
   rw [F'.fac, (Classical.indefiniteDescription _ x.2).2]
   rfl
 #align AddCommGroup.image.lift_fac AddCommGroupCat.image.lift_fac
+-/
 
 end
 
+#print AddCommGroupCat.monoFactorisation /-
 /-- the factorisation of any morphism in AddCommGroup through a mono. -/
 def monoFactorisation : MonoFactorisation f
     where
@@ -104,7 +120,9 @@ def monoFactorisation : MonoFactorisation f
   m := image.ι f
   e := factorThruImage f
 #align AddCommGroup.mono_factorisation AddCommGroupCat.monoFactorisation
+-/
 
+#print AddCommGroupCat.isImage /-
 /-- the factorisation of any morphism in AddCommGroup through a mono has the universal property of
 the image. -/
 noncomputable def isImage : IsImage (monoFactorisation f)
@@ -112,7 +130,14 @@ noncomputable def isImage : IsImage (monoFactorisation f)
   lift := image.lift
   lift_fac := image.lift_fac
 #align AddCommGroup.is_image AddCommGroupCat.isImage
+-/
 
+/- warning: AddCommGroup.image_iso_range -> AddCommGroupCat.imageIsoRange is a dubious translation:
+lean 3 declaration is
+  forall {G : AddCommGroupCat.{0}} {H : AddCommGroupCat.{0}} (f : Quiver.Hom.{1, 1} AddCommGroupCat.{0} (CategoryTheory.CategoryStruct.toQuiver.{0, 1} AddCommGroupCat.{0} (CategoryTheory.Category.toCategoryStruct.{0, 1} AddCommGroupCat.{0} AddCommGroupCat.largeCategory.{0})) G H), CategoryTheory.Iso.{0, 1} AddCommGroupCat.{0} AddCommGroupCat.largeCategory.{0} (CategoryTheory.Limits.image.{0, 1} AddCommGroupCat.{0} AddCommGroupCat.largeCategory.{0} G H f (AddCommGroupCat.imageIsoRange._proof_1 G H f)) (AddCommGroupCat.of.{0} (coeSort.{1, 2} (AddSubgroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroup.toAddGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroupCat.addCommGroupInstance.{0} H))) Type (SetLike.hasCoeToSort.{0, 0} (AddSubgroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroup.toAddGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroupCat.addCommGroupInstance.{0} H))) (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddSubgroup.setLike.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroup.toAddGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroupCat.addCommGroupInstance.{0} H)))) (AddMonoidHom.range.{0, 0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) G) (AddCommGroup.toAddGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) G) (AddCommGroupCat.addCommGroupInstance.{0} G)) (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroup.toAddGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroupCat.addCommGroupInstance.{0} H)) f)) (AddSubgroup.toAddCommGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroupCat.addCommGroupInstance.{0} H) (AddMonoidHom.range.{0, 0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) G) (AddCommGroup.toAddGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) G) (AddCommGroupCat.addCommGroupInstance.{0} G)) (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroup.toAddGroup.{0} (coeSort.{2, 2} (CategoryTheory.Bundled.{0, 0} AddCommGroup.{0}) Type (CategoryTheory.Bundled.hasCoeToSort.{0, 0} AddCommGroup.{0}) H) (AddCommGroupCat.addCommGroupInstance.{0} H)) f)))
+but is expected to have type
+  forall {G : AddCommGroupCat.{0}} {H : AddCommGroupCat.{0}} (f : Quiver.Hom.{1, 1} AddCommGroupCat.{0} (CategoryTheory.CategoryStruct.toQuiver.{0, 1} AddCommGroupCat.{0} (CategoryTheory.Category.toCategoryStruct.{0, 1} AddCommGroupCat.{0} instAddCommGroupCatLargeCategory.{0})) G H), CategoryTheory.Iso.{0, 1} AddCommGroupCat.{0} instAddCommGroupCatLargeCategory.{0} (CategoryTheory.Limits.image.{0, 1} AddCommGroupCat.{0} instAddCommGroupCatLargeCategory.{0} G H f (CategoryTheory.Limits.HasImages.has_image.{0, 1} AddCommGroupCat.{0} instAddCommGroupCatLargeCategory.{0} (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{0, 1} AddCommGroupCat.{0} instAddCommGroupCatLargeCategory.{0} (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{0, 1} AddCommGroupCat.{0} instAddCommGroupCatLargeCategory.{0} AddCommGroupCat.instAbelianAddCommGroupCatInstAddCommGroupCatLargeCategory.{0})) G H f)) (AddCommGroupCat.of.{0} (Subtype.{1} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (fun (x : CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) => Membership.mem.{0, 0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddSubgroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroup.toAddGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroupCat.addCommGroupInstance.{0} H))) (SetLike.instMembership.{0, 0} (AddSubgroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroup.toAddGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroupCat.addCommGroupInstance.{0} H))) (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddSubgroup.instSetLikeAddSubgroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroup.toAddGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroupCat.addCommGroupInstance.{0} H)))) x (AddMonoidHom.range.{0, 0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} G) (AddCommGroup.toAddGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} G) (AddCommGroupCat.addCommGroupInstance.{0} G)) (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroup.toAddGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroupCat.addCommGroupInstance.{0} H)) f))) (AddSubgroup.toAddCommGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroupCat.addCommGroupInstance.{0} H) (AddMonoidHom.range.{0, 0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} G) (AddCommGroup.toAddGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} G) (AddCommGroupCat.addCommGroupInstance.{0} G)) (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroup.toAddGroup.{0} (CategoryTheory.Bundled.α.{0, 0} AddCommGroup.{0} H) (AddCommGroupCat.addCommGroupInstance.{0} H)) f)))
+Case conversion may be inaccurate. Consider using '#align AddCommGroup.image_iso_range AddCommGroupCat.imageIsoRangeₓ'. -/
 /-- The categorical image of a morphism in `AddCommGroup`
 agrees with the usual group-theoretical range.
 -/
Diff
@@ -110,7 +110,7 @@ the image. -/
 noncomputable def isImage : IsImage (monoFactorisation f)
     where
   lift := image.lift
-  lift_fac' := image.lift_fac
+  lift_fac := image.lift_fac
 #align AddCommGroup.is_image AddCommGroupCat.isImage
 
 /-- The categorical image of a morphism in `AddCommGroup`

Changes in mathlib4

mathlib3
mathlib4
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) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module algebra.category.Group.images
-! 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.Algebra.Category.GroupCat.Abelian
 import Mathlib.CategoryTheory.Limits.Shapes.Images
 
+#align_import algebra.category.Group.images from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
+
 /-!
 # The category of commutative additive groups has images.
 
chore: tidy various files (#4423)
Diff
@@ -37,7 +37,7 @@ attribute [local ext] Subtype.ext_val
 
 section
 
--- implementation details of `has_image` for `AddCommGroupCat`; use the API, not these
+-- implementation details of `IsImage` for `AddCommGroupCat`; use the API, not these
 /-- the image of a morphism in `AddCommGroupCat` is just the bundling of `AddMonoidHom.range f` -/
 def image : AddCommGroupCat :=
   AddCommGroupCat.of (AddMonoidHom.range f)
feat: port Algebra.Category.GroupCat.Images (#4403)

Dependencies 8 + 646

647 files ported (98.8%)
250590 lines ported (98.8%)
Show graph

The unported dependencies are