category_theory.FintypeMathlib.CategoryTheory.FintypeCat

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -64,7 +64,7 @@ instance : Category FintypeCat :=
 @[simps]
 def incl : FintypeCat ⥤ Type _ :=
   inducedFunctor _
-deriving Full, Faithful
+deriving CategoryTheory.Functor.Full, CategoryTheory.Functor.Faithful
 #align Fintype.incl FintypeCat.incl
 -/
 
@@ -185,20 +185,20 @@ def incl : Skeleton.{u} ⥤ FintypeCat.{u}
 #align Fintype.skeleton.incl FintypeCat.Skeleton.incl
 -/
 
-instance : Full incl where preimage _ _ f := f
+instance : CategoryTheory.Functor.Full incl where preimage _ _ f := f
 
-instance : Faithful incl where
+instance : CategoryTheory.Functor.Faithful incl where
 
-instance : EssSurj incl :=
-  EssSurj.mk fun X =>
+instance : CategoryTheory.Functor.EssSurj incl :=
+  CategoryTheory.Functor.EssSurj.mk fun X =>
     let F := Fintype.equivFin X
     ⟨mk (Fintype.card X),
       Nonempty.intro
         { Hom := F.symm ∘ ULift.down
           inv := ULift.up ∘ F }⟩
 
-noncomputable instance : IsEquivalence incl :=
-  Equivalence.ofFullyFaithfullyEssSurj _
+noncomputable instance : CategoryTheory.Functor.IsEquivalence incl :=
+  CategoryTheory.Functor.IsEquivalence.ofFullyFaithfullyEssSurj _
 
 #print FintypeCat.Skeleton.equivalence /-
 /-- The equivalence between `Fintype.skeleton` and `Fintype`. -/
Diff
@@ -3,11 +3,11 @@ Copyright (c) 2020 Adam Topaz. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Bhavik Mehta, Adam Topaz
 -/
-import Mathbin.CategoryTheory.ConcreteCategory.Basic
-import Mathbin.CategoryTheory.FullSubcategory
-import Mathbin.CategoryTheory.Skeletal
-import Mathbin.CategoryTheory.Elementwise
-import Mathbin.Data.Fintype.Card
+import CategoryTheory.ConcreteCategory.Basic
+import CategoryTheory.FullSubcategory
+import CategoryTheory.Skeletal
+import CategoryTheory.Elementwise
+import Data.Fintype.Card
 
 #align_import category_theory.Fintype from "leanprover-community/mathlib"@"25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e"
 
Diff
@@ -2,11 +2,6 @@
 Copyright (c) 2020 Adam Topaz. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Bhavik Mehta, Adam Topaz
-
-! This file was ported from Lean 3 source module category_theory.Fintype
-! leanprover-community/mathlib commit 25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.ConcreteCategory.Basic
 import Mathbin.CategoryTheory.FullSubcategory
@@ -14,6 +9,8 @@ import Mathbin.CategoryTheory.Skeletal
 import Mathbin.CategoryTheory.Elementwise
 import Mathbin.Data.Fintype.Card
 
+#align_import category_theory.Fintype from "leanprover-community/mathlib"@"25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e"
+
 /-!
 # The category of finite types.
 
Diff
@@ -203,17 +203,21 @@ instance : EssSurj incl :=
 noncomputable instance : IsEquivalence incl :=
   Equivalence.ofFullyFaithfullyEssSurj _
 
+#print FintypeCat.Skeleton.equivalence /-
 /-- The equivalence between `Fintype.skeleton` and `Fintype`. -/
 noncomputable def equivalence : Skeleton ≌ FintypeCat :=
   incl.asEquivalence
 #align Fintype.skeleton.equivalence FintypeCat.Skeleton.equivalence
+-/
 
+#print FintypeCat.Skeleton.incl_mk_nat_card /-
 @[simp]
 theorem incl_mk_nat_card (n : ℕ) : Fintype.card (incl.obj (mk n)) = n :=
   by
   convert Finset.card_fin n
   apply Fintype.ofEquiv_card
 #align Fintype.skeleton.incl_mk_nat_card FintypeCat.Skeleton.incl_mk_nat_card
+-/
 
 end Skeleton
 
Diff
@@ -66,7 +66,8 @@ instance : Category FintypeCat :=
 /-- The fully faithful embedding of `Fintype` into the category of types. -/
 @[simps]
 def incl : FintypeCat ⥤ Type _ :=
