category_theory.endomorphism
⟷
Mathlib.CategoryTheory.Endomorphism
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,7 +3,7 @@ Copyright (c) 2019 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov, Scott Morrison, Simon Hudon
-/
-import Algebra.Hom.Equiv.Basic
+import Algebra.Group.Equiv.Basic
import CategoryTheory.Groupoid
import CategoryTheory.Opposites
import GroupTheory.GroupAction.Defs
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2019 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov, Scott Morrison, Simon Hudon
-/
-import Mathbin.Algebra.Hom.Equiv.Basic
-import Mathbin.CategoryTheory.Groupoid
-import Mathbin.CategoryTheory.Opposites
-import Mathbin.GroupTheory.GroupAction.Defs
+import Algebra.Hom.Equiv.Basic
+import CategoryTheory.Groupoid
+import CategoryTheory.Opposites
+import GroupTheory.GroupAction.Defs
#align_import category_theory.endomorphism from "leanprover-community/mathlib"@"e97cf15cd1aec9bd5c193b2ffac5a6dc9118912b"
mathlib commit https://github.com/leanprover-community/mathlib/commit/32a7e535287f9c73f2e4d2aef306a39190f0b504
@@ -113,7 +113,7 @@ instance mulActionRight {X Y : C} : MulAction (End Y) (X ⟶ Y)
where
smul r f := f ≫ r
one_smul := Category.comp_id
- mul_smul r s f := Eq.symm <| Category.assoc _ _ _
+ hMul_smul r s f := Eq.symm <| Category.assoc _ _ _
#align category_theory.End.mul_action_right CategoryTheory.End.mulActionRight
-/
@@ -122,7 +122,7 @@ instance mulActionLeft {X : Cᵒᵖ} {Y : C} : MulAction (End X) (unop X ⟶ Y)
where
smul r f := r.unop ≫ f
one_smul := Category.id_comp
- mul_smul r s f := Category.assoc _ _ _
+ hMul_smul r s f := Category.assoc _ _ _
#align category_theory.End.mul_action_left CategoryTheory.End.mulActionLeft
-/
@@ -144,7 +144,7 @@ end MulAction
/-- In a groupoid, endomorphisms form a group -/
instance group {C : Type u} [Groupoid.{v} C] (X : C) : Group (End X) :=
{ End.monoid with
- mul_left_inv := Groupoid.comp_inv
+ hMul_left_inv := Groupoid.comp_inv
inv := Groupoid.inv }
#align category_theory.End.group CategoryTheory.End.group
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2019 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov, Scott Morrison, Simon Hudon
-
-! This file was ported from Lean 3 source module category_theory.endomorphism
-! leanprover-community/mathlib commit e97cf15cd1aec9bd5c193b2ffac5a6dc9118912b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.Hom.Equiv.Basic
import Mathbin.CategoryTheory.Groupoid
import Mathbin.CategoryTheory.Opposites
import Mathbin.GroupTheory.GroupAction.Defs
+#align_import category_theory.endomorphism from "leanprover-community/mathlib"@"e97cf15cd1aec9bd5c193b2ffac5a6dc9118912b"
+
/-!
# Endomorphisms
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -196,14 +196,19 @@ instance : Group (Aut X) := by
ext <;>
simp [flip, (· * ·), Monoid.mul, MulOneClass.mul, MulOneClass.one, One.one, Monoid.one, Inv.inv]
+#print CategoryTheory.Aut.Aut_mul_def /-
theorem Aut_mul_def (f g : Aut X) : f * g = g.trans f :=
rfl
#align category_theory.Aut.Aut_mul_def CategoryTheory.Aut.Aut_mul_def
+-/
+#print CategoryTheory.Aut.Aut_inv_def /-
theorem Aut_inv_def (f : Aut X) : f⁻¹ = f.symm :=
rfl
#align category_theory.Aut.Aut_inv_def CategoryTheory.Aut.Aut_inv_def
+-/
+#print CategoryTheory.Aut.unitsEndEquivAut /-
/-- Units in the monoid of endomorphisms of an object
are (multiplicatively) equivalent to automorphisms of that object.
-/
@@ -215,7 +220,9 @@ def unitsEndEquivAut : (End X)ˣ ≃* Aut X
right_inv := fun ⟨f₁, f₂, f₃, f₄⟩ => rfl
map_mul' f g := by rcases f with ⟨⟩ <;> rcases g with ⟨⟩ <;> rfl
#align category_theory.Aut.units_End_equiv_Aut CategoryTheory.Aut.unitsEndEquivAut
+-/
+#print CategoryTheory.Aut.autMulEquivOfIso /-
/-- Isomorphisms induce isomorphisms of the automorphism group -/
def autMulEquivOfIso {X Y : C} (h : X ≅ Y) : Aut X ≃* Aut Y
where
@@ -225,6 +232,7 @@ def autMulEquivOfIso {X Y : C} (h : X ≅ Y) : Aut X ≃* Aut Y
right_inv := by tidy
map_mul' := by simp [Aut_mul_def]
#align category_theory.Aut.Aut_mul_equiv_of_iso CategoryTheory.Aut.autMulEquivOfIso
+-/
end Aut
@@ -232,6 +240,7 @@ namespace Functor
variable {D : Type u'} [Category.{v'} D] (f : C ⥤ D) (X)
+#print CategoryTheory.Functor.mapEnd /-
/-- `f.map` as a monoid hom between endomorphism monoids. -/
@[simps]
def mapEnd : End X →* End (f.obj X)
@@ -240,13 +249,16 @@ def mapEnd : End X →* End (f.obj X)
map_mul' x y := f.map_comp y x
map_one' := f.map_id X
#align category_theory.functor.map_End CategoryTheory.Functor.mapEnd
+-/
+#print CategoryTheory.Functor.mapAut /-
/-- `f.map_iso` as a group hom between automorphism groups. -/
def mapAut : Aut X →* Aut (f.obj X) where
toFun := f.mapIso
map_mul' x y := f.mapIso_trans y x
map_one' := f.mapIso_refl X
#align category_theory.functor.map_Aut CategoryTheory.Functor.mapAut
+-/
end Functor
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -196,32 +196,14 @@ instance : Group (Aut X) := by
ext <;>
simp [flip, (· * ·), Monoid.mul, MulOneClass.mul, MulOneClass.one, One.one, Monoid.one, Inv.inv]
-/- warning: category_theory.Aut.Aut_mul_def -> CategoryTheory.Aut.Aut_mul_def is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (X : C) (f : CategoryTheory.Aut.{u1, u2} C _inst_1 X) (g : CategoryTheory.Aut.{u1, u2} C _inst_1 X), Eq.{succ u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (HMul.hMul.{u1, u1, u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (instHMul.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (CategoryTheory.Aut.group.{u1, u2} C _inst_1 X)))))) f g) (CategoryTheory.Iso.trans.{u1, u2} C _inst_1 X X X g f)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (X : C) (f : CategoryTheory.Aut.{u1, u2} C _inst_1 X) (g : CategoryTheory.Aut.{u1, u2} C _inst_1 X), Eq.{succ u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (HMul.hMul.{u1, u1, u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (instHMul.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (CategoryTheory.Aut.instGroupAut.{u1, u2} C _inst_1 X)))))) f g) (CategoryTheory.Iso.trans.{u1, u2} C _inst_1 X X X g f)
-Case conversion may be inaccurate. Consider using '#align category_theory.Aut.Aut_mul_def CategoryTheory.Aut.Aut_mul_defₓ'. -/
theorem Aut_mul_def (f g : Aut X) : f * g = g.trans f :=
rfl
#align category_theory.Aut.Aut_mul_def CategoryTheory.Aut.Aut_mul_def
-/- warning: category_theory.Aut.Aut_inv_def -> CategoryTheory.Aut.Aut_inv_def is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (X : C) (f : CategoryTheory.Aut.{u1, u2} C _inst_1 X), Eq.{succ u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Inv.inv.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (DivInvMonoid.toHasInv.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (CategoryTheory.Aut.group.{u1, u2} C _inst_1 X))) f) (CategoryTheory.Iso.symm.{u1, u2} C _inst_1 X X f)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (X : C) (f : CategoryTheory.Aut.{u1, u2} C _inst_1 X), Eq.{succ u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Inv.inv.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (InvOneClass.toInv.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (DivInvOneMonoid.toInvOneClass.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (DivisionMonoid.toDivInvOneMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Group.toDivisionMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (CategoryTheory.Aut.instGroupAut.{u1, u2} C _inst_1 X))))) f) (CategoryTheory.Iso.symm.{u1, u2} C _inst_1 X X f)
-Case conversion may be inaccurate. Consider using '#align category_theory.Aut.Aut_inv_def CategoryTheory.Aut.Aut_inv_defₓ'. -/
theorem Aut_inv_def (f : Aut X) : f⁻¹ = f.symm :=
rfl
#align category_theory.Aut.Aut_inv_def CategoryTheory.Aut.Aut_inv_def
-/- warning: category_theory.Aut.units_End_equiv_Aut -> CategoryTheory.Aut.unitsEndEquivAut is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (X : C), MulEquiv.{u1, u1} (Units.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X) (CategoryTheory.End.monoid.{u1, u2} C _inst_1 X)) (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (MulOneClass.toHasMul.{u1} (Units.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X) (CategoryTheory.End.monoid.{u1, u2} C _inst_1 X)) (Units.mulOneClass.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X) (CategoryTheory.End.monoid.{u1, u2} C _inst_1 X))) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (CategoryTheory.Aut.group.{u1, u2} C _inst_1 X)))))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (X : C), MulEquiv.{u1, u1} (Units.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X) (CategoryTheory.End.monoid.{u1, u2} C _inst_1 X)) (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (MulOneClass.toMul.{u1} (Units.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X) (CategoryTheory.End.monoid.{u1, u2} C _inst_1 X)) (Units.instMulOneClassUnits.{u1} (CategoryTheory.End.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) X) (CategoryTheory.End.monoid.{u1, u2} C _inst_1 X))) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (CategoryTheory.Aut.instGroupAut.{u1, u2} C _inst_1 X)))))
-Case conversion may be inaccurate. Consider using '#align category_theory.Aut.units_End_equiv_Aut CategoryTheory.Aut.unitsEndEquivAutₓ'. -/
/-- Units in the monoid of endomorphisms of an object
are (multiplicatively) equivalent to automorphisms of that object.
-/
@@ -234,12 +216,6 @@ def unitsEndEquivAut : (End X)ˣ ≃* Aut X
map_mul' f g := by rcases f with ⟨⟩ <;> rcases g with ⟨⟩ <;> rfl
#align category_theory.Aut.units_End_equiv_Aut CategoryTheory.Aut.unitsEndEquivAut
-/- warning: category_theory.Aut.Aut_mul_equiv_of_iso -> CategoryTheory.Aut.autMulEquivOfIso is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C}, (CategoryTheory.Iso.{u1, u2} C _inst_1 X Y) -> (MulEquiv.{u1, u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (CategoryTheory.Aut.{u1, u2} C _inst_1 Y) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (CategoryTheory.Aut.group.{u1, u2} C _inst_1 X))))) (MulOneClass.toHasMul.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 Y) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 Y) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 Y) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 Y) (CategoryTheory.Aut.group.{u1, u2} C _inst_1 Y))))))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C}, (CategoryTheory.Iso.{u1, u2} C _inst_1 X Y) -> (MulEquiv.{u1, u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (CategoryTheory.Aut.{u1, u2} C _inst_1 Y) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 X) (CategoryTheory.Aut.instGroupAut.{u1, u2} C _inst_1 X))))) (MulOneClass.toMul.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 Y) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 Y) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 Y) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, u2} C _inst_1 Y) (CategoryTheory.Aut.instGroupAut.{u1, u2} C _inst_1 Y))))))
-Case conversion may be inaccurate. Consider using '#align category_theory.Aut.Aut_mul_equiv_of_iso CategoryTheory.Aut.autMulEquivOfIsoₓ'. -/
/-- Isomorphisms induce isomorphisms of the automorphism group -/
def autMulEquivOfIso {X Y : C} (h : X ≅ Y) : Aut X ≃* Aut Y
where
@@ -256,12 +232,6 @@ namespace Functor
variable {D : Type u'} [Category.{v'} D] (f : C ⥤ D) (X)
-/- warning: category_theory.functor.map_End -> CategoryTheory.Functor.mapEnd is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (X : C) {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (f : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2), MonoidHom.{u1, u2} (CategoryTheory.End.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1) X) (CategoryTheory.End.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 f X)) (Monoid.toMulOneClass.{u1} (CategoryTheory.End.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1) X) (CategoryTheory.End.monoid.{u1, u3} C _inst_1 X)) (Monoid.toMulOneClass.{u2} (CategoryTheory.End.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 f X)) (CategoryTheory.End.monoid.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 f X)))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (X : C) {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (f : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2), MonoidHom.{u1, u2} (CategoryTheory.End.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1) X) (CategoryTheory.End.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 f) X)) (Monoid.toMulOneClass.{u1} (CategoryTheory.End.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1) X) (CategoryTheory.End.monoid.{u1, u3} C _inst_1 X)) (Monoid.toMulOneClass.{u2} (CategoryTheory.End.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2) (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 f) X)) (CategoryTheory.End.monoid.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 f) X)))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_End CategoryTheory.Functor.mapEndₓ'. -/
/-- `f.map` as a monoid hom between endomorphism monoids. -/
@[simps]
def mapEnd : End X →* End (f.obj X)
@@ -271,12 +241,6 @@ def mapEnd : End X →* End (f.obj X)
map_one' := f.map_id X
#align category_theory.functor.map_End CategoryTheory.Functor.mapEnd
-/- warning: category_theory.functor.map_Aut -> CategoryTheory.Functor.mapAut is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (X : C) {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (f : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2), MonoidHom.{u1, u2} (CategoryTheory.Aut.{u1, u3} C _inst_1 X) (CategoryTheory.Aut.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 f X)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, u3} C _inst_1 X) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, u3} C _inst_1 X) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, u3} C _inst_1 X) (CategoryTheory.Aut.group.{u1, u3} C _inst_1 X)))) (Monoid.toMulOneClass.{u2} (CategoryTheory.Aut.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 f X)) (DivInvMonoid.toMonoid.{u2} (CategoryTheory.Aut.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 f X)) (Group.toDivInvMonoid.{u2} (CategoryTheory.Aut.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 f X)) (CategoryTheory.Aut.group.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 f X)))))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (X : C) {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (f : CategoryTheory.Functor.{u1, u2, u3, u4} C _inst_1 D _inst_2), MonoidHom.{u1, u2} (CategoryTheory.Aut.{u1, u3} C _inst_1 X) (CategoryTheory.Aut.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 f) X)) (Monoid.toMulOneClass.{u1} (CategoryTheory.Aut.{u1, u3} C _inst_1 X) (DivInvMonoid.toMonoid.{u1} (CategoryTheory.Aut.{u1, u3} C _inst_1 X) (Group.toDivInvMonoid.{u1} (CategoryTheory.Aut.{u1, u3} C _inst_1 X) (CategoryTheory.Aut.instGroupAut.{u1, u3} C _inst_1 X)))) (Monoid.toMulOneClass.{u2} (CategoryTheory.Aut.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 f) X)) (DivInvMonoid.toMonoid.{u2} (CategoryTheory.Aut.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 f) X)) (Group.toDivInvMonoid.{u2} (CategoryTheory.Aut.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 f) X)) (CategoryTheory.Aut.instGroupAut.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 f) X)))))
-Case conversion may be inaccurate. Consider using '#align category_theory.functor.map_Aut CategoryTheory.Functor.mapAutₓ'. -/
/-- `f.map_iso` as a group hom between automorphism groups. -/
def mapAut : Aut X →* Aut (f.obj X) where
toFun := f.mapIso
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
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>
@@ -207,14 +207,14 @@ set_option linter.uppercaseLean3 false in
/-- `equivOfFullyFaithful f` as an isomorphism between endomorphism monoids. -/
@[simps!]
-def mulEquivOfFullyFaithful [Full f] [Faithful f] :
+noncomputable def mulEquivOfFullyFaithful [Full f] [Faithful f] :
End X ≃* End (f.obj X) where
toEquiv := equivOfFullyFaithful f
__ := mapEnd X f
/-- `isoEquivOfFullyFaithful f` as an isomorphism between automorphism groups. -/
@[simps!]
-def autMulEquivOfFullyFaithful [Full f] [Faithful f] :
+noncomputable def autMulEquivOfFullyFaithful [Full f] [Faithful f] :
Aut X ≃* Aut (f.obj X) where
toEquiv := isoEquivOfFullyFaithful f
__ := mapAut X f
@@ -59,11 +59,11 @@ def of (f : X ⟶ X) : End X := f
def asHom (f : End X) : X ⟶ X := f
#align category_theory.End.as_hom CategoryTheory.End.asHom
-@[simp] -- Porting note: todo: use `of`/`asHom`?
+@[simp] -- Porting note (#11215): TODO: use `of`/`asHom`?
theorem one_def : (1 : End X) = 𝟙 X := rfl
#align category_theory.End.one_def CategoryTheory.End.one_def
-@[simp] -- Porting note: todo: use `of`/`asHom`?
+@[simp] -- Porting note (#11215): TODO: use `of`/`asHom`?
theorem mul_def (xs ys : End X) : xs * ys = ys ≫ xs := rfl
#align category_theory.End.mul_def CategoryTheory.End.mul_def
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -59,11 +59,11 @@ def of (f : X ⟶ X) : End X := f
def asHom (f : End X) : X ⟶ X := f
#align category_theory.End.as_hom CategoryTheory.End.asHom
-@[simp] -- porting note: todo: use `of`/`asHom`?
+@[simp] -- Porting note: todo: use `of`/`asHom`?
theorem one_def : (1 : End X) = 𝟙 X := rfl
#align category_theory.End.one_def CategoryTheory.End.one_def
-@[simp] -- porting note: todo: use `of`/`asHom`?
+@[simp] -- Porting note: todo: use `of`/`asHom`?
theorem mul_def (xs ys : End X) : xs * ys = ys ≫ xs := rfl
#align category_theory.End.mul_def CategoryTheory.End.mul_def
@@ -131,7 +131,7 @@ set_option linter.uppercaseLean3 false in
namespace Aut
--- porting note: added because `Iso.ext` is not triggered automatically
+-- Porting note: added because `Iso.ext` is not triggered automatically
@[ext]
lemma ext {X : C} {φ₁ φ₂ : Aut X} (h : φ₁.hom = φ₂.hom) : φ₁ = φ₂ :=
Iso.ext h
Defines Galois objects in a Galois category in a fibre functor independent way, also gives an equivalent characterisation in terms of a fibre functor.
To allow for a definition that only depends on C
, contrary to what was said earlier, we introduce a GaloisCategory
typeclass extending PreGaloisCategory
that additionally asserts the existence of a fibre functor.
Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>
@@ -5,6 +5,7 @@ Authors: Yury Kudryashov, Scott Morrison, Simon Hudon
-/
import Mathlib.Algebra.Group.Equiv.Basic
import Mathlib.Algebra.Group.Units
+import Mathlib.Algebra.Group.Units.Hom
import Mathlib.CategoryTheory.Groupoid
import Mathlib.CategoryTheory.Opposites
import Mathlib.GroupTheory.GroupAction.Defs
@@ -168,6 +169,10 @@ def unitsEndEquivAut : (End X)ˣ ≃* Aut X where
set_option linter.uppercaseLean3 false in
#align category_theory.Aut.units_End_equiv_Aut CategoryTheory.Aut.unitsEndEquivAut
+/-- The inclusion of `Aut X` to `End X` as a monoid homomorphism. -/
+@[simps!]
+def toEnd (X : C) : Aut X →* End X := (Units.coeHom (End X)).comp (Aut.unitsEndEquivAut X).symm
+
/-- Isomorphisms induce isomorphisms of the automorphism group -/
def autMulEquivOfIso {X Y : C} (h : X ≅ Y) : Aut X ≃* Aut Y where
toFun x := ⟨h.inv ≫ x.hom ≫ h.hom, h.inv ≫ x.inv ≫ h.hom, _, _⟩
@@ -200,6 +200,20 @@ def mapAut : Aut X →* Aut (f.obj X) where
set_option linter.uppercaseLean3 false in
#align category_theory.functor.map_Aut CategoryTheory.Functor.mapAut
+/-- `equivOfFullyFaithful f` as an isomorphism between endomorphism monoids. -/
+@[simps!]
+def mulEquivOfFullyFaithful [Full f] [Faithful f] :
+ End X ≃* End (f.obj X) where
+ toEquiv := equivOfFullyFaithful f
+ __ := mapEnd X f
+
+/-- `isoEquivOfFullyFaithful f` as an isomorphism between automorphism groups. -/
+@[simps!]
+def autMulEquivOfFullyFaithful [Full f] [Faithful f] :
+ Aut X ≃* Aut (f.obj X) where
+ toEquiv := isoEquivOfFullyFaithful f
+ __ := mapAut X f
+
end Functor
end CategoryTheory
Hom
and file name (#8095)
I believe the file defining a type of morphisms belongs alongside the file defining the structure this morphism works on. So I would like to reorganize the files in the Mathlib.Algebra.Hom
folder so that e.g. Mathlib.Algebra.Hom.Ring
becomes Mathlib.Algebra.Ring.Hom
and Mathlib.Algebra.Hom.NonUnitalAlg
becomes Mathlib.Algebra.Algebra.NonUnitalHom
.
While fixing the imports I went ahead and sorted them for good luck.
The full list of changes is: renamed: Mathlib/Algebra/Hom/NonUnitalAlg.lean -> Mathlib/Algebra/Algebra/NonUnitalHom.lean renamed: Mathlib/Algebra/Hom/Aut.lean -> Mathlib/Algebra/Group/Aut.lean renamed: Mathlib/Algebra/Hom/Commute.lean -> Mathlib/Algebra/Group/Commute/Hom.lean renamed: Mathlib/Algebra/Hom/Embedding.lean -> Mathlib/Algebra/Group/Embedding.lean renamed: Mathlib/Algebra/Hom/Equiv/Basic.lean -> Mathlib/Algebra/Group/Equiv/Basic.lean renamed: Mathlib/Algebra/Hom/Equiv/TypeTags.lean -> Mathlib/Algebra/Group/Equiv/TypeTags.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/Basic.lean -> Mathlib/Algebra/Group/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Equiv/Units/GroupWithZero.lean -> Mathlib/Algebra/GroupWithZero/Units/Equiv.lean renamed: Mathlib/Algebra/Hom/Freiman.lean -> Mathlib/Algebra/Group/Freiman.lean renamed: Mathlib/Algebra/Hom/Group/Basic.lean -> Mathlib/Algebra/Group/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Group/Defs.lean -> Mathlib/Algebra/Group/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/GroupAction.lean -> Mathlib/GroupTheory/GroupAction/Hom.lean renamed: Mathlib/Algebra/Hom/GroupInstances.lean -> Mathlib/Algebra/Group/Hom/Instances.lean renamed: Mathlib/Algebra/Hom/Iterate.lean -> Mathlib/Algebra/GroupPower/IterateHom.lean renamed: Mathlib/Algebra/Hom/Centroid.lean -> Mathlib/Algebra/Ring/CentroidHom.lean renamed: Mathlib/Algebra/Hom/Ring/Basic.lean -> Mathlib/Algebra/Ring/Hom/Basic.lean renamed: Mathlib/Algebra/Hom/Ring/Defs.lean -> Mathlib/Algebra/Ring/Hom/Defs.lean renamed: Mathlib/Algebra/Hom/Units.lean -> Mathlib/Algebra/Group/Units/Hom.lean
Zulip thread: https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Reorganizing.20.60Mathlib.2EAlgebra.2EHom.60
@@ -3,7 +3,7 @@ Copyright (c) 2019 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov, Scott Morrison, Simon Hudon
-/
-import Mathlib.Algebra.Hom.Equiv.Basic
+import Mathlib.Algebra.Group.Equiv.Basic
import Mathlib.Algebra.Group.Units
import Mathlib.CategoryTheory.Groupoid
import Mathlib.CategoryTheory.Opposites
This will improve spaces in the mathlib4 docs.
@@ -17,7 +17,7 @@ import Mathlib.GroupTheory.GroupAction.Defs
Definition and basic properties of endomorphisms and automorphisms of an object in a category.
For each `X : C`, we provide `CategoryTheory.End X := X ⟶ X` with a monoid structure,
-and `CategoryTheory.Aut X := X ≅ X ` with a group structure.
+and `CategoryTheory.Aut X := X ≅ X` with a group structure.
-/
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov, Scott Morrison, Simon Hudon
-/
import Mathlib.Algebra.Hom.Equiv.Basic
+import Mathlib.Algebra.Group.Units
import Mathlib.CategoryTheory.Groupoid
import Mathlib.CategoryTheory.Opposites
import Mathlib.GroupTheory.GroupAction.Defs
@@ -2,17 +2,14 @@
Copyright (c) 2019 Yury Kudryashov. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Yury Kudryashov, Scott Morrison, Simon Hudon
-
-! This file was ported from Lean 3 source module category_theory.endomorphism
-! leanprover-community/mathlib commit 32253a1a1071173b33dc7d6a218cf722c6feb514
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.Algebra.Hom.Equiv.Basic
import Mathlib.CategoryTheory.Groupoid
import Mathlib.CategoryTheory.Opposites
import Mathlib.GroupTheory.GroupAction.Defs
+#align_import category_theory.endomorphism from "leanprover-community/mathlib"@"32253a1a1071173b33dc7d6a218cf722c6feb514"
+
/-!
# Endomorphisms
@@ -132,6 +132,11 @@ set_option linter.uppercaseLean3 false in
namespace Aut
+-- porting note: added because `Iso.ext` is not triggered automatically
+@[ext]
+lemma ext {X : C} {φ₁ φ₂ : Aut X} (h : φ₁.hom = φ₂.hom) : φ₁ = φ₂ :=
+ Iso.ext h
+
protected instance inhabited : Inhabited (Aut X) := ⟨Iso.refl X⟩
set_option linter.uppercaseLean3 false in
#align category_theory.Aut.inhabited CategoryTheory.Aut.inhabited
All dependencies are ported!