@@ -247,8 +247,9 @@ instance (priority := 75) toGroup : Group H :=
247247@ [to_additive "An additive subgroup of an `AddCommGroup` is an `AddCommGroup`." ]
248248instance (priority := 75 ) toCommGroup {G : Type *} [CommGroup G] [SetLike S G] [SubgroupClass S G] :
249249 CommGroup H :=
250- Subtype.coe_injective.commGroup _ rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl)
251- (fun _ _ => rfl) fun _ _ => rfl
250+ { Subtype.coe_injective.commGroup (↑) rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl)
251+ (fun _ _ => rfl) fun _ _ => rfl with
252+ toGroup := SubgroupClass.toGroup H }
252253#align subgroup_class.to_comm_group SubgroupClass.toCommGroup
253254#align add_subgroup_class.to_add_comm_group AddSubgroupClass.toAddCommGroup
254255
@@ -257,8 +258,10 @@ instance (priority := 75) toCommGroup {G : Type*} [CommGroup G] [SetLike S G] [S
257258@ [to_additive "An additive subgroup of an `AddOrderedCommGroup` is an `AddOrderedCommGroup`." ]
258259instance (priority := 75 ) toOrderedCommGroup {G : Type *} [OrderedCommGroup G] [SetLike S G]
259260 [SubgroupClass S G] : OrderedCommGroup H :=
260- Subtype.coe_injective.orderedCommGroup _ rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl)
261- (fun _ _ => rfl) fun _ _ => rfl
261+ { Subtype.coe_injective.orderedCommGroup ((↑) : H → G) rfl (fun _ _ => rfl) (fun _ => rfl)
262+ (fun _ _ => rfl) (fun _ _ => rfl) fun _ _ => rfl with
263+ toCommGroup := SubgroupClass.toCommGroup H
264+ toPartialOrder := PartialOrder.lift ((↑) : H → G) Subtype.coe_injective }
262265#align subgroup_class.to_ordered_comm_group SubgroupClass.toOrderedCommGroup
263266#align add_subgroup_class.to_ordered_add_comm_group AddSubgroupClass.toOrderedAddCommGroup
264267
@@ -269,8 +272,9 @@ instance (priority := 75) toOrderedCommGroup {G : Type*} [OrderedCommGroup G] [S
269272 `LinearOrderedAddCommGroup`." ]
270273instance (priority := 75 ) toLinearOrderedCommGroup {G : Type *} [LinearOrderedCommGroup G]
271274 [SetLike S G] [SubgroupClass S G] : LinearOrderedCommGroup H :=
272- Subtype.coe_injective.linearOrderedCommGroup _ rfl (fun _ _ => rfl) (fun _ => rfl)
273- (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) fun _ _ => rfl
275+ { Subtype.coe_injective.linearOrderedCommGroup ((↑) : H → G) rfl (fun _ _ => rfl) (fun _ => rfl)
276+ (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) fun _ _ => rfl with
277+ toOrderedCommGroup := SubgroupClass.toOrderedCommGroup H }
274278#align subgroup_class.to_linear_ordered_comm_group SubgroupClass.toLinearOrderedCommGroup
275279#align add_subgroup_class.to_linear_ordered_add_comm_group AddSubgroupClass.toLinearOrderedAddCommGroup
276280
@@ -746,25 +750,30 @@ theorem mk_eq_one_iff {g : G} {h} : (⟨g, h⟩ : H) = 1 ↔ g = 1 :=
746750/-- A subgroup of a group inherits a group structure. -/
747751@ [to_additive "An `AddSubgroup` of an `AddGroup` inherits an `AddGroup` structure." ]
748752instance toGroup {G : Type *} [Group G] (H : Subgroup G) : Group H :=
749- Subtype.coe_injective.group _ rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl)
750- (fun _ _ => rfl) fun _ _ => rfl
753+ { Subtype.coe_injective.group (↑) rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl)
754+ (fun _ _ => rfl) fun _ _ => rfl with
755+ toMul := H.mul
756+ toOne := H.one }
751757#align subgroup.to_group Subgroup.toGroup
752758#align add_subgroup.to_add_group AddSubgroup.toAddGroup
753759
754760/-- A subgroup of a `CommGroup` is a `CommGroup`. -/
755761@ [to_additive "An `AddSubgroup` of an `AddCommGroup` is an `AddCommGroup`." ]
756762instance toCommGroup {G : Type *} [CommGroup G] (H : Subgroup G) : CommGroup H :=
757- Subtype.coe_injective.commGroup _ rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl)
758- (fun _ _ => rfl) fun _ _ => rfl
763+ { Subtype.coe_injective.commGroup (↑) rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl)
764+ (fun _ _ => rfl) fun _ _ => rfl with
765+ toGroup := H.toGroup }
759766#align subgroup.to_comm_group Subgroup.toCommGroup
760767#align add_subgroup.to_add_comm_group AddSubgroup.toAddCommGroup
761768
762769/-- A subgroup of an `OrderedCommGroup` is an `OrderedCommGroup`. -/
763770@ [to_additive "An `AddSubgroup` of an `AddOrderedCommGroup` is an `AddOrderedCommGroup`." ]
764771instance toOrderedCommGroup {G : Type *} [OrderedCommGroup G] (H : Subgroup G) :
765772 OrderedCommGroup H :=
766- Subtype.coe_injective.orderedCommGroup _ rfl (fun _ _ => rfl) (fun _ => rfl) (fun _ _ => rfl)
767- (fun _ _ => rfl) fun _ _ => rfl
773+ { Subtype.coe_injective.orderedCommGroup ((↑) : H → G) rfl (fun _ _ => rfl) (fun _ => rfl)
774+ (fun _ _ => rfl) (fun _ _ => rfl) fun _ _ => rfl with
775+ toCommGroup := H.toCommGroup
776+ toPartialOrder := PartialOrder.lift ((↑) : H → G) Subtype.coe_injective }
768777#align subgroup.to_ordered_comm_group Subgroup.toOrderedCommGroup
769778#align add_subgroup.to_ordered_add_comm_group AddSubgroup.toOrderedAddCommGroup
770779
@@ -774,8 +783,9 @@ instance toOrderedCommGroup {G : Type*} [OrderedCommGroup G] (H : Subgroup G) :
774783 `LinearOrderedAddCommGroup`." ]
775784instance toLinearOrderedCommGroup {G : Type *} [LinearOrderedCommGroup G] (H : Subgroup G) :
776785 LinearOrderedCommGroup H :=
777- Subtype.coe_injective.linearOrderedCommGroup _ rfl (fun _ _ => rfl) (fun _ => rfl)
778- (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) fun _ _ => rfl
786+ { Subtype.coe_injective.linearOrderedCommGroup ((↑) : H → G) rfl (fun _ _ => rfl) (fun _ => rfl)
787+ (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) (fun _ _ => rfl) fun _ _ => rfl with
788+ toOrderedCommGroup := H.toOrderedCommGroup }
779789#align subgroup.to_linear_ordered_comm_group Subgroup.toLinearOrderedCommGroup
780790#align add_subgroup.to_linear_ordered_add_comm_group AddSubgroup.toLinearOrderedAddCommGroup
781791
0 commit comments