Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 052d027

Browse files
committed
refactor(algebra/category/Group/basic): Avoid data shuffle in mul_equiv.to_Group_iso (#12407)
Change the definition of `mul_equiv.to_Group_iso` from `{X Y : Type*} [group X] [group Y] (e : X ≃* Y) : Group.of X ≅ Group.of Y` to `{X Y : Group} (e : X ≃* Y) : X ≅ Y`. Not making `X` and `Y` into `Group`s on the fly avoids rebundling them when they already are `Group`s, which breaks definitional equality.
1 parent 0666dd5 commit 052d027

File tree

1 file changed

+4
-9
lines changed

1 file changed

+4
-9
lines changed

src/algebra/category/Group/basic.lean

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -187,11 +187,9 @@ end
187187

188188
end AddCommGroup
189189

190-
variables {X Y : Type u}
191-
192190
/-- Build an isomorphism in the category `Group` from a `mul_equiv` between `group`s. -/
193191
@[to_additive add_equiv.to_AddGroup_iso, simps]
194-
def mul_equiv.to_Group_iso [group X] [group Y] (e : X ≃* Y) : Group.of X ≅ Group.of Y :=
192+
def mul_equiv.to_Group_iso {X Y : Group} (e : X ≃* Y) : X ≅ Y :=
195193
{ hom := e.to_monoid_hom,
196194
inv := e.symm.to_monoid_hom }
197195

@@ -200,8 +198,7 @@ add_decl_doc add_equiv.to_AddGroup_iso
200198

201199
/-- Build an isomorphism in the category `CommGroup` from a `mul_equiv` between `comm_group`s. -/
202200
@[to_additive add_equiv.to_AddCommGroup_iso, simps]
203-
def mul_equiv.to_CommGroup_iso [comm_group X] [comm_group Y] (e : X ≃* Y) :
204-
CommGroup.of X ≅ CommGroup.of Y :=
201+
def mul_equiv.to_CommGroup_iso {X Y : CommGroup} (e : X ≃* Y) : X ≅ Y :=
205202
{ hom := e.to_monoid_hom,
206203
inv := e.symm.to_monoid_hom }
207204

@@ -229,17 +226,15 @@ end category_theory.iso
229226
in `Group` -/
230227
@[to_additive add_equiv_iso_AddGroup_iso "additive equivalences between `add_group`s are the same
231228
as (isomorphic to) isomorphisms in `AddGroup`"]
232-
def mul_equiv_iso_Group_iso {X Y : Type u} [group X] [group Y] :
233-
(X ≃* Y) ≅ (Group.of X ≅ Group.of Y) :=
229+
def mul_equiv_iso_Group_iso {X Y : Group.{u}} : (X ≃* Y) ≅ (X ≅ Y) :=
234230
{ hom := λ e, e.to_Group_iso,
235231
inv := λ i, i.Group_iso_to_mul_equiv, }
236232

237233
/-- multiplicative equivalences between `comm_group`s are the same as (isomorphic to) isomorphisms
238234
in `CommGroup` -/
239235
@[to_additive add_equiv_iso_AddCommGroup_iso "additive equivalences between `add_comm_group`s are
240236
the same as (isomorphic to) isomorphisms in `AddCommGroup`"]
241-
def mul_equiv_iso_CommGroup_iso {X Y : Type u} [comm_group X] [comm_group Y] :
242-
(X ≃* Y) ≅ (CommGroup.of X ≅ CommGroup.of Y) :=
237+
def mul_equiv_iso_CommGroup_iso {X Y : CommGroup.{u}} : X ≃* Y ≅ (X ≅ Y) :=
243238
{ hom := λ e, e.to_CommGroup_iso,
244239
inv := λ i, i.CommGroup_iso_to_mul_equiv, }
245240

0 commit comments

Comments
 (0)