-  inducedFunctor _ deriving Full, Faithful
+  inducedFunctor _
+deriving Full, Faithful
 #align Fintype.incl FintypeCat.incl
 -/
 
Diff
@@ -30,7 +30,7 @@ We prove that `Fintype.skeleton` is a skeleton of `Fintype` in `Fintype.is_skele
 -/
 
 
-open Classical
+open scoped Classical
 
 open CategoryTheory
 
Diff
@@ -202,23 +202,11 @@ instance : EssSurj incl :=
 noncomputable instance : IsEquivalence incl :=
   Equivalence.ofFullyFaithfullyEssSurj _
 
-/- warning: Fintype.skeleton.equivalence -> FintypeCat.Skeleton.equivalence is a dubious translation:
-lean 3 declaration is
-  CategoryTheory.Equivalence.{u1, u1, u1, succ u1} FintypeCat.Skeleton.{u1} FintypeCat.Skeleton.CategoryTheory.smallCategory.{u1} FintypeCat.{u1} FintypeCat.CategoryTheory.category.{u1}
-but is expected to have type
-  CategoryTheory.Equivalence.{u1, u1, u1, succ u1} FintypeCat.Skeleton.{u1} FintypeCat.{u1} FintypeCat.Skeleton.instSmallCategorySkeleton.{u1} FintypeCat.instCategoryFintypeCat.{u1}
-Case conversion may be inaccurate. Consider using '#align Fintype.skeleton.equivalence FintypeCat.Skeleton.equivalenceₓ'. -/
 /-- The equivalence between `Fintype.skeleton` and `Fintype`. -/
 noncomputable def equivalence : Skeleton ≌ FintypeCat :=
   incl.asEquivalence
 #align Fintype.skeleton.equivalence FintypeCat.Skeleton.equivalence
 
-/- warning: Fintype.skeleton.incl_mk_nat_card -> FintypeCat.Skeleton.incl_mk_nat_card is a dubious translation:
-lean 3 declaration is
-  forall (n : Nat), Eq.{1} Nat (Fintype.card.{u1} (coeSort.{succ (succ u1), succ (succ u1)} FintypeCat.{u1} Type.{u1} FintypeCat.hasCoeToSort.{u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} FintypeCat.Skeleton.{u1} FintypeCat.Skeleton.CategoryTheory.smallCategory.{u1} FintypeCat.{u1} FintypeCat.CategoryTheory.category.{u1} FintypeCat.Skeleton.incl.{u1} (FintypeCat.Skeleton.mk.{u1} n))) (FintypeCat.fintype.{u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} FintypeCat.Skeleton.{u1} FintypeCat.Skeleton.CategoryTheory.smallCategory.{u1} FintypeCat.{u1} FintypeCat.CategoryTheory.category.{u1} FintypeCat.Skeleton.incl.{u1} (FintypeCat.Skeleton.mk.{u1} n)))) n
-but is expected to have type
-  forall (n : Nat), Eq.{1} Nat (Fintype.card.{u1} (CategoryTheory.Bundled.α.{u1, u1} Fintype.{u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} FintypeCat.Skeleton.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} FintypeCat.Skeleton.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, u1} FintypeCat.Skeleton.{u1} FintypeCat.Skeleton.instSmallCategorySkeleton.{u1})) FintypeCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} FintypeCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} FintypeCat.{u1} FintypeCat.instCategoryFintypeCat.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} FintypeCat.Skeleton.{u1} FintypeCat.Skeleton.instSmallCategorySkeleton.{u1} FintypeCat.{u1} FintypeCat.instCategoryFintypeCat.{u1} FintypeCat.Skeleton.incl.{u1}) (FintypeCat.Skeleton.mk.{u1} n))) (FintypeCat.instFintypeα.{u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} FintypeCat.Skeleton.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} FintypeCat.Skeleton.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, u1} FintypeCat.Skeleton.{u1} FintypeCat.Skeleton.instSmallCategorySkeleton.{u1})) FintypeCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} FintypeCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} FintypeCat.{u1} FintypeCat.instCategoryFintypeCat.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} FintypeCat.Skeleton.{u1} FintypeCat.Skeleton.instSmallCategorySkeleton.{u1} FintypeCat.{u1} FintypeCat.instCategoryFintypeCat.{u1} FintypeCat.Skeleton.incl.{u1}) (FintypeCat.Skeleton.mk.{u1} n)))) n
-Case conversion may be inaccurate. Consider using '#align Fintype.skeleton.incl_mk_nat_card FintypeCat.Skeleton.incl_mk_nat_cardₓ'. -/
 @[simp]
 theorem incl_mk_nat_card (n : ℕ) : Fintype.card (incl.obj (mk n)) = n :=
   by
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Bhavik Mehta, Adam Topaz
 
 ! This file was ported from Lean 3 source module category_theory.Fintype
-! leanprover-community/mathlib commit c3019c79074b0619edb4b27553a91b2e82242395
+! leanprover-community/mathlib commit 25a9423c6b2c8626e91c688bfd6c1d0a986a3e6e
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -17,6 +17,9 @@ import Mathbin.Data.Fintype.Card
 /-!
 # The category of finite types.
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 We define the category of finite types, denoted `Fintype` as
 (bundled) types with a `fintype` instance.
 
Diff
@@ -31,20 +31,24 @@ open Classical
 
 open CategoryTheory
 
+#print FintypeCat /-
 /-- The category of finite types. -/
 def FintypeCat :=
   Bundled Fintype
 #align Fintype FintypeCat
+-/
 
 namespace FintypeCat
 
 instance : CoeSort FintypeCat (Type _) :=
   Bundled.hasCoeToSort
 
+#print FintypeCat.of /-
 /-- Construct a bundled `Fintype` from the underlying type and typeclass. -/
 def of (X : Type _) [Fintype X] : FintypeCat :=
   Bundled.of X
 #align Fintype.of FintypeCat.of
+-/
 
 instance : Inhabited FintypeCat :=
   ⟨⟨PEmpty⟩⟩
@@ -55,26 +59,35 @@ instance {X : FintypeCat} : Fintype X :=
 instance : Category FintypeCat :=
   InducedCategory.category Bundled.α
 
+#print FintypeCat.incl /-
 /-- The fully faithful embedding of `Fintype` into the category of types. -/
 @[simps]
 def incl : FintypeCat ⥤ Type _ :=
   inducedFunctor _ deriving Full, Faithful
 #align Fintype.incl FintypeCat.incl
+-/
 
+#print FintypeCat.concreteCategoryFintype /-
 instance concreteCategoryFintype : ConcreteCategory FintypeCat :=
   ⟨incl⟩
 #align Fintype.concrete_category_Fintype FintypeCat.concreteCategoryFintype
+-/
 
+#print FintypeCat.id_apply /-
 @[simp]
 theorem id_apply (X : FintypeCat) (x : X) : (𝟙 X : X → X) x = x :=
   rfl
 #align Fintype.id_apply FintypeCat.id_apply
+-/
 
+#print FintypeCat.comp_apply /-
 @[simp]
 theorem comp_apply {X Y Z : FintypeCat} (f : X ⟶ Y) (g : Y ⟶ Z) (x : X) : (f ≫ g) x = g (f x) :=
   rfl
 #align Fintype.comp_apply FintypeCat.comp_apply
+-/
 
+#print FintypeCat.equivEquivIso /-
 -- See `equiv_equiv_iso` in the root namespace for the analogue in `Type`.
 /-- Equivalences between finite types are the same as isomorphisms in `Fintype`. -/
 @[simps]
@@ -91,9 +104,11 @@ def equivEquivIso {A B : FintypeCat} : A ≃ B ≃ (A ≅ B)
   left_inv := by tidy
   right_inv := by tidy
 #align Fintype.equiv_equiv_iso FintypeCat.equivEquivIso
+-/
 
 universe u
 
+#print FintypeCat.Skeleton /-
 /--
 The "standard" skeleton for `Fintype`. This is the full subcategory of `Fintype` spanned by objects
 of the form `ulift (fin n)` for `n : ℕ`. We parameterize the objects of `Fintype.skeleton`
@@ -104,26 +119,33 @@ skeletal category equivalent to `Fintype.{u}`.
 def Skeleton : Type u :=
   ULift ℕ
 #align Fintype.skeleton FintypeCat.Skeleton
+-/
 
 namespace Skeleton
 
+#print FintypeCat.Skeleton.mk /-
 /-- Given any natural number `n`, this creates the associated object of `Fintype.skeleton`. -/
 def mk : ℕ → Skeleton :=
   ULift.up
 #align Fintype.skeleton.mk FintypeCat.Skeleton.mk
+-/
 
 instance : Inhabited Skeleton :=
   ⟨mk 0⟩
 
+#print FintypeCat.Skeleton.len /-
 /-- Given any object of `Fintype.skeleton`, this returns the associated natural number. -/
 def len : Skeleton → ℕ :=
   ULift.down
 #align Fintype.skeleton.len FintypeCat.Skeleton.len
+-/
 
+#print FintypeCat.Skeleton.ext /-
 @[ext]
 theorem ext (X Y : Skeleton) : X.len = Y.len → X = Y :=
   ULift.ext _ _
 #align Fintype.skeleton.ext FintypeCat.Skeleton.ext
+-/
 
 instance : SmallCategory Skeleton.{u}
     where
@@ -131,6 +153,7 @@ instance : SmallCategory Skeleton.{u}
   id _ := id
   comp _ _ _ f g := g ∘ f
 
+#print FintypeCat.Skeleton.is_skeletal /-
 theorem is_skeletal : Skeletal Skeleton.{u} := fun X Y ⟨h⟩ =>
   ext _ _ <|
     Fin.equiv_iff_eq.mp <|
@@ -150,13 +173,16 @@ theorem is_skeletal : Skeletal Skeleton.{u} := fun X Y ⟨h⟩ =>
             change ((h.inv ≫ h.hom) _).down = _
             simpa }
 #align Fintype.skeleton.is_skeletal FintypeCat.Skeleton.is_skeletal
+-/
 
+#print FintypeCat.Skeleton.incl /-
 /-- The canonical fully faithful embedding of `Fintype.skeleton` into `Fintype`. -/
 def incl : Skeleton.{u} ⥤ FintypeCat.{u}
     where
   obj X := FintypeCat.of (ULift (Fin X.len))
   map _ _ f := f
 #align Fintype.skeleton.incl FintypeCat.Skeleton.incl
+-/
 
 instance : Full incl where preimage _ _ f := f
 
@@ -173,11 +199,23 @@ instance : EssSurj incl :=
 noncomputable instance : IsEquivalence incl :=
   Equivalence.ofFullyFaithfullyEssSurj _
 
+/- warning: Fintype.skeleton.equivalence -> FintypeCat.Skeleton.equivalence is a dubious translation:
+lean 3 declaration is
+  CategoryTheory.Equivalence.{u1, u1, u1, succ u1} FintypeCat.Skeleton.{u1} FintypeCat.Skeleton.CategoryTheory.smallCategory.{u1} FintypeCat.{u1} FintypeCat.CategoryTheory.category.{u1}
+but is expected to have type
+  CategoryTheory.Equivalence.{u1, u1, u1, succ u1} FintypeCat.Skeleton.{u1} FintypeCat.{u1} FintypeCat.Skeleton.instSmallCategorySkeleton.{u1} FintypeCat.instCategoryFintypeCat.{u1}
+Case conversion may be inaccurate. Consider using '#align Fintype.skeleton.equivalence FintypeCat.Skeleton.equivalenceₓ'. -/
 /-- The equivalence between `Fintype.skeleton` and `Fintype`. -/
 noncomputable def equivalence : Skeleton ≌ FintypeCat :=
   incl.asEquivalence
 #align Fintype.skeleton.equivalence FintypeCat.Skeleton.equivalence
 
+/- warning: Fintype.skeleton.incl_mk_nat_card -> FintypeCat.Skeleton.incl_mk_nat_card is a dubious translation:
+lean 3 declaration is
+  forall (n : Nat), Eq.{1} Nat (Fintype.card.{u1} (coeSort.{succ (succ u1), succ (succ u1)} FintypeCat.{u1} Type.{u1} FintypeCat.hasCoeToSort.{u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} FintypeCat.Skeleton.{u1} FintypeCat.Skeleton.CategoryTheory.smallCategory.{u1} FintypeCat.{u1} FintypeCat.CategoryTheory.category.{u1} FintypeCat.Skeleton.incl.{u1} (FintypeCat.Skeleton.mk.{u1} n))) (FintypeCat.fintype.{u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} FintypeCat.Skeleton.{u1} FintypeCat.Skeleton.CategoryTheory.smallCategory.{u1} FintypeCat.{u1} FintypeCat.CategoryTheory.category.{u1} FintypeCat.Skeleton.incl.{u1} (FintypeCat.Skeleton.mk.{u1} n)))) n
+but is expected to have type
+  forall (n : Nat), Eq.{1} Nat (Fintype.card.{u1} (CategoryTheory.Bundled.α.{u1, u1} Fintype.{u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} FintypeCat.Skeleton.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} FintypeCat.Skeleton.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, u1} FintypeCat.Skeleton.{u1} FintypeCat.Skeleton.instSmallCategorySkeleton.{u1})) FintypeCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} FintypeCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} FintypeCat.{u1} FintypeCat.instCategoryFintypeCat.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} FintypeCat.Skeleton.{u1} FintypeCat.Skeleton.instSmallCategorySkeleton.{u1} FintypeCat.{u1} FintypeCat.instCategoryFintypeCat.{u1} FintypeCat.Skeleton.incl.{u1}) (FintypeCat.Skeleton.mk.{u1} n))) (FintypeCat.instFintypeα.{u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} FintypeCat.Skeleton.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} FintypeCat.Skeleton.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, u1} FintypeCat.Skeleton.{u1} FintypeCat.Skeleton.instSmallCategorySkeleton.{u1})) FintypeCat.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} FintypeCat.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} FintypeCat.{u1} FintypeCat.instCategoryFintypeCat.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} FintypeCat.Skeleton.{u1} FintypeCat.Skeleton.instSmallCategorySkeleton.{u1} FintypeCat.{u1} FintypeCat.instCategoryFintypeCat.{u1} FintypeCat.Skeleton.incl.{u1}) (FintypeCat.Skeleton.mk.{u1} n)))) n
+Case conversion may be inaccurate. Consider using '#align Fintype.skeleton.incl_mk_nat_card FintypeCat.Skeleton.incl_mk_nat_cardₓ'. -/
 @[simp]
 theorem incl_mk_nat_card (n : ℕ) : Fintype.card (incl.obj (mk n)) = n :=
   by
@@ -187,12 +225,14 @@ theorem incl_mk_nat_card (n : ℕ) : Fintype.card (incl.obj (mk n)) = n :=
 
 end Skeleton
 
+#print FintypeCat.isSkeleton /-
 /-- `Fintype.skeleton` is a skeleton of `Fintype`. -/
 noncomputable def isSkeleton : IsSkeletonOf FintypeCat Skeleton Skeleton.incl
     where
   skel := Skeleton.is_skeletal
   eqv := by infer_instance
 #align Fintype.is_skeleton FintypeCat.isSkeleton
+-/
 
 end FintypeCat
 

Changes in mathlib4

mathlib3
mathlib4
chore(CategoryTheory): make Functor.Full a Prop (#12449)

Before this PR, Functor.Full contained the data of the preimage of maps by a full functor F. This PR makes Functor.Full a proposition. This is to prevent any diamond to appear.

The lemma Functor.image_preimage is also renamed Functor.map_preimage.

Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>

Diff
@@ -187,7 +187,7 @@ def incl : Skeleton.{u} ⥤ FintypeCat.{u} where
 set_option linter.uppercaseLean3 false in
 #align Fintype.skeleton.incl FintypeCat.Skeleton.incl
 
-instance : incl.Full where preimage f := f
+instance : incl.Full where map_surjective f := ⟨f, rfl⟩
 
 instance : incl.Faithful where
 
chore(CategoryTheory): move Full, Faithful, EssSurj, IsEquivalence and ReflectsIsomorphisms to the Functor namespace (#11985)

These notions on functors are now Functor.Full, Functor.Faithful, Functor.EssSurj, Functor.IsEquivalence, Functor.ReflectsIsomorphisms. Deprecated aliases are introduced for the previous names.

Diff
@@ -61,8 +61,8 @@ def incl : FintypeCat ⥤ Type* :=
 set_option linter.uppercaseLean3 false in
 #align Fintype.incl FintypeCat.incl
 
-instance : Full incl := InducedCategory.full _
-instance : Faithful incl := InducedCategory.faithful _
+instance : incl.Full := InducedCategory.full _
+instance : incl.Faithful := InducedCategory.faithful _
 
 instance concreteCategoryFintype : ConcreteCategory FintypeCat :=
   ⟨incl⟩
@@ -70,7 +70,7 @@ set_option linter.uppercaseLean3 false in
 #align Fintype.concrete_category_Fintype FintypeCat.concreteCategoryFintype
 
 /- Help typeclass inference infer fullness of forgetful functor. -/
-instance : Full (forget FintypeCat) := inferInstanceAs <| Full FintypeCat.incl
+instance : (forget FintypeCat).Full := inferInstanceAs <| FintypeCat.incl.Full
 
 @[simp]
 theorem id_apply (X : FintypeCat) (x : X) : (𝟙 X : X → X) x = x :=
@@ -187,20 +187,20 @@ def incl : Skeleton.{u} ⥤ FintypeCat.{u} where
 set_option linter.uppercaseLean3 false in
 #align Fintype.skeleton.incl FintypeCat.Skeleton.incl
 
-instance : Full incl where preimage f := f
+instance : incl.Full where preimage f := f
 
-instance : Faithful incl where
+instance : incl.Faithful where
 
-instance : EssSurj incl :=
-  EssSurj.mk fun X =>
+instance : incl.EssSurj :=
+  Functor.EssSurj.mk fun X =>
     let F := Fintype.equivFin X
     ⟨mk (Fintype.card X),
       Nonempty.intro
         { hom := F.symm ∘ ULift.down
           inv := ULift.up ∘ F }⟩
 
-noncomputable instance : IsEquivalence incl :=
-  Equivalence.ofFullyFaithfullyEssSurj _
+noncomputable instance : incl.IsEquivalence :=
+  Functor.IsEquivalence.ofFullyFaithfullyEssSurj _
 
 /-- The equivalence between `Fintype.Skeleton` and `Fintype`. -/
 noncomputable def equivalence : Skeleton ≌ FintypeCat :=
chore: scope open Classical (#11199)

We remove all but one open Classicals, instead preferring to use open scoped Classical. The only real side-effect this led to is moving a couple declarations to use Exists.choose instead of Classical.choose.

The first few commits are explicitly labelled regex replaces for ease of review.

Diff
@@ -24,7 +24,7 @@ We prove that `FintypeCat.Skeleton` is a skeleton of `FintypeCat` in `FintypeCat
 -/
 
 
-open Classical
+open scoped Classical
 
 open CategoryTheory
 
chore: classify added to ease automation porting notes (#10689)
  • Classifies by adding issue number (#10688) to porting notes claiming anything semantically equivalent to added to ease automation.
  • Enforce singular convention converting "porting notes" to "porting note".
Diff
@@ -92,7 +92,7 @@ lemma hom_inv_id_apply {X Y : FintypeCat} (f : X ≅ Y) (x : X) : f.inv (f.hom x
 lemma inv_hom_id_apply {X Y : FintypeCat} (f : X ≅ Y) (y : Y) : f.hom (f.inv y) = y :=
   congr_fun f.inv_hom_id y
 
--- porting note: added to ease automation
+-- Porting note (#10688): added to ease automation
 @[ext]
 lemma hom_ext {X Y : FintypeCat} (f g : X ⟶ Y) (h : ∀ x, f x = g x) : f = g := by
   funext
feat(CategoryTheory/Galois): decomposition in connected components (#10419)

Shows that any object in a Galois category is the sum of its connected components. Also shows that the connected components are unique up to isomorphism.

Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com> Co-authored-by: Christian Merten <christian@merten.dev>

Diff
@@ -84,6 +84,14 @@ theorem comp_apply {X Y Z : FintypeCat} (f : X ⟶ Y) (g : Y ⟶ Z) (x : X) : (f
 set_option linter.uppercaseLean3 false in
 #align Fintype.comp_apply FintypeCat.comp_apply
 
+@[simp]
+lemma hom_inv_id_apply {X Y : FintypeCat} (f : X ≅ Y) (x : X) : f.inv (f.hom x) = x :=
+  congr_fun f.hom_inv_id x
+
+@[simp]
+lemma inv_hom_id_apply {X Y : FintypeCat} (f : X ≅ Y) (y : Y) : f.hom (f.inv y) = y :=
+  congr_fun f.inv_hom_id y
+
 -- porting note: added to ease automation
 @[ext]
 lemma hom_ext {X Y : FintypeCat} (f g : X ⟶ Y) (h : ∀ x, f x = g x) : f = g := by
feat(CategoryTheory/Galois): characterisation of connected finite G-sets (#10228)

A finite G-set is connected if and only if the G-action is transitive.

Diff
@@ -69,6 +69,9 @@ instance concreteCategoryFintype : ConcreteCategory FintypeCat :=
 set_option linter.uppercaseLean3 false in
 #align Fintype.concrete_category_Fintype FintypeCat.concreteCategoryFintype
 
+/- Help typeclass inference infer fullness of forgetful functor. -/
+instance : Full (forget FintypeCat) := inferInstanceAs <| Full FintypeCat.incl
+
 @[simp]
 theorem id_apply (X : FintypeCat) (x : X) : (𝟙 X : X → X) x = x :=
   rfl
@@ -213,4 +216,5 @@ noncomputable def isSkeleton : IsSkeletonOf FintypeCat Skeleton Skeleton.incl wh
 set_option linter.uppercaseLean3 false in
 #align Fintype.is_skeleton FintypeCat.isSkeleton
 
+
 end FintypeCat
chore: reduce imports (#9830)

This uses the improved shake script from #9772 to reduce imports across mathlib. The corresponding noshake.json file has been added to #9772.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -6,7 +6,6 @@ Authors: Bhavik Mehta, Adam Topaz
 import Mathlib.CategoryTheory.ConcreteCategory.Basic
 import Mathlib.CategoryTheory.FullSubcategory
 import Mathlib.CategoryTheory.Skeletal
-import Mathlib.CategoryTheory.Elementwise
 import Mathlib.Data.Fintype.Card
 
 #align_import category_theory.Fintype from "leanprover-community/mathlib"@"c3019c79074b0619edb4b27553a91b2e82242395"
chore: banish Type _ and Sort _ (#6499)

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

This has nice performance benefits.

Diff
@@ -37,11 +37,11 @@ set_option linter.uppercaseLean3 false in
 
 namespace FintypeCat
 
-instance : CoeSort FintypeCat (Type _) :=
+instance : CoeSort FintypeCat (Type*) :=
   Bundled.coeSort
 
 /-- Construct a bundled `FintypeCat` from the underlying type and typeclass. -/
-def of (X : Type _) [Fintype X] : FintypeCat :=
+def of (X : Type*) [Fintype X] : FintypeCat :=
   Bundled.of X
 set_option linter.uppercaseLean3 false in
 #align Fintype.of FintypeCat.of
@@ -57,7 +57,7 @@ instance : Category FintypeCat :=
 
 /-- The fully faithful embedding of `FintypeCat` into the category of types. -/
 @[simps!]
-def incl : FintypeCat ⥤ Type _ :=
+def incl : FintypeCat ⥤ Type* :=
   inducedFunctor _
 set_option linter.uppercaseLean3 false in
 #align Fintype.incl FintypeCat.incl
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,11 +2,6 @@
 Copyright (c) 2020 Adam Topaz. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Bhavik Mehta, Adam Topaz
-
-! This file was ported from Lean 3 source module category_theory.Fintype
-! leanprover-community/mathlib commit c3019c79074b0619edb4b27553a91b2e82242395
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.ConcreteCategory.Basic
 import Mathlib.CategoryTheory.FullSubcategory
@@ -14,6 +9,8 @@ import Mathlib.CategoryTheory.Skeletal
 import Mathlib.CategoryTheory.Elementwise
 import Mathlib.Data.Fintype.Card
 
+#align_import category_theory.Fintype from "leanprover-community/mathlib"@"c3019c79074b0619edb4b27553a91b2e82242395"
+
 /-!
 # The category of finite types.
 
chore: formatting issues (#4947)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -87,7 +87,7 @@ set_option linter.uppercaseLean3 false in
 
 -- porting note: added to ease automation
 @[ext]
-lemma hom_ext {X Y : FintypeCat} (f g : X ⟶ Y) (h : ∀ x, f x = g x): f = g := by
+lemma hom_ext {X Y : FintypeCat} (f g : X ⟶ Y) (h : ∀ x, f x = g x) : f = g := by
   funext
   apply h
 
feat: port CategoryTheory.Fintype (#3365)

Dependencies 2 + 166

167 files ported (98.8%)
76584 lines ported (99.8%)
Show graph

The unported dependencies are