analysis.normed.group.SemiNormedGroup.completionMathlib.Analysis.Normed.Group.SemiNormedGroupCat.Completion

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2021 Riccardo Brasca. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Riccardo Brasca, Johan Commelin
 -/
-import Analysis.Normed.Group.SemiNormedGroup
+import Analysis.Normed.Group.SemiNormedGroupCat
 import CategoryTheory.Preadditive.AdditiveFunctor
 import Analysis.Normed.Group.HomCompletion
 
Diff
@@ -122,7 +122,7 @@ instance : Functor.Additive completion where map_add' X Y := (completion.mapHom
 /-- Given a normed group hom `f : V → W` with `W` complete, this provides a lift of `f` to
 the completion of `V`. The lemmas `lift_unique` and `lift_comp_incl` provide the api for the
 universal property of the completion. -/
-def completion.lift {V W : SemiNormedGroupCat} [CompleteSpace W] [SeparatedSpace W] (f : V ⟶ W) :
+def completion.lift {V W : SemiNormedGroupCat} [CompleteSpace W] [T0Space W] (f : V ⟶ W) :
     completion.obj V ⟶ W where
   toFun := f.extension
   map_add' := f.extension.toAddMonoidHom.map_add'
@@ -131,16 +131,16 @@ def completion.lift {V W : SemiNormedGroupCat} [CompleteSpace W] [SeparatedSpace
 -/
 
 #print SemiNormedGroupCat.completion.lift_comp_incl /-
-theorem completion.lift_comp_incl {V W : SemiNormedGroupCat} [CompleteSpace W] [SeparatedSpace W]
+theorem completion.lift_comp_incl {V W : SemiNormedGroupCat} [CompleteSpace W] [T0Space W]
     (f : V ⟶ W) : completion.incl ≫ completion.lift f = f := by ext;
   apply NormedAddGroupHom.extension_coe
 #align SemiNormedGroup.Completion.lift_comp_incl SemiNormedGroupCat.completion.lift_comp_incl
 -/
 
 #print SemiNormedGroupCat.completion.lift_unique /-
-theorem completion.lift_unique {V W : SemiNormedGroupCat} [CompleteSpace W] [SeparatedSpace W]
-    (f : V ⟶ W) (g : completion.obj V ⟶ W) : completion.incl ≫ g = f → g = completion.lift f :=
-  fun h => (NormedAddGroupHom.extension_unique _ fun v => ((ext_iff.1 h) v).symm).symm
+theorem completion.lift_unique {V W : SemiNormedGroupCat} [CompleteSpace W] [T0Space W] (f : V ⟶ W)
+    (g : completion.obj V ⟶ W) : completion.incl ≫ g = f → g = completion.lift f := fun h =>
+  (NormedAddGroupHom.extension_unique _ fun v => ((ext_iff.1 h) v).symm).symm
 #align SemiNormedGroup.Completion.lift_unique SemiNormedGroupCat.completion.lift_unique
 -/
 
Diff
@@ -51,7 +51,7 @@ def completion : SemiNormedGroupCat.{u} ⥤ SemiNormedGroupCat.{u}
     where
   obj V := SemiNormedGroupCat.of (completion V)
   map V W f := f.Completion
-  map_id' V := completion_id
+  map_id'' V := completion_id
   map_comp' U V W f g := (completion_comp f g).symm
 #align SemiNormedGroup.Completion SemiNormedGroupCat.completion
 -/
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2021 Riccardo Brasca. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Riccardo Brasca, Johan Commelin
 -/
-import Mathbin.Analysis.Normed.Group.SemiNormedGroup
-import Mathbin.CategoryTheory.Preadditive.AdditiveFunctor
-import Mathbin.Analysis.Normed.Group.HomCompletion
+import Analysis.Normed.Group.SemiNormedGroup
+import CategoryTheory.Preadditive.AdditiveFunctor
+import Analysis.Normed.Group.HomCompletion
 
 #align_import analysis.normed.group.SemiNormedGroup.completion from "leanprover-community/mathlib"@"2fe465deb81bcd7ccafa065bb686888a82f15372"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2021 Riccardo Brasca. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Riccardo Brasca, Johan Commelin
-
-! This file was ported from Lean 3 source module analysis.normed.group.SemiNormedGroup.completion
-! leanprover-community/mathlib commit 2fe465deb81bcd7ccafa065bb686888a82f15372
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Analysis.Normed.Group.SemiNormedGroup
 import Mathbin.CategoryTheory.Preadditive.AdditiveFunctor
 import Mathbin.Analysis.Normed.Group.HomCompletion
 
+#align_import analysis.normed.group.SemiNormedGroup.completion from "leanprover-community/mathlib"@"2fe465deb81bcd7ccafa065bb686888a82f15372"
+
 /-!
 # Completions of normed groups
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Riccardo Brasca, Johan Commelin
 
 ! This file was ported from Lean 3 source module analysis.normed.group.SemiNormedGroup.completion
-! leanprover-community/mathlib commit 17ef379e997badd73e5eabb4d38f11919ab3c4b3
+! leanprover-community/mathlib commit 2fe465deb81bcd7ccafa065bb686888a82f15372
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.Analysis.Normed.Group.HomCompletion
 /-!
 # Completions of normed groups
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file contains an API for completions of seminormed groups (basic facts about
 objects and morphisms).
 
Diff
@@ -44,6 +44,7 @@ open UniformSpace MulOpposite CategoryTheory NormedAddGroupHom
 
 namespace SemiNormedGroupCat
 
+#print SemiNormedGroupCat.completion /-
 /-- The completion of a seminormed group, as an endofunctor on `SemiNormedGroup`. -/
 @[simps]
 def completion : SemiNormedGroupCat.{u} ⥤ SemiNormedGroupCat.{u}
@@ -53,11 +54,15 @@ def completion : SemiNormedGroupCat.{u} ⥤ SemiNormedGroupCat.{u}
   map_id' V := completion_id
   map_comp' U V W f g := (completion_comp f g).symm
 #align SemiNormedGroup.Completion SemiNormedGroupCat.completion
+-/
 
+#print SemiNormedGroupCat.completion_completeSpace /-
 instance completion_completeSpace {V : SemiNormedGroupCat} : CompleteSpace (completion.obj V) :=
   Completion.completeSpace _
 #align SemiNormedGroup.Completion_complete_space SemiNormedGroupCat.completion_completeSpace
+-/
 
+#print SemiNormedGroupCat.completion.incl /-
 /-- The canonical morphism from a seminormed group `V` to its completion. -/
 @[simps]
 def completion.incl {V : SemiNormedGroupCat} : V ⟶ completion.obj V
@@ -66,18 +71,24 @@ def completion.incl {V : SemiNormedGroupCat} : V ⟶ completion.obj V
   map_add' := Completion.coe_add
   bound' := ⟨1, fun v => by simp⟩
 #align SemiNormedGroup.Completion.incl SemiNormedGroupCat.completion.incl
+-/
 
+#print SemiNormedGroupCat.completion.norm_incl_eq /-
 theorem completion.norm_incl_eq {V : SemiNormedGroupCat} {v : V} : ‖completion.incl v‖ = ‖v‖ := by
   simp
 #align SemiNormedGroup.Completion.norm_incl_eq SemiNormedGroupCat.completion.norm_incl_eq
+-/
 
+#print SemiNormedGroupCat.completion.map_normNoninc /-
 theorem completion.map_normNoninc {V W : SemiNormedGroupCat} {f : V ⟶ W} (hf : f.NormNoninc) :
     (completion.map f).NormNoninc :=
   NormedAddGroupHom.NormNoninc.normNoninc_iff_norm_le_one.2 <|
     (NormedAddGroupHom.norm_completion f).le.trans <|
       NormedAddGroupHom.NormNoninc.normNoninc_iff_norm_le_one.1 hf
 #align SemiNormedGroup.Completion.map_norm_noninc SemiNormedGroupCat.completion.map_normNoninc
+-/
 
+#print SemiNormedGroupCat.completion.mapHom /-
 /-- Given a normed group hom `V ⟶ W`, this defines the associated morphism
 from the completion of `V` to the completion of `W`.
 The difference from the definition obtained from the functoriality of completion is in that the
@@ -86,11 +97,14 @@ def completion.mapHom (V W : SemiNormedGroupCat.{u}) :
     (V ⟶ W) →+ (completion.obj V ⟶ completion.obj W) :=
   AddMonoidHom.mk' (CategoryTheory.Functor.map completion) fun f g => f.completion_add g
 #align SemiNormedGroup.Completion.map_hom SemiNormedGroupCat.completion.mapHom
+-/
 
+#print SemiNormedGroupCat.completion.map_zero /-
 @[simp]
 theorem completion.map_zero (V W : SemiNormedGroupCat) : completion.map (0 : V ⟶ W) = 0 :=
   (completion.mapHom V W).map_zero
 #align SemiNormedGroup.Completion.map_zero SemiNormedGroupCat.completion.map_zero
+-/
 
 instance : Preadditive SemiNormedGroupCat.{u}
     where
@@ -104,6 +118,7 @@ instance : Preadditive SemiNormedGroupCat.{u}
 
 instance : Functor.Additive completion where map_add' X Y := (completion.mapHom _ _).map_add
 
+#print SemiNormedGroupCat.completion.lift /-
 /-- Given a normed group hom `f : V → W` with `W` complete, this provides a lift of `f` to
 the completion of `V`. The lemmas `lift_unique` and `lift_comp_incl` provide the api for the
 universal property of the completion. -/
@@ -113,16 +128,21 @@ def completion.lift {V W : SemiNormedGroupCat} [CompleteSpace W] [SeparatedSpace
   map_add' := f.extension.toAddMonoidHom.map_add'
   bound' := f.extension.bound'
 #align SemiNormedGroup.Completion.lift SemiNormedGroupCat.completion.lift
+-/
 
+#print SemiNormedGroupCat.completion.lift_comp_incl /-
 theorem completion.lift_comp_incl {V W : SemiNormedGroupCat} [CompleteSpace W] [SeparatedSpace W]
     (f : V ⟶ W) : completion.incl ≫ completion.lift f = f := by ext;
   apply NormedAddGroupHom.extension_coe
 #align SemiNormedGroup.Completion.lift_comp_incl SemiNormedGroupCat.completion.lift_comp_incl
+-/
 
+#print SemiNormedGroupCat.completion.lift_unique /-
 theorem completion.lift_unique {V W : SemiNormedGroupCat} [CompleteSpace W] [SeparatedSpace W]
     (f : V ⟶ W) (g : completion.obj V ⟶ W) : completion.incl ≫ g = f → g = completion.lift f :=
   fun h => (NormedAddGroupHom.extension_unique _ fun v => ((ext_iff.1 h) v).symm).symm
 #align SemiNormedGroup.Completion.lift_unique SemiNormedGroupCat.completion.lift_unique
+-/
 
 end SemiNormedGroupCat
 
Diff
@@ -42,56 +42,57 @@ universe u
 
 open UniformSpace MulOpposite CategoryTheory NormedAddGroupHom
 
-namespace SemiNormedGroup
+namespace SemiNormedGroupCat
 
 /-- The completion of a seminormed group, as an endofunctor on `SemiNormedGroup`. -/
 @[simps]
-def completion : SemiNormedGroup.{u} ⥤ SemiNormedGroup.{u}
+def completion : SemiNormedGroupCat.{u} ⥤ SemiNormedGroupCat.{u}
     where
-  obj V := SemiNormedGroup.of (completion V)
+  obj V := SemiNormedGroupCat.of (completion V)
   map V W f := f.Completion
   map_id' V := completion_id
   map_comp' U V W f g := (completion_comp f g).symm
-#align SemiNormedGroup.Completion SemiNormedGroup.completion
+#align SemiNormedGroup.Completion SemiNormedGroupCat.completion
 
-instance completion_completeSpace {V : SemiNormedGroup} : CompleteSpace (completion.obj V) :=
+instance completion_completeSpace {V : SemiNormedGroupCat} : CompleteSpace (completion.obj V) :=
   Completion.completeSpace _
-#align SemiNormedGroup.Completion_complete_space SemiNormedGroup.completion_completeSpace
+#align SemiNormedGroup.Completion_complete_space SemiNormedGroupCat.completion_completeSpace
 
 /-- The canonical morphism from a seminormed group `V` to its completion. -/
 @[simps]
-def completion.incl {V : SemiNormedGroup} : V ⟶ completion.obj V
+def completion.incl {V : SemiNormedGroupCat} : V ⟶ completion.obj V
     where
   toFun v := (v : completion V)
   map_add' := Completion.coe_add
   bound' := ⟨1, fun v => by simp⟩
-#align SemiNormedGroup.Completion.incl SemiNormedGroup.completion.incl
+#align SemiNormedGroup.Completion.incl SemiNormedGroupCat.completion.incl
 
-theorem completion.norm_incl_eq {V : SemiNormedGroup} {v : V} : ‖completion.incl v‖ = ‖v‖ := by simp
-#align SemiNormedGroup.Completion.norm_incl_eq SemiNormedGroup.completion.norm_incl_eq
+theorem completion.norm_incl_eq {V : SemiNormedGroupCat} {v : V} : ‖completion.incl v‖ = ‖v‖ := by
+  simp
+#align SemiNormedGroup.Completion.norm_incl_eq SemiNormedGroupCat.completion.norm_incl_eq
 
-theorem completion.map_normNoninc {V W : SemiNormedGroup} {f : V ⟶ W} (hf : f.NormNoninc) :
+theorem completion.map_normNoninc {V W : SemiNormedGroupCat} {f : V ⟶ W} (hf : f.NormNoninc) :
     (completion.map f).NormNoninc :=
   NormedAddGroupHom.NormNoninc.normNoninc_iff_norm_le_one.2 <|
     (NormedAddGroupHom.norm_completion f).le.trans <|
       NormedAddGroupHom.NormNoninc.normNoninc_iff_norm_le_one.1 hf
-#align SemiNormedGroup.Completion.map_norm_noninc SemiNormedGroup.completion.map_normNoninc
+#align SemiNormedGroup.Completion.map_norm_noninc SemiNormedGroupCat.completion.map_normNoninc
 
 /-- Given a normed group hom `V ⟶ W`, this defines the associated morphism
 from the completion of `V` to the completion of `W`.
 The difference from the definition obtained from the functoriality of completion is in that the
 map sending a morphism `f` to the associated morphism of completions is itself additive. -/
-def completion.mapHom (V W : SemiNormedGroup.{u}) :
+def completion.mapHom (V W : SemiNormedGroupCat.{u}) :
     (V ⟶ W) →+ (completion.obj V ⟶ completion.obj W) :=
   AddMonoidHom.mk' (CategoryTheory.Functor.map completion) fun f g => f.completion_add g
-#align SemiNormedGroup.Completion.map_hom SemiNormedGroup.completion.mapHom
+#align SemiNormedGroup.Completion.map_hom SemiNormedGroupCat.completion.mapHom
 
 @[simp]
-theorem completion.map_zero (V W : SemiNormedGroup) : completion.map (0 : V ⟶ W) = 0 :=
+theorem completion.map_zero (V W : SemiNormedGroupCat) : completion.map (0 : V ⟶ W) = 0 :=
   (completion.mapHom V W).map_zero
-#align SemiNormedGroup.Completion.map_zero SemiNormedGroup.completion.map_zero
+#align SemiNormedGroup.Completion.map_zero SemiNormedGroupCat.completion.map_zero
 
-instance : Preadditive SemiNormedGroup.{u}
+instance : Preadditive SemiNormedGroupCat.{u}
     where
   homGroup P Q := inferInstance
   add_comp := by
@@ -106,22 +107,22 @@ instance : Functor.Additive completion where map_add' X Y := (completion.mapHom
 /-- Given a normed group hom `f : V → W` with `W` complete, this provides a lift of `f` to
 the completion of `V`. The lemmas `lift_unique` and `lift_comp_incl` provide the api for the
 universal property of the completion. -/
-def completion.lift {V W : SemiNormedGroup} [CompleteSpace W] [SeparatedSpace W] (f : V ⟶ W) :
+def completion.lift {V W : SemiNormedGroupCat} [CompleteSpace W] [SeparatedSpace W] (f : V ⟶ W) :
     completion.obj V ⟶ W where
   toFun := f.extension
   map_add' := f.extension.toAddMonoidHom.map_add'
   bound' := f.extension.bound'
-#align SemiNormedGroup.Completion.lift SemiNormedGroup.completion.lift
+#align SemiNormedGroup.Completion.lift SemiNormedGroupCat.completion.lift
 
-theorem completion.lift_comp_incl {V W : SemiNormedGroup} [CompleteSpace W] [SeparatedSpace W]
+theorem completion.lift_comp_incl {V W : SemiNormedGroupCat} [CompleteSpace W] [SeparatedSpace W]
     (f : V ⟶ W) : completion.incl ≫ completion.lift f = f := by ext;
   apply NormedAddGroupHom.extension_coe
-#align SemiNormedGroup.Completion.lift_comp_incl SemiNormedGroup.completion.lift_comp_incl
+#align SemiNormedGroup.Completion.lift_comp_incl SemiNormedGroupCat.completion.lift_comp_incl
 
-theorem completion.lift_unique {V W : SemiNormedGroup} [CompleteSpace W] [SeparatedSpace W]
+theorem completion.lift_unique {V W : SemiNormedGroupCat} [CompleteSpace W] [SeparatedSpace W]
     (f : V ⟶ W) (g : completion.obj V ⟶ W) : completion.incl ≫ g = f → g = completion.lift f :=
   fun h => (NormedAddGroupHom.extension_unique _ fun v => ((ext_iff.1 h) v).symm).symm
-#align SemiNormedGroup.Completion.lift_unique SemiNormedGroup.completion.lift_unique
+#align SemiNormedGroup.Completion.lift_unique SemiNormedGroupCat.completion.lift_unique
 
-end SemiNormedGroup
+end SemiNormedGroupCat
 
Diff
@@ -95,10 +95,10 @@ instance : Preadditive SemiNormedGroup.{u}
     where
   homGroup P Q := inferInstance
   add_comp := by
-    intros ; ext
+    intros; ext
     simp only [NormedAddGroupHom.add_apply, CategoryTheory.comp_apply, map_add]
   comp_add := by
-    intros ; ext
+    intros; ext
     simp only [NormedAddGroupHom.add_apply, CategoryTheory.comp_apply, map_add]
 
 instance : Functor.Additive completion where map_add' X Y := (completion.mapHom _ _).map_add
Diff
@@ -95,12 +95,10 @@ instance : Preadditive SemiNormedGroup.{u}
     where
   homGroup P Q := inferInstance
   add_comp := by
-    intros
-    ext
+    intros ; ext
     simp only [NormedAddGroupHom.add_apply, CategoryTheory.comp_apply, map_add]
   comp_add := by
-    intros
-    ext
+    intros ; ext
     simp only [NormedAddGroupHom.add_apply, CategoryTheory.comp_apply, map_add]
 
 instance : Functor.Additive completion where map_add' X Y := (completion.mapHom _ _).map_add
@@ -116,9 +114,7 @@ def completion.lift {V W : SemiNormedGroup} [CompleteSpace W] [SeparatedSpace W]
 #align SemiNormedGroup.Completion.lift SemiNormedGroup.completion.lift
 
 theorem completion.lift_comp_incl {V W : SemiNormedGroup} [CompleteSpace W] [SeparatedSpace W]
-    (f : V ⟶ W) : completion.incl ≫ completion.lift f = f :=
-  by
-  ext
+    (f : V ⟶ W) : completion.incl ≫ completion.lift f = f := by ext;
   apply NormedAddGroupHom.extension_coe
 #align SemiNormedGroup.Completion.lift_comp_incl SemiNormedGroup.completion.lift_comp_incl
 
Diff
@@ -94,11 +94,11 @@ theorem completion.map_zero (V W : SemiNormedGroup) : completion.map (0 : V ⟶
 instance : Preadditive SemiNormedGroup.{u}
     where
   homGroup P Q := inferInstance
-  add_comp' := by
+  add_comp := by
     intros
     ext
     simp only [NormedAddGroupHom.add_apply, CategoryTheory.comp_apply, map_add]
-  comp_add' := by
+  comp_add := by
     intros
     ext
     simp only [NormedAddGroupHom.add_apply, CategoryTheory.comp_apply, map_add]

Changes in mathlib4

mathlib3
mathlib4
refactor(UniformSpace): drop separationRel (#10644)

We had duplicated API between topological spaces and uniform spaces. In this PR I mostly deduplicate it with some exceptions:

  • SeparationQuotient.lift' and SeparationQuotient.map are leftovers from the old version that are designed to work with uniform spaces;
  • probably, some theorems/instances still assume UniformSpace when TopologicalSpace would work.

Outside of UniformSpace/Separation, I mostly changed SeparatedSpace to T0Space and separationRel to Inseparable. I also rewrote a few proofs that were broken by the API change.

Fixes #2031

Diff
@@ -125,19 +125,19 @@ instance : Functor.Additive completion where
 /-- Given a normed group hom `f : V → W` with `W` complete, this provides a lift of `f` to
 the completion of `V`. The lemmas `lift_unique` and `lift_comp_incl` provide the api for the
 universal property of the completion. -/
-def completion.lift {V W : SemiNormedGroupCat} [CompleteSpace W] [SeparatedSpace W] (f : V ⟶ W) :
+def completion.lift {V W : SemiNormedGroupCat} [CompleteSpace W] [T0Space W] (f : V ⟶ W) :
     completion.obj V ⟶ W where
   toFun := f.extension
   map_add' := f.extension.toAddMonoidHom.map_add'
   bound' := f.extension.bound'
 #align SemiNormedGroup.Completion.lift SemiNormedGroupCat.completion.lift
 
-theorem completion.lift_comp_incl {V W : SemiNormedGroupCat} [CompleteSpace W] [SeparatedSpace W]
+theorem completion.lift_comp_incl {V W : SemiNormedGroupCat} [CompleteSpace W] [T0Space W]
     (f : V ⟶ W) : completion.incl ≫ completion.lift f = f :=
   ext <| NormedAddGroupHom.extension_coe _
 #align SemiNormedGroup.Completion.lift_comp_incl SemiNormedGroupCat.completion.lift_comp_incl
 
-theorem completion.lift_unique {V W : SemiNormedGroupCat} [CompleteSpace W] [SeparatedSpace W]
+theorem completion.lift_unique {V W : SemiNormedGroupCat} [CompleteSpace W] [T0Space W]
     (f : V ⟶ W) (g : completion.obj V ⟶ W) : completion.incl ≫ g = f → g = completion.lift f :=
   fun h => (NormedAddGroupHom.extension_unique _ fun v => ((ext_iff.1 h) v).symm).symm
 #align SemiNormedGroup.Completion.lift_unique SemiNormedGroupCat.completion.lift_unique
chore: tidy various files (#8175)
Diff
@@ -17,17 +17,17 @@ objects and morphisms).
 
 ## Main definitions
 
-- `SemiNormedGroup.Completion : SemiNormedGroup ⥤ SemiNormedGroup` : the completion of a
-  seminormed group (defined as a functor on `SemiNormedGroup` to itself).
-- `SemiNormedGroup.Completion.lift (f : V ⟶ W) : (Completion.obj V ⟶ W)` : a normed group hom
+- `SemiNormedGroupCat.Completion : SemiNormedGroupCat ⥤ SemiNormedGroupCat` : the completion of a
+  seminormed group (defined as a functor on `SemiNormedGroupCat` to itself).
+- `SemiNormedGroupCat.Completion.lift (f : V ⟶ W) : (Completion.obj V ⟶ W)` : a normed group hom
   from `V` to complete `W` extends ("lifts") to a seminormed group hom from the completion of
   `V` to `W`.
 
 ## Projects
 
-1. Construct the category of complete seminormed groups, say `CompleteSemiNormedGroup`
+1. Construct the category of complete seminormed groups, say `CompleteSemiNormedGroupCat`
   and promote the `Completion` functor below to a functor landing in this category.
-2. Prove that the functor `Completion : SemiNormedGroup ⥤ CompleteSemiNormedGroup`
+2. Prove that the functor `Completion : SemiNormedGroupCat ⥤ CompleteSemiNormedGroupCat`
   is left adjoint to the forgetful functor.
 
 -/
@@ -42,7 +42,7 @@ set_option linter.uppercaseLean3 false
 
 namespace SemiNormedGroupCat
 
-/-- The completion of a seminormed group, as an endofunctor on `SemiNormedGroup`. -/
+/-- The completion of a seminormed group, as an endofunctor on `SemiNormedGroupCat`. -/
 @[simps]
 def completion : SemiNormedGroupCat.{u} ⥤ SemiNormedGroupCat.{u} where
   obj V := SemiNormedGroupCat.of (Completion V)
@@ -85,8 +85,8 @@ The difference from the definition obtained from the functoriality of completion
 map sending a morphism `f` to the associated morphism of completions is itself additive. -/
 def completion.mapHom (V W : SemiNormedGroupCat.{u}) :
     -- Porting note: cannot see instances through concrete cats
-    have (V W : SemiNormedGroupCat.{u}) : AddGroup (V ⟶ W) := inferInstanceAs <| AddGroup
-      <| NormedAddGroupHom V W
+    have (V W : SemiNormedGroupCat.{u}) : AddGroup (V ⟶ W) :=
+      inferInstanceAs <| AddGroup <| NormedAddGroupHom V W
     (V ⟶ W) →+ (completion.obj V ⟶ completion.obj W) :=
   @AddMonoidHom.mk' _ _ (_) (_) completion.map fun f g => f.completion_add g
 #align SemiNormedGroup.Completion.map_hom SemiNormedGroupCat.completion.mapHom
@@ -99,8 +99,8 @@ theorem completion.map_zero (V W : SemiNormedGroupCat) : completion.map (0 : V 
 
 instance : Preadditive SemiNormedGroupCat.{u} where
   homGroup P Q := inferInstanceAs <| AddCommGroup <| NormedAddGroupHom P Q
-  add_comp := by
-    intros _ Q _ f f' g; ext x
+  add_comp _ Q _ f f' g := by
+    ext x
     -- Porting note: failing simps probably due to instance synthesis issues with concrete
     -- cats; see the gymnastics below for what used to be
     -- simp only [add_apply, comp_apply. map_add]
@@ -108,8 +108,8 @@ instance : Preadditive SemiNormedGroupCat.{u} where
     rw [NormedAddGroupHom.add_apply]; erw [CategoryTheory.comp_apply, CategoryTheory.comp_apply,
       CategoryTheory.comp_apply, @NormedAddGroupHom.add_apply _ _ (_) (_)]
     convert map_add g (f x) (f' x)
-  comp_add := by
-    intros; ext
+  comp_add _ _ _ _ _ _ := by
+    ext
     -- Porting note: failing simps probably due to instance synthesis issues with concrete
     -- cats; see the gymnastics below for what used to be
     -- simp only [add_apply, comp_apply. map_add]
Revert "chore: revert #7703 (#7710)"

This reverts commit f3695eb2.

Diff
@@ -63,6 +63,9 @@ def completion.incl {V : SemiNormedGroupCat} : V ⟶ completion.obj V where
   bound' := ⟨1, fun v => by simp⟩
 #align SemiNormedGroup.Completion.incl SemiNormedGroupCat.completion.incl
 
+-- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
+attribute [nolint simpNF] SemiNormedGroupCat.completion.incl_apply
+
 theorem completion.norm_incl_eq {V : SemiNormedGroupCat} {v : V} : ‖completion.incl v‖ = ‖v‖ :=
   UniformSpace.Completion.norm_coe _
 #align SemiNormedGroup.Completion.norm_incl_eq SemiNormedGroupCat.completion.norm_incl_eq
@@ -101,7 +104,8 @@ instance : Preadditive SemiNormedGroupCat.{u} where
     -- Porting note: failing simps probably due to instance synthesis issues with concrete
     -- cats; see the gymnastics below for what used to be
     -- simp only [add_apply, comp_apply. map_add]
-    rw [NormedAddGroupHom.add_apply, CategoryTheory.comp_apply, CategoryTheory.comp_apply,
+    -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+    rw [NormedAddGroupHom.add_apply]; erw [CategoryTheory.comp_apply, CategoryTheory.comp_apply,
       CategoryTheory.comp_apply, @NormedAddGroupHom.add_apply _ _ (_) (_)]
     convert map_add g (f x) (f' x)
   comp_add := by
@@ -109,8 +113,11 @@ instance : Preadditive SemiNormedGroupCat.{u} where
     -- Porting note: failing simps probably due to instance synthesis issues with concrete
     -- cats; see the gymnastics below for what used to be
     -- simp only [add_apply, comp_apply. map_add]
-    rw [NormedAddGroupHom.add_apply, CategoryTheory.comp_apply, CategoryTheory.comp_apply,
+    rw [NormedAddGroupHom.add_apply]
+    -- This used to be a single `rw`, but we need `erw` after leanprover/lean4#2644
+    erw [CategoryTheory.comp_apply, CategoryTheory.comp_apply,
       CategoryTheory.comp_apply, @NormedAddGroupHom.add_apply _ _ (_) (_)]
+    rfl
 
 instance : Functor.Additive completion where
   map_add := NormedAddGroupHom.completion_add _ _
@@ -136,4 +143,3 @@ theorem completion.lift_unique {V W : SemiNormedGroupCat} [CompleteSpace W] [Sep
 #align SemiNormedGroup.Completion.lift_unique SemiNormedGroupCat.completion.lift_unique
 
 end SemiNormedGroupCat
-
chore: revert #7703 (#7710)

This reverts commit 26eb2b0a.

Diff
@@ -63,9 +63,6 @@ def completion.incl {V : SemiNormedGroupCat} : V ⟶ completion.obj V where
   bound' := ⟨1, fun v => by simp⟩
 #align SemiNormedGroup.Completion.incl SemiNormedGroupCat.completion.incl
 
--- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
-attribute [nolint simpNF] SemiNormedGroupCat.completion.incl_apply
-
 theorem completion.norm_incl_eq {V : SemiNormedGroupCat} {v : V} : ‖completion.incl v‖ = ‖v‖ :=
   UniformSpace.Completion.norm_coe _
 #align SemiNormedGroup.Completion.norm_incl_eq SemiNormedGroupCat.completion.norm_incl_eq
@@ -104,8 +101,7 @@ instance : Preadditive SemiNormedGroupCat.{u} where
     -- Porting note: failing simps probably due to instance synthesis issues with concrete
     -- cats; see the gymnastics below for what used to be
     -- simp only [add_apply, comp_apply. map_add]
-    -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
-    rw [NormedAddGroupHom.add_apply]; erw [CategoryTheory.comp_apply, CategoryTheory.comp_apply,
+    rw [NormedAddGroupHom.add_apply, CategoryTheory.comp_apply, CategoryTheory.comp_apply,
       CategoryTheory.comp_apply, @NormedAddGroupHom.add_apply _ _ (_) (_)]
     convert map_add g (f x) (f' x)
   comp_add := by
@@ -113,11 +109,8 @@ instance : Preadditive SemiNormedGroupCat.{u} where
     -- Porting note: failing simps probably due to instance synthesis issues with concrete
     -- cats; see the gymnastics below for what used to be
     -- simp only [add_apply, comp_apply. map_add]
-    rw [NormedAddGroupHom.add_apply]
-    -- This used to be a single `rw`, but we need `erw` after leanprover/lean4#2644
-    erw [CategoryTheory.comp_apply, CategoryTheory.comp_apply,
+    rw [NormedAddGroupHom.add_apply, CategoryTheory.comp_apply, CategoryTheory.comp_apply,
       CategoryTheory.comp_apply, @NormedAddGroupHom.add_apply _ _ (_) (_)]
-    rfl
 
 instance : Functor.Additive completion where
   map_add := NormedAddGroupHom.completion_add _ _
@@ -143,3 +136,4 @@ theorem completion.lift_unique {V W : SemiNormedGroupCat} [CompleteSpace W] [Sep
 #align SemiNormedGroup.Completion.lift_unique SemiNormedGroupCat.completion.lift_unique
 
 end SemiNormedGroupCat
+
chore: bump toolchain to v4.2.0-rc2 (#7703)

This includes all the changes from #7606.

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -63,6 +63,9 @@ def completion.incl {V : SemiNormedGroupCat} : V ⟶ completion.obj V where
   bound' := ⟨1, fun v => by simp⟩
 #align SemiNormedGroup.Completion.incl SemiNormedGroupCat.completion.incl
 
+-- These lemmas have always been bad (#7657), but leanprover/lean4#2644 made `simp` start noticing
+attribute [nolint simpNF] SemiNormedGroupCat.completion.incl_apply
+
 theorem completion.norm_incl_eq {V : SemiNormedGroupCat} {v : V} : ‖completion.incl v‖ = ‖v‖ :=
   UniformSpace.Completion.norm_coe _
 #align SemiNormedGroup.Completion.norm_incl_eq SemiNormedGroupCat.completion.norm_incl_eq
@@ -101,7 +104,8 @@ instance : Preadditive SemiNormedGroupCat.{u} where
     -- Porting note: failing simps probably due to instance synthesis issues with concrete
     -- cats; see the gymnastics below for what used to be
     -- simp only [add_apply, comp_apply. map_add]
-    rw [NormedAddGroupHom.add_apply, CategoryTheory.comp_apply, CategoryTheory.comp_apply,
+    -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+    rw [NormedAddGroupHom.add_apply]; erw [CategoryTheory.comp_apply, CategoryTheory.comp_apply,
       CategoryTheory.comp_apply, @NormedAddGroupHom.add_apply _ _ (_) (_)]
     convert map_add g (f x) (f' x)
   comp_add := by
@@ -109,8 +113,11 @@ instance : Preadditive SemiNormedGroupCat.{u} where
     -- Porting note: failing simps probably due to instance synthesis issues with concrete
     -- cats; see the gymnastics below for what used to be
     -- simp only [add_apply, comp_apply. map_add]
-    rw [NormedAddGroupHom.add_apply, CategoryTheory.comp_apply, CategoryTheory.comp_apply,
+    rw [NormedAddGroupHom.add_apply]
+    -- This used to be a single `rw`, but we need `erw` after leanprover/lean4#2644
+    erw [CategoryTheory.comp_apply, CategoryTheory.comp_apply,
       CategoryTheory.comp_apply, @NormedAddGroupHom.add_apply _ _ (_) (_)]
+    rfl
 
 instance : Functor.Additive completion where
   map_add := NormedAddGroupHom.completion_add _ _
@@ -136,4 +143,3 @@ theorem completion.lift_unique {V W : SemiNormedGroupCat} [CompleteSpace W] [Sep
 #align SemiNormedGroup.Completion.lift_unique SemiNormedGroupCat.completion.lift_unique
 
 end SemiNormedGroupCat
-
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,16 +2,13 @@
 Copyright (c) 2021 Riccardo Brasca. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Riccardo Brasca, Johan Commelin
-
-! This file was ported from Lean 3 source module analysis.normed.group.SemiNormedGroup.completion
-! leanprover-community/mathlib commit 17ef379e997badd73e5eabb4d38f11919ab3c4b3
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Analysis.Normed.Group.SemiNormedGroupCat
 import Mathlib.CategoryTheory.Preadditive.AdditiveFunctor
 import Mathlib.Analysis.Normed.Group.HomCompletion
 
+#align_import analysis.normed.group.SemiNormedGroup.completion from "leanprover-community/mathlib"@"17ef379e997badd73e5eabb4d38f11919ab3c4b3"
+
 /-!
 # Completions of normed groups
 
feat: port Analysis.Normed.Group.SemiNormedGroup.Completion (#5697)

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Johan Commelin <johan@commelin.net>

Dependencies 10 + 622

623 files ported (98.4%)
260495 lines ported (98.0%)
Show graph

The unported dependencies are

The following 1 dependencies have changed in mathlib3 since they were ported, which may complicate porting this